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. ~(a=0) -> (exists ge_first_rp_cancel_product_first ge_first_rn_cancel_product_first ge_first_ip_cancel_product_first ge_first_in_cancel_product_first ge_second_rp_cancel_product_first ge_second_rn_cancel_product_first ge_second_ip_cancel_product_first ge_second_in_cancel_product_first. ((exists ge_representation_real_code_cancel_product_firstfirst ge_representation_imaginary_code_cancel_product_firstfirst. (((a) = ((ge_representation_real_code_cancel_product_firstfirst) + (ge_representation_imaginary_code_cancel_product_firstfirst)) * S ((ge_representation_real_code_cancel_product_firstfirst) + (ge_representation_imaginary_code_cancel_product_firstfirst)) + ((ge_representation_imaginary_code_cancel_product_firstfirst) + (ge_representation_imaginary_code_cancel_product_firstfirst))) /\ ((exists ge_balance_positive_cancel_product_firstfirstreal ge_balance_negative_cancel_product_firstfirstreal. (((((ge_representation_real_code_cancel_product_firstfirst) = 2 * (ge_balance_positive_cancel_product_firstfirstreal) /\ (ge_balance_negative_cancel_product_firstfirstreal) = 0) \/ exists ge_signed_half_cancel_product_firstfirstrealdecode. (((ge_representation_real_code_cancel_product_firstfirst) = 2 * ge_signed_half_cancel_product_firstfirstrealdecode + 1 /\ (ge_balance_positive_cancel_product_firstfirstreal) = 0) /\ (ge_balance_negative_cancel_product_firstfirstreal) = S ge_signed_half_cancel_product_firstfirstrealdecode))) /\ ((ge_first_rp_cancel_product_first) + ge_balance_negative_cancel_product_firstfirstreal = (ge_first_rn_cancel_product_first) + ge_balance_positive_cancel_product_firstfirstreal))) /\ (exists ge_balance_positive_cancel_product_firstfirstimaginary ge_balance_negative_cancel_product_firstfirstimaginary. (((((ge_representation_imaginary_code_cancel_product_firstfirst) = 2 * (ge_balance_positive_cancel_product_firstfirstimaginary) /\ (ge_balance_negative_cancel_product_firstfirstimaginary) = 0) \/ exists ge_signed_half_cancel_product_firstfirstimaginarydecode. (((ge_representation_imaginary_code_cancel_product_firstfirst) = 2 * ge_signed_half_cancel_product_firstfirstimaginarydecode + 1 /\ (ge_balance_positive_cancel_product_firstfirstimaginary) = 0) /\ (ge_balance_negative_cancel_product_firstfirstimaginary) = S ge_signed_half_cancel_product_firstfirstimaginarydecode))) /\ ((ge_first_ip_cancel_product_first) + ge_balance_negative_cancel_product_firstfirstimaginary = (ge_first_in_cancel_product_first) + ge_balance_positive_cancel_product_firstfirstimaginary)))))) /\ ((exists ge_representation_real_code_cancel_product_firstsecond ge_representation_imaginary_code_cancel_product_firstsecond. (((b) = ((ge_representation_real_code_cancel_product_firstsecond) + (ge_representation_imaginary_code_cancel_product_firstsecond)) * S ((ge_representation_real_code_cancel_product_firstsecond) + (ge_representation_imaginary_code_cancel_product_firstsecond)) + ((ge_representation_imaginary_code_cancel_product_firstsecond) + (ge_representation_imaginary_code_cancel_product_firstsecond))) /\ ((exists ge_balance_positive_cancel_product_firstsecondreal ge_balance_negative_cancel_product_firstsecondreal. (((((ge_representation_real_code_cancel_product_firstsecond) = 2 * (ge_balance_positive_cancel_product_firstsecondreal) /\ (ge_balance_negative_cancel_product_firstsecondreal) = 0) \/ exists ge_signed_half_cancel_product_firstsecondrealdecode. (((ge_representation_real_code_cancel_product_firstsecond) = 2 * ge_signed_half_cancel_product_firstsecondrealdecode + 1 /\ (ge_balance_positive_cancel_product_firstsecondreal) = 0) /\ (ge_balance_negative_cancel_product_firstsecondreal) = S ge_signed_half_cancel_product_firstsecondrealdecode))) /\ ((ge_second_rp_cancel_product_first) + ge_balance_negative_cancel_product_firstsecondreal = (ge_second_rn_cancel_product_first) + ge_balance_positive_cancel_product_firstsecondreal))) /\ (exists ge_balance_positive_cancel_product_firstsecondimaginary ge_balance_negative_cancel_product_firstsecondimaginary. (((((ge_representation_imaginary_code_cancel_product_firstsecond) = 2 * (ge_balance_positive_cancel_product_firstsecondimaginary) /\ (ge_balance_negative_cancel_product_firstsecondimaginary) = 0) \/ exists ge_signed_half_cancel_product_firstsecondimaginarydecode. (((ge_representation_imaginary_code_cancel_product_firstsecond) = 2 * ge_signed_half_cancel_product_firstsecondimaginarydecode + 1 /\ (ge_balance_positive_cancel_product_firstsecondimaginary) = 0) /\ (ge_balance_negative_cancel_product_firstsecondimaginary) = S ge_signed_half_cancel_product_firstsecondimaginarydecode))) /\ ((ge_second_ip_cancel_product_first) + ge_balance_negative_cancel_product_firstsecondimaginary = (ge_second_in_cancel_product_first) + ge_balance_positive_cancel_product_firstsecondimaginary)))))) /\ (exists ge_representation_real_code_cancel_product_firstoutput ge_representation_imaginary_code_cancel_product_firstoutput. (((t) = ((ge_representation_real_code_cancel_product_firstoutput) + (ge_representation_imaginary_code_cancel_product_firstoutput)) * S ((ge_representation_real_code_cancel_product_firstoutput) + (ge_representation_imaginary_code_cancel_product_firstoutput)) + ((ge_representation_imaginary_code_cancel_product_firstoutput) + (ge_representation_imaginary_code_cancel_product_firstoutput))) /\ ((exists ge_balance_positive_cancel_product_firstoutputreal ge_balance_negative_cancel_product_firstoutputreal. (((((ge_representation_real_code_cancel_product_firstoutput) = 2 * (ge_balance_positive_cancel_product_firstoutputreal) /\ (ge_balance_negative_cancel_product_firstoutputreal) = 0) \/ exists ge_signed_half_cancel_product_firstoutputrealdecode. (((ge_representation_real_code_cancel_product_firstoutput) = 2 * ge_signed_half_cancel_product_firstoutputrealdecode + 1 /\ (ge_balance_positive_cancel_product_firstoutputreal) = 0) /\ (ge_balance_negative_cancel_product_firstoutputreal) = S ge_signed_half_cancel_product_firstoutputrealdecode))) /\ ((((((((ge_first_rp_cancel_product_first) * (ge_second_rp_cancel_product_first))) + (((ge_first_rn_cancel_product_first) * (ge_second_rn_cancel_product_first))))) + (((((ge_first_ip_cancel_product_first) * (ge_second_in_cancel_product_first))) + (((ge_first_in_cancel_product_first) * (ge_second_ip_cancel_product_first))))))) + ge_balance_negative_cancel_product_firstoutputreal = (((((((ge_first_rp_cancel_product_first) * (ge_second_rn_cancel_product_first))) + (((ge_first_rn_cancel_product_first) * (ge_second_rp_cancel_product_first))))) + (((((ge_first_ip_cancel_product_first) * (ge_second_ip_cancel_product_first))) + (((ge_first_in_cancel_product_first) * (ge_second_in_cancel_product_first))))))) + ge_balance_positive_cancel_product_firstoutputreal))) /\ (exists ge_balance_positive_cancel_product_firstoutputimaginary ge_balance_negative_cancel_product_firstoutputimaginary. (((((ge_representation_imaginary_code_cancel_product_firstoutput) = 2 * (ge_balance_positive_cancel_product_firstoutputimaginary) /\ (ge_balance_negative_cancel_product_firstoutputimaginary) = 0) \/ exists ge_signed_half_cancel_product_firstoutputimaginarydecode. (((ge_representation_imaginary_code_cancel_product_firstoutput) = 2 * ge_signed_half_cancel_product_firstoutputimaginarydecode + 1 /\ (ge_balance_positive_cancel_product_firstoutputimaginary) = 0) /\ (ge_balance_negative_cancel_product_firstoutputimaginary) = S ge_signed_half_cancel_product_firstoutputimaginarydecode))) /\ ((((((((ge_first_rp_cancel_product_first) * (ge_second_ip_cancel_product_first))) + (((ge_first_rn_cancel_product_first) * (ge_second_in_cancel_product_first))))) + (((((ge_first_ip_cancel_product_first) * (ge_second_rp_cancel_product_first))) + (((ge_first_in_cancel_product_first) * (ge_second_rn_cancel_product_first))))))) + ge_balance_negative_cancel_product_firstoutputimaginary = (((((((ge_first_rp_cancel_product_first) * (ge_second_in_cancel_product_first))) + (((ge_first_rn_cancel_product_first) * (ge_second_ip_cancel_product_first))))) + (((((ge_first_ip_cancel_product_first) * (ge_second_rn_cancel_product_first))) + (((ge_first_in_cancel_product_first) * (ge_second_rp_cancel_product_first))))))) + ge_balance_positive_cancel_product_firstoutputimaginary))))))))) -> (exists ge_first_rp_cancel_product_second ge_first_rn_cancel_product_second ge_first_ip_cancel_product_second ge_first_in_cancel_product_second ge_second_rp_cancel_product_second ge_second_rn_cancel_product_second ge_second_ip_cancel_product_second ge_second_in_cancel_product_second. ((exists ge_representation_real_code_cancel_product_secondfirst ge_representation_imaginary_code_cancel_product_secondfirst. (((a) = ((ge_representation_real_code_cancel_product_secondfirst) + (ge_representation_imaginary_code_cancel_product_secondfirst)) * S ((ge_representation_real_code_cancel_product_secondfirst) + (ge_representation_imaginary_code_cancel_product_secondfirst)) + ((ge_representation_imaginary_code_cancel_product_secondfirst) + (ge_representation_imaginary_code_cancel_product_secondfirst))) /\ ((exists ge_balance_positive_cancel_product_secondfirstreal ge_balance_negative_cancel_product_secondfirstreal. (((((ge_representation_real_code_cancel_product_secondfirst) = 2 * (ge_balance_positive_cancel_product_secondfirstreal) /\ (ge_balance_negative_cancel_product_secondfirstreal) = 0) \/ exists ge_signed_half_cancel_product_secondfirstrealdecode. (((ge_representation_real_code_cancel_product_secondfirst) = 2 * ge_signed_half_cancel_product_secondfirstrealdecode + 1 /\ (ge_balance_positive_cancel_product_secondfirstreal) = 0) /\ (ge_balance_negative_cancel_product_secondfirstreal) = S ge_signed_half_cancel_product_secondfirstrealdecode))) /\ ((ge_first_rp_cancel_product_second) + ge_balance_negative_cancel_product_secondfirstreal = (ge_first_rn_cancel_product_second) + ge_balance_positive_cancel_product_secondfirstreal))) /\ (exists ge_balance_positive_cancel_product_secondfirstimaginary ge_balance_negative_cancel_product_secondfirstimaginary. (((((ge_representation_imaginary_code_cancel_product_secondfirst) = 2 * (ge_balance_positive_cancel_product_secondfirstimaginary) /\ (ge_balance_negative_cancel_product_secondfirstimaginary) = 0) \/ exists ge_signed_half_cancel_product_secondfirstimaginarydecode. (((ge_representation_imaginary_code_cancel_product_secondfirst) = 2 * ge_signed_half_cancel_product_secondfirstimaginarydecode + 1 /\ (ge_balance_positive_cancel_product_secondfirstimaginary) = 0) /\ (ge_balance_negative_cancel_product_secondfirstimaginary) = S ge_signed_half_cancel_product_secondfirstimaginarydecode))) /\ ((ge_first_ip_cancel_product_second) + ge_balance_negative_cancel_product_secondfirstimaginary = (ge_first_in_cancel_product_second) + ge_balance_positive_cancel_product_secondfirstimaginary)))))) /\ ((exists ge_representation_real_code_cancel_product_secondsecond ge_representation_imaginary_code_cancel_product_secondsecond. (((c) = ((ge_representation_real_code_cancel_product_secondsecond) + (ge_representation_imaginary_code_cancel_product_secondsecond)) * S ((ge_representation_real_code_cancel_product_secondsecond) + (ge_representation_imaginary_code_cancel_product_secondsecond)) + ((ge_representation_imaginary_code_cancel_product_secondsecond) + (ge_representation_imaginary_code_cancel_product_secondsecond))) /\ ((exists ge_balance_positive_cancel_product_secondsecondreal ge_balance_negative_cancel_product_secondsecondreal. (((((ge_representation_real_code_cancel_product_secondsecond) = 2 * (ge_balance_positive_cancel_product_secondsecondreal) /\ (ge_balance_negative_cancel_product_secondsecondreal) = 0) \/ exists ge_signed_half_cancel_product_secondsecondrealdecode. (((ge_representation_real_code_cancel_product_secondsecond) = 2 * ge_signed_half_cancel_product_secondsecondrealdecode + 1 /\ (ge_balance_positive_cancel_product_secondsecondreal) = 0) /\ (ge_balance_negative_cancel_product_secondsecondreal) = S ge_signed_half_cancel_product_secondsecondrealdecode))) /\ ((ge_second_rp_cancel_product_second) + ge_balance_negative_cancel_product_secondsecondreal = (ge_second_rn_cancel_product_second) + ge_balance_positive_cancel_product_secondsecondreal))) /\ (exists ge_balance_positive_cancel_product_secondsecondimaginary ge_balance_negative_cancel_product_secondsecondimaginary. (((((ge_representation_imaginary_code_cancel_product_secondsecond) = 2 * (ge_balance_positive_cancel_product_secondsecondimaginary) /\ (ge_balance_negative_cancel_product_secondsecondimaginary) = 0) \/ exists ge_signed_half_cancel_product_secondsecondimaginarydecode. (((ge_representation_imaginary_code_cancel_product_secondsecond) = 2 * ge_signed_half_cancel_product_secondsecondimaginarydecode + 1 /\ (ge_balance_positive_cancel_product_secondsecondimaginary) = 0) /\ (ge_balance_negative_cancel_product_secondsecondimaginary) = S ge_signed_half_cancel_product_secondsecondimaginarydecode))) /\ ((ge_second_ip_cancel_product_second) + ge_balance_negative_cancel_product_secondsecondimaginary = (ge_second_in_cancel_product_second) + ge_balance_positive_cancel_product_secondsecondimaginary)))))) /\ (exists ge_representation_real_code_cancel_product_secondoutput ge_representation_imaginary_code_cancel_product_secondoutput. (((t) = ((ge_representation_real_code_cancel_product_secondoutput) + (ge_representation_imaginary_code_cancel_product_secondoutput)) * S ((ge_representation_real_code_cancel_product_secondoutput) + (ge_representation_imaginary_code_cancel_product_secondoutput)) + ((ge_representation_imaginary_code_cancel_product_secondoutput) + (ge_representation_imaginary_code_cancel_product_secondoutput))) /\ ((exists ge_balance_positive_cancel_product_secondoutputreal ge_balance_negative_cancel_product_secondoutputreal. (((((ge_representation_real_code_cancel_product_secondoutput) = 2 * (ge_balance_positive_cancel_product_secondoutputreal) /\ (ge_balance_negative_cancel_product_secondoutputreal) = 0) \/ exists ge_signed_half_cancel_product_secondoutputrealdecode. (((ge_representation_real_code_cancel_product_secondoutput) = 2 * ge_signed_half_cancel_product_secondoutputrealdecode + 1 /\ (ge_balance_positive_cancel_product_secondoutputreal) = 0) /\ (ge_balance_negative_cancel_product_secondoutputreal) = S ge_signed_half_cancel_product_secondoutputrealdecode))) /\ ((((((((ge_first_rp_cancel_product_second) * (ge_second_rp_cancel_product_second))) + (((ge_first_rn_cancel_product_second) * (ge_second_rn_cancel_product_second))))) + (((((ge_first_ip_cancel_product_second) * (ge_second_in_cancel_product_second))) + (((ge_first_in_cancel_product_second) * (ge_second_ip_cancel_product_second))))))) + ge_balance_negative_cancel_product_secondoutputreal = (((((((ge_first_rp_cancel_product_second) * (ge_second_rn_cancel_product_second))) + (((ge_first_rn_cancel_product_second) * (ge_second_rp_cancel_product_second))))) + (((((ge_first_ip_cancel_product_second) * (ge_second_ip_cancel_product_second))) + (((ge_first_in_cancel_product_second) * (ge_second_in_cancel_product_second))))))) + ge_balance_positive_cancel_product_secondoutputreal))) /\ (exists ge_balance_positive_cancel_product_secondoutputimaginary ge_balance_negative_cancel_product_secondoutputimaginary. (((((ge_representation_imaginary_code_cancel_product_secondoutput) = 2 * (ge_balance_positive_cancel_product_secondoutputimaginary) /\ (ge_balance_negative_cancel_product_secondoutputimaginary) = 0) \/ exists ge_signed_half_cancel_product_secondoutputimaginarydecode. (((ge_representation_imaginary_code_cancel_product_secondoutput) = 2 * ge_signed_half_cancel_product_secondoutputimaginarydecode + 1 /\ (ge_balance_positive_cancel_product_secondoutputimaginary) = 0) /\ (ge_balance_negative_cancel_product_secondoutputimaginary) = S ge_signed_half_cancel_product_secondoutputimaginarydecode))) /\ ((((((((ge_first_rp_cancel_product_second) * (ge_second_ip_cancel_product_second))) + (((ge_first_rn_cancel_product_second) * (ge_second_in_cancel_product_second))))) + (((((ge_first_ip_cancel_product_second) * (ge_second_rp_cancel_product_second))) + (((ge_first_in_cancel_product_second) * (ge_second_rn_cancel_product_second))))))) + ge_balance_negative_cancel_product_secondoutputimaginary = (((((((ge_first_rp_cancel_product_second) * (ge_second_in_cancel_product_second))) + (((ge_first_rn_cancel_product_second) * (ge_second_ip_cancel_product_second))))) + (((((ge_first_ip_cancel_product_second) * (ge_second_rn_cancel_product_second))) + (((ge_first_in_cancel_product_second) * (ge_second_rp_cancel_product_second))))))) + ge_balance_positive_cancel_product_secondoutputimaginary))))))))) -> b=cConstructive proof overview
Generated structural guide
A nonzero Gaussian factor cancels, using an actually constructed difference, distributivity and the proved absence of zero divisors.
The unchanged tactic script uses 12 declared prerequisites and contains 93 exact native proof lines.
Alpha v34 checked-use · first admitted v30 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
GF002C gaussian_subtract_exists GF0007 gaussian_multiply_input_left_valid GF0008 gaussian_multiply_input_right_valid GF0009 gaussian_multiply_output_valid GF0004 gaussian_add_input_left_valid gaussian_multiply_exists Alpha theorem; checked-use authorized GF0038 gaussian_multiply_add_distribute GF0027 gaussian_add_zero_left GF003A gaussian_add_cancel_right GF002F gaussian_multiply_output_transport GF001F gaussian_multiply_zero_implies_zero_factor gaussian_add_functional 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 (10)
01Fix variables and assumptionsL1–7
02Establish hdL8–17
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian subtract exists.
- L8
have hd : ∃ d. ZPairAdd(d,c,b)Definitions: ZPairAdd - L9
specialize gaussian_subtract_exists (b) - L10
specialize gaussian_subtract_exists (c) - L11
apply gaussian_subtract_exists - L12
specialize gaussian_multiply_input_right_valid (a) - L13
specialize gaussian_multiply_input_right_valid (b) - L14
specialize gaussian_multiply_input_right_valid (t) - L15
apply gaussian_multiply_input_right_valid - L16
exact hB - L17
specialize gaussian_multiply_input_right_valid (a)
03Use earlier factsL18–21
04Separate the logical casesL22–22
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L22
cases hd
05Establish hproductL23–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian multiply exists.
- L23
have hproduct : ∃ u. GMul(a,x,u)Definitions: GMul - L24
specialize gaussian_multiply_exists (a) - L25
specialize gaussian_multiply_exists (x) - L26
apply gaussian_multiply_exists - L27
specialize gaussian_multiply_input_left_valid (a) - L28
specialize gaussian_multiply_input_left_valid (b) - L29
specialize gaussian_multiply_input_left_valid (t) - L30
apply gaussian_multiply_input_left_valid - L31
exact hB - L32
specialize gaussian_add_input_left_valid (x)
06Use earlier factsL33–36
07Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
cases hproduct
08Establish hsumL38–47
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian multiply add distribute.
- L38
have hsum : ZPairAdd(x1,t,t)Definitions: ZPairAdd - L39
specialize gaussian_multiply_add_distribute (a) - L40
specialize gaussian_multiply_add_distribute (x) - L41
specialize gaussian_multiply_add_distribute (c) - L42
specialize gaussian_multiply_add_distribute (b) - L43
specialize gaussian_multiply_add_distribute (x1) - L44
specialize gaussian_multiply_add_distribute (t) - L45
specialize gaussian_multiply_add_distribute (t) - L46
apply gaussian_multiply_add_distribute - L47
exact hd_witness
09Use earlier factsL48–50
10Establish hzeroL51–60
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian add cancel right.
- L51
have hzero : x1=0 - L52
specialize gaussian_add_cancel_right (x1) - L53
specialize gaussian_add_cancel_right (0) - L54
specialize gaussian_add_cancel_right (t) - L55
specialize gaussian_add_cancel_right (t) - L56
apply gaussian_add_cancel_right - L57
exact hsum - L58
specialize gaussian_add_zero_left (t) - L59
apply gaussian_add_zero_left - L60
specialize gaussian_multiply_output_valid (a)
11Use earlier factsL61–64
12Establish hcasesL65–74
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian multiply zero implies zero factor.
- L65
have hcases : a=0 \/ x=0 - L66
specialize gaussian_multiply_zero_implies_zero_factor (a) - L67
specialize gaussian_multiply_zero_implies_zero_factor (x) - L68
apply gaussian_multiply_zero_implies_zero_factor - L69
specialize gaussian_multiply_output_transport (a) - L70
specialize gaussian_multiply_output_transport (x) - L71
specialize gaussian_multiply_output_transport (x1) - L72
specialize gaussian_multiply_output_transport (0) - L73
apply gaussian_multiply_output_transport - L74
exact hzero
13Use earlier factsL75–75
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L75
exact hproduct_witness
14Separate the logical casesL76–77
15Use earlier factsL78–79
16Calculate and transport equalitiesL80–80
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L80
rewrite hcases_right at hd_witness
17Use earlier factsL81–90
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L81
specialize gaussian_add_functional (0) - L82
specialize gaussian_add_functional (c) - L83
specialize gaussian_add_functional (b) - L84
specialize gaussian_add_functional (c) - L85
apply gaussian_add_functional - L86
exact hd_witness - L87
specialize gaussian_add_zero_left (c) - L88
apply gaussian_add_zero_left - L89
specialize gaussian_multiply_input_right_valid (a) - L90
specialize gaussian_multiply_input_right_valid (c)
Original exact command ledger · 93 lines
- 0001
intro a - 0002
intro b - 0003
intro c - 0004
intro t - 0005
intro hn - 0006
intro hB - 0007
intro hC - 0008
have hd : exists d. (exists ge_first_rp_cancel_product_difference ge_first_rn_cancel_product_difference ge_first_ip_cancel_product_difference ge_first_in_cancel_product_difference ge_second_rp_cancel_product_difference ge_second_rn_cancel_product_difference ge_second_ip_cancel_product_difference ge_second_in_cancel_product_difference. ((exists ge_representation_real_code_cancel_product_differencefirst ge_representation_imaginary_code_cancel_product_differencefirst. (((d) = ((ge_representation_real_code_cancel_product_differencefirst) + (ge_representation_imaginary_code_cancel_product_differencefirst)) * S ((ge_representation_real_code_cancel_product_differencefirst) + (ge_representation_imaginary_code_cancel_product_differencefirst)) + ((ge_representation_imaginary_code_cancel_product_differencefirst) + (ge_representation_imaginary_code_cancel_product_differencefirst))) /\ ((exists ge_balance_positive_cancel_product_differencefirstreal ge_balance_negative_cancel_product_differencefirstreal. (((((ge_representation_real_code_cancel_product_differencefirst) = 2 * (ge_balance_positive_cancel_product_differencefirstreal) /\ (ge_balance_negative_cancel_product_differencefirstreal) = 0) \/ exists ge_signed_half_cancel_product_differencefirstrealdecode. (((ge_representation_real_code_cancel_product_differencefirst) = 2 * ge_signed_half_cancel_product_differencefirstrealdecode + 1 /\ (ge_balance_positive_cancel_product_differencefirstreal) = 0) /\ (ge_balance_negative_cancel_product_differencefirstreal) = S ge_signed_half_cancel_product_differencefirstrealdecode))) /\ ((ge_first_rp_cancel_product_difference) + ge_balance_negative_cancel_product_differencefirstreal = (ge_first_rn_cancel_product_difference) + ge_balance_positive_cancel_product_differencefirstreal))) /\ (exists ge_balance_positive_cancel_product_differencefirstimaginary ge_balance_negative_cancel_product_differencefirstimaginary. (((((ge_representation_imaginary_code_cancel_product_differencefirst) = 2 * (ge_balance_positive_cancel_product_differencefirstimaginary) /\ (ge_balance_negative_cancel_product_differencefirstimaginary) = 0) \/ exists ge_signed_half_cancel_product_differencefirstimaginarydecode. (((ge_representation_imaginary_code_cancel_product_differencefirst) = 2 * ge_signed_half_cancel_product_differencefirstimaginarydecode + 1 /\ (ge_balance_positive_cancel_product_differencefirstimaginary) = 0) /\ (ge_balance_negative_cancel_product_differencefirstimaginary) = S ge_signed_half_cancel_product_differencefirstimaginarydecode))) /\ ((ge_first_ip_cancel_product_difference) + ge_balance_negative_cancel_product_differencefirstimaginary = (ge_first_in_cancel_product_difference) + ge_balance_positive_cancel_product_differencefirstimaginary)))))) /\ ((exists ge_representation_real_code_cancel_product_differencesecond ge_representation_imaginary_code_cancel_product_differencesecond. (((c) = ((ge_representation_real_code_cancel_product_differencesecond) + (ge_representation_imaginary_code_cancel_product_differencesecond)) * S ((ge_representation_real_code_cancel_product_differencesecond) + (ge_representation_imaginary_code_cancel_product_differencesecond)) + ((ge_representation_imaginary_code_cancel_product_differencesecond) + (ge_representation_imaginary_code_cancel_product_differencesecond))) /\ ((exists ge_balance_positive_cancel_product_differencesecondreal ge_balance_negative_cancel_product_differencesecondreal. (((((ge_representation_real_code_cancel_product_differencesecond) = 2 * (ge_balance_positive_cancel_product_differencesecondreal) /\ (ge_balance_negative_cancel_product_differencesecondreal) = 0) \/ exists ge_signed_half_cancel_product_differencesecondrealdecode. (((ge_representation_real_code_cancel_product_differencesecond) = 2 * ge_signed_half_cancel_product_differencesecondrealdecode + 1 /\ (ge_balance_positive_cancel_product_differencesecondreal) = 0) /\ (ge_balance_negative_cancel_product_differencesecondreal) = S ge_signed_half_cancel_product_differencesecondrealdecode))) /\ ((ge_second_rp_cancel_product_difference) + ge_balance_negative_cancel_product_differencesecondreal = (ge_second_rn_cancel_product_difference) + ge_balance_positive_cancel_product_differencesecondreal))) /\ (exists ge_balance_positive_cancel_product_differencesecondimaginary ge_balance_negative_cancel_product_differencesecondimaginary. (((((ge_representation_imaginary_code_cancel_product_differencesecond) = 2 * (ge_balance_positive_cancel_product_differencesecondimaginary) /\ (ge_balance_negative_cancel_product_differencesecondimaginary) = 0) \/ exists ge_signed_half_cancel_product_differencesecondimaginarydecode. (((ge_representation_imaginary_code_cancel_product_differencesecond) = 2 * ge_signed_half_cancel_product_differencesecondimaginarydecode + 1 /\ (ge_balance_positive_cancel_product_differencesecondimaginary) = 0) /\ (ge_balance_negative_cancel_product_differencesecondimaginary) = S ge_signed_half_cancel_product_differencesecondimaginarydecode))) /\ ((ge_second_ip_cancel_product_difference) + ge_balance_negative_cancel_product_differencesecondimaginary = (ge_second_in_cancel_product_difference) + ge_balance_positive_cancel_product_differencesecondimaginary)))))) /\ (exists ge_representation_real_code_cancel_product_differenceoutput ge_representation_imaginary_code_cancel_product_differenceoutput. (((b) = ((ge_representation_real_code_cancel_product_differenceoutput) + (ge_representation_imaginary_code_cancel_product_differenceoutput)) * S ((ge_representation_real_code_cancel_product_differenceoutput) + (ge_representation_imaginary_code_cancel_product_differenceoutput)) + ((ge_representation_imaginary_code_cancel_product_differenceoutput) + (ge_representation_imaginary_code_cancel_product_differenceoutput))) /\ ((exists ge_balance_positive_cancel_product_differenceoutputreal ge_balance_negative_cancel_product_differenceoutputreal. (((((ge_representation_real_code_cancel_product_differenceoutput) = 2 * (ge_balance_positive_cancel_product_differenceoutputreal) /\ (ge_balance_negative_cancel_product_differenceoutputreal) = 0) \/ exists ge_signed_half_cancel_product_differenceoutputrealdecode. (((ge_representation_real_code_cancel_product_differenceoutput) = 2 * ge_signed_half_cancel_product_differenceoutputrealdecode + 1 /\ (ge_balance_positive_cancel_product_differenceoutputreal) = 0) /\ (ge_balance_negative_cancel_product_differenceoutputreal) = S ge_signed_half_cancel_product_differenceoutputrealdecode))) /\ ((((ge_first_rp_cancel_product_difference) + (ge_second_rp_cancel_product_difference))) + ge_balance_negative_cancel_product_differenceoutputreal = (((ge_first_rn_cancel_product_difference) + (ge_second_rn_cancel_product_difference))) + ge_balance_positive_cancel_product_differenceoutputreal))) /\ (exists ge_balance_positive_cancel_product_differenceoutputimaginary ge_balance_negative_cancel_product_differenceoutputimaginary. (((((ge_representation_imaginary_code_cancel_product_differenceoutput) = 2 * (ge_balance_positive_cancel_product_differenceoutputimaginary) /\ (ge_balance_negative_cancel_product_differenceoutputimaginary) = 0) \/ exists ge_signed_half_cancel_product_differenceoutputimaginarydecode. (((ge_representation_imaginary_code_cancel_product_differenceoutput) = 2 * ge_signed_half_cancel_product_differenceoutputimaginarydecode + 1 /\ (ge_balance_positive_cancel_product_differenceoutputimaginary) = 0) /\ (ge_balance_negative_cancel_product_differenceoutputimaginary) = S ge_signed_half_cancel_product_differenceoutputimaginarydecode))) /\ ((((ge_first_ip_cancel_product_difference) + (ge_second_ip_cancel_product_difference))) + ge_balance_negative_cancel_product_differenceoutputimaginary = (((ge_first_in_cancel_product_difference) + (ge_second_in_cancel_product_difference))) + ge_balance_positive_cancel_product_differenceoutputimaginary))))))))) - 0009
specialize gaussian_subtract_exists (b) - 0010
specialize gaussian_subtract_exists (c) - 0011
apply gaussian_subtract_exists - 0012
specialize gaussian_multiply_input_right_valid (a) - 0013
specialize gaussian_multiply_input_right_valid (b) - 0014
specialize gaussian_multiply_input_right_valid (t) - 0015
apply gaussian_multiply_input_right_valid - 0016
exact hB - 0017
specialize gaussian_multiply_input_right_valid (a) - 0018
specialize gaussian_multiply_input_right_valid (c) - 0019
specialize gaussian_multiply_input_right_valid (t) - 0020
apply gaussian_multiply_input_right_valid - 0021
exact hC - 0022
cases hd - 0023
have hproduct : exists u. (exists ge_first_rp_cancel_product_construct ge_first_rn_cancel_product_construct ge_first_ip_cancel_product_construct ge_first_in_cancel_product_construct ge_second_rp_cancel_product_construct ge_second_rn_cancel_product_construct ge_second_ip_cancel_product_construct ge_second_in_cancel_product_construct. ((exists ge_representation_real_code_cancel_product_constructfirst ge_representation_imaginary_code_cancel_product_constructfirst. (((a) = ((ge_representation_real_code_cancel_product_constructfirst) + (ge_representation_imaginary_code_cancel_product_constructfirst)) * S ((ge_representation_real_code_cancel_product_constructfirst) + (ge_representation_imaginary_code_cancel_product_constructfirst)) + ((ge_representation_imaginary_code_cancel_product_constructfirst) + (ge_representation_imaginary_code_cancel_product_constructfirst))) /\ ((exists ge_balance_positive_cancel_product_constructfirstreal ge_balance_negative_cancel_product_constructfirstreal. (((((ge_representation_real_code_cancel_product_constructfirst) = 2 * (ge_balance_positive_cancel_product_constructfirstreal) /\ (ge_balance_negative_cancel_product_constructfirstreal) = 0) \/ exists ge_signed_half_cancel_product_constructfirstrealdecode. (((ge_representation_real_code_cancel_product_constructfirst) = 2 * ge_signed_half_cancel_product_constructfirstrealdecode + 1 /\ (ge_balance_positive_cancel_product_constructfirstreal) = 0) /\ (ge_balance_negative_cancel_product_constructfirstreal) = S ge_signed_half_cancel_product_constructfirstrealdecode))) /\ ((ge_first_rp_cancel_product_construct) + ge_balance_negative_cancel_product_constructfirstreal = (ge_first_rn_cancel_product_construct) + ge_balance_positive_cancel_product_constructfirstreal))) /\ (exists ge_balance_positive_cancel_product_constructfirstimaginary ge_balance_negative_cancel_product_constructfirstimaginary. (((((ge_representation_imaginary_code_cancel_product_constructfirst) = 2 * (ge_balance_positive_cancel_product_constructfirstimaginary) /\ (ge_balance_negative_cancel_product_constructfirstimaginary) = 0) \/ exists ge_signed_half_cancel_product_constructfirstimaginarydecode. (((ge_representation_imaginary_code_cancel_product_constructfirst) = 2 * ge_signed_half_cancel_product_constructfirstimaginarydecode + 1 /\ (ge_balance_positive_cancel_product_constructfirstimaginary) = 0) /\ (ge_balance_negative_cancel_product_constructfirstimaginary) = S ge_signed_half_cancel_product_constructfirstimaginarydecode))) /\ ((ge_first_ip_cancel_product_construct) + ge_balance_negative_cancel_product_constructfirstimaginary = (ge_first_in_cancel_product_construct) + ge_balance_positive_cancel_product_constructfirstimaginary)))))) /\ ((exists ge_representation_real_code_cancel_product_constructsecond ge_representation_imaginary_code_cancel_product_constructsecond. (((x) = ((ge_representation_real_code_cancel_product_constructsecond) + (ge_representation_imaginary_code_cancel_product_constructsecond)) * S ((ge_representation_real_code_cancel_product_constructsecond) + (ge_representation_imaginary_code_cancel_product_constructsecond)) + ((ge_representation_imaginary_code_cancel_product_constructsecond) + (ge_representation_imaginary_code_cancel_product_constructsecond))) /\ ((exists ge_balance_positive_cancel_product_constructsecondreal ge_balance_negative_cancel_product_constructsecondreal. (((((ge_representation_real_code_cancel_product_constructsecond) = 2 * (ge_balance_positive_cancel_product_constructsecondreal) /\ (ge_balance_negative_cancel_product_constructsecondreal) = 0) \/ exists ge_signed_half_cancel_product_constructsecondrealdecode. (((ge_representation_real_code_cancel_product_constructsecond) = 2 * ge_signed_half_cancel_product_constructsecondrealdecode + 1 /\ (ge_balance_positive_cancel_product_constructsecondreal) = 0) /\ (ge_balance_negative_cancel_product_constructsecondreal) = S ge_signed_half_cancel_product_constructsecondrealdecode))) /\ ((ge_second_rp_cancel_product_construct) + ge_balance_negative_cancel_product_constructsecondreal = (ge_second_rn_cancel_product_construct) + ge_balance_positive_cancel_product_constructsecondreal))) /\ (exists ge_balance_positive_cancel_product_constructsecondimaginary ge_balance_negative_cancel_product_constructsecondimaginary. (((((ge_representation_imaginary_code_cancel_product_constructsecond) = 2 * (ge_balance_positive_cancel_product_constructsecondimaginary) /\ (ge_balance_negative_cancel_product_constructsecondimaginary) = 0) \/ exists ge_signed_half_cancel_product_constructsecondimaginarydecode. (((ge_representation_imaginary_code_cancel_product_constructsecond) = 2 * ge_signed_half_cancel_product_constructsecondimaginarydecode + 1 /\ (ge_balance_positive_cancel_product_constructsecondimaginary) = 0) /\ (ge_balance_negative_cancel_product_constructsecondimaginary) = S ge_signed_half_cancel_product_constructsecondimaginarydecode))) /\ ((ge_second_ip_cancel_product_construct) + ge_balance_negative_cancel_product_constructsecondimaginary = (ge_second_in_cancel_product_construct) + ge_balance_positive_cancel_product_constructsecondimaginary)))))) /\ (exists ge_representation_real_code_cancel_product_constructoutput ge_representation_imaginary_code_cancel_product_constructoutput. (((u) = ((ge_representation_real_code_cancel_product_constructoutput) + (ge_representation_imaginary_code_cancel_product_constructoutput)) * S ((ge_representation_real_code_cancel_product_constructoutput) + (ge_representation_imaginary_code_cancel_product_constructoutput)) + ((ge_representation_imaginary_code_cancel_product_constructoutput) + (ge_representation_imaginary_code_cancel_product_constructoutput))) /\ ((exists ge_balance_positive_cancel_product_constructoutputreal ge_balance_negative_cancel_product_constructoutputreal. (((((ge_representation_real_code_cancel_product_constructoutput) = 2 * (ge_balance_positive_cancel_product_constructoutputreal) /\ (ge_balance_negative_cancel_product_constructoutputreal) = 0) \/ exists ge_signed_half_cancel_product_constructoutputrealdecode. (((ge_representation_real_code_cancel_product_constructoutput) = 2 * ge_signed_half_cancel_product_constructoutputrealdecode + 1 /\ (ge_balance_positive_cancel_product_constructoutputreal) = 0) /\ (ge_balance_negative_cancel_product_constructoutputreal) = S ge_signed_half_cancel_product_constructoutputrealdecode))) /\ ((((((((ge_first_rp_cancel_product_construct) * (ge_second_rp_cancel_product_construct))) + (((ge_first_rn_cancel_product_construct) * (ge_second_rn_cancel_product_construct))))) + (((((ge_first_ip_cancel_product_construct) * (ge_second_in_cancel_product_construct))) + (((ge_first_in_cancel_product_construct) * (ge_second_ip_cancel_product_construct))))))) + ge_balance_negative_cancel_product_constructoutputreal = (((((((ge_first_rp_cancel_product_construct) * (ge_second_rn_cancel_product_construct))) + (((ge_first_rn_cancel_product_construct) * (ge_second_rp_cancel_product_construct))))) + (((((ge_first_ip_cancel_product_construct) * (ge_second_ip_cancel_product_construct))) + (((ge_first_in_cancel_product_construct) * (ge_second_in_cancel_product_construct))))))) + ge_balance_positive_cancel_product_constructoutputreal))) /\ (exists ge_balance_positive_cancel_product_constructoutputimaginary ge_balance_negative_cancel_product_constructoutputimaginary. (((((ge_representation_imaginary_code_cancel_product_constructoutput) = 2 * (ge_balance_positive_cancel_product_constructoutputimaginary) /\ (ge_balance_negative_cancel_product_constructoutputimaginary) = 0) \/ exists ge_signed_half_cancel_product_constructoutputimaginarydecode. (((ge_representation_imaginary_code_cancel_product_constructoutput) = 2 * ge_signed_half_cancel_product_constructoutputimaginarydecode + 1 /\ (ge_balance_positive_cancel_product_constructoutputimaginary) = 0) /\ (ge_balance_negative_cancel_product_constructoutputimaginary) = S ge_signed_half_cancel_product_constructoutputimaginarydecode))) /\ ((((((((ge_first_rp_cancel_product_construct) * (ge_second_ip_cancel_product_construct))) + (((ge_first_rn_cancel_product_construct) * (ge_second_in_cancel_product_construct))))) + (((((ge_first_ip_cancel_product_construct) * (ge_second_rp_cancel_product_construct))) + (((ge_first_in_cancel_product_construct) * (ge_second_rn_cancel_product_construct))))))) + ge_balance_negative_cancel_product_constructoutputimaginary = (((((((ge_first_rp_cancel_product_construct) * (ge_second_in_cancel_product_construct))) + (((ge_first_rn_cancel_product_construct) * (ge_second_ip_cancel_product_construct))))) + (((((ge_first_ip_cancel_product_construct) * (ge_second_rn_cancel_product_construct))) + (((ge_first_in_cancel_product_construct) * (ge_second_rp_cancel_product_construct))))))) + ge_balance_positive_cancel_product_constructoutputimaginary))))))))) - 0024
specialize gaussian_multiply_exists (a) - 0025
specialize gaussian_multiply_exists (x) - 0026
apply gaussian_multiply_exists - 0027
specialize gaussian_multiply_input_left_valid (a) - 0028
specialize gaussian_multiply_input_left_valid (b) - 0029
specialize gaussian_multiply_input_left_valid (t) - 0030
apply gaussian_multiply_input_left_valid - 0031
exact hB - 0032
specialize gaussian_add_input_left_valid (x) - 0033
specialize gaussian_add_input_left_valid (c) - 0034
specialize gaussian_add_input_left_valid (b) - 0035
apply gaussian_add_input_left_valid - 0036
exact hd_witness - 0037
cases hproduct - 0038
have hsum : exists ge_first_rp_cancel_product_sum ge_first_rn_cancel_product_sum ge_first_ip_cancel_product_sum ge_first_in_cancel_product_sum ge_second_rp_cancel_product_sum ge_second_rn_cancel_product_sum ge_second_ip_cancel_product_sum ge_second_in_cancel_product_sum. ((exists ge_representation_real_code_cancel_product_sumfirst ge_representation_imaginary_code_cancel_product_sumfirst. (((x1) = ((ge_representation_real_code_cancel_product_sumfirst) + (ge_representation_imaginary_code_cancel_product_sumfirst)) * S ((ge_representation_real_code_cancel_product_sumfirst) + (ge_representation_imaginary_code_cancel_product_sumfirst)) + ((ge_representation_imaginary_code_cancel_product_sumfirst) + (ge_representation_imaginary_code_cancel_product_sumfirst))) /\ ((exists ge_balance_positive_cancel_product_sumfirstreal ge_balance_negative_cancel_product_sumfirstreal. (((((ge_representation_real_code_cancel_product_sumfirst) = 2 * (ge_balance_positive_cancel_product_sumfirstreal) /\ (ge_balance_negative_cancel_product_sumfirstreal) = 0) \/ exists ge_signed_half_cancel_product_sumfirstrealdecode. (((ge_representation_real_code_cancel_product_sumfirst) = 2 * ge_signed_half_cancel_product_sumfirstrealdecode + 1 /\ (ge_balance_positive_cancel_product_sumfirstreal) = 0) /\ (ge_balance_negative_cancel_product_sumfirstreal) = S ge_signed_half_cancel_product_sumfirstrealdecode))) /\ ((ge_first_rp_cancel_product_sum) + ge_balance_negative_cancel_product_sumfirstreal = (ge_first_rn_cancel_product_sum) + ge_balance_positive_cancel_product_sumfirstreal))) /\ (exists ge_balance_positive_cancel_product_sumfirstimaginary ge_balance_negative_cancel_product_sumfirstimaginary. (((((ge_representation_imaginary_code_cancel_product_sumfirst) = 2 * (ge_balance_positive_cancel_product_sumfirstimaginary) /\ (ge_balance_negative_cancel_product_sumfirstimaginary) = 0) \/ exists ge_signed_half_cancel_product_sumfirstimaginarydecode. (((ge_representation_imaginary_code_cancel_product_sumfirst) = 2 * ge_signed_half_cancel_product_sumfirstimaginarydecode + 1 /\ (ge_balance_positive_cancel_product_sumfirstimaginary) = 0) /\ (ge_balance_negative_cancel_product_sumfirstimaginary) = S ge_signed_half_cancel_product_sumfirstimaginarydecode))) /\ ((ge_first_ip_cancel_product_sum) + ge_balance_negative_cancel_product_sumfirstimaginary = (ge_first_in_cancel_product_sum) + ge_balance_positive_cancel_product_sumfirstimaginary)))))) /\ ((exists ge_representation_real_code_cancel_product_sumsecond ge_representation_imaginary_code_cancel_product_sumsecond. (((t) = ((ge_representation_real_code_cancel_product_sumsecond) + (ge_representation_imaginary_code_cancel_product_sumsecond)) * S ((ge_representation_real_code_cancel_product_sumsecond) + (ge_representation_imaginary_code_cancel_product_sumsecond)) + ((ge_representation_imaginary_code_cancel_product_sumsecond) + (ge_representation_imaginary_code_cancel_product_sumsecond))) /\ ((exists ge_balance_positive_cancel_product_sumsecondreal ge_balance_negative_cancel_product_sumsecondreal. (((((ge_representation_real_code_cancel_product_sumsecond) = 2 * (ge_balance_positive_cancel_product_sumsecondreal) /\ (ge_balance_negative_cancel_product_sumsecondreal) = 0) \/ exists ge_signed_half_cancel_product_sumsecondrealdecode. (((ge_representation_real_code_cancel_product_sumsecond) = 2 * ge_signed_half_cancel_product_sumsecondrealdecode + 1 /\ (ge_balance_positive_cancel_product_sumsecondreal) = 0) /\ (ge_balance_negative_cancel_product_sumsecondreal) = S ge_signed_half_cancel_product_sumsecondrealdecode))) /\ ((ge_second_rp_cancel_product_sum) + ge_balance_negative_cancel_product_sumsecondreal = (ge_second_rn_cancel_product_sum) + ge_balance_positive_cancel_product_sumsecondreal))) /\ (exists ge_balance_positive_cancel_product_sumsecondimaginary ge_balance_negative_cancel_product_sumsecondimaginary. (((((ge_representation_imaginary_code_cancel_product_sumsecond) = 2 * (ge_balance_positive_cancel_product_sumsecondimaginary) /\ (ge_balance_negative_cancel_product_sumsecondimaginary) = 0) \/ exists ge_signed_half_cancel_product_sumsecondimaginarydecode. (((ge_representation_imaginary_code_cancel_product_sumsecond) = 2 * ge_signed_half_cancel_product_sumsecondimaginarydecode + 1 /\ (ge_balance_positive_cancel_product_sumsecondimaginary) = 0) /\ (ge_balance_negative_cancel_product_sumsecondimaginary) = S ge_signed_half_cancel_product_sumsecondimaginarydecode))) /\ ((ge_second_ip_cancel_product_sum) + ge_balance_negative_cancel_product_sumsecondimaginary = (ge_second_in_cancel_product_sum) + ge_balance_positive_cancel_product_sumsecondimaginary)))))) /\ (exists ge_representation_real_code_cancel_product_sumoutput ge_representation_imaginary_code_cancel_product_sumoutput. (((t) = ((ge_representation_real_code_cancel_product_sumoutput) + (ge_representation_imaginary_code_cancel_product_sumoutput)) * S ((ge_representation_real_code_cancel_product_sumoutput) + (ge_representation_imaginary_code_cancel_product_sumoutput)) + ((ge_representation_imaginary_code_cancel_product_sumoutput) + (ge_representation_imaginary_code_cancel_product_sumoutput))) /\ ((exists ge_balance_positive_cancel_product_sumoutputreal ge_balance_negative_cancel_product_sumoutputreal. (((((ge_representation_real_code_cancel_product_sumoutput) = 2 * (ge_balance_positive_cancel_product_sumoutputreal) /\ (ge_balance_negative_cancel_product_sumoutputreal) = 0) \/ exists ge_signed_half_cancel_product_sumoutputrealdecode. (((ge_representation_real_code_cancel_product_sumoutput) = 2 * ge_signed_half_cancel_product_sumoutputrealdecode + 1 /\ (ge_balance_positive_cancel_product_sumoutputreal) = 0) /\ (ge_balance_negative_cancel_product_sumoutputreal) = S ge_signed_half_cancel_product_sumoutputrealdecode))) /\ ((((ge_first_rp_cancel_product_sum) + (ge_second_rp_cancel_product_sum))) + ge_balance_negative_cancel_product_sumoutputreal = (((ge_first_rn_cancel_product_sum) + (ge_second_rn_cancel_product_sum))) + ge_balance_positive_cancel_product_sumoutputreal))) /\ (exists ge_balance_positive_cancel_product_sumoutputimaginary ge_balance_negative_cancel_product_sumoutputimaginary. (((((ge_representation_imaginary_code_cancel_product_sumoutput) = 2 * (ge_balance_positive_cancel_product_sumoutputimaginary) /\ (ge_balance_negative_cancel_product_sumoutputimaginary) = 0) \/ exists ge_signed_half_cancel_product_sumoutputimaginarydecode. (((ge_representation_imaginary_code_cancel_product_sumoutput) = 2 * ge_signed_half_cancel_product_sumoutputimaginarydecode + 1 /\ (ge_balance_positive_cancel_product_sumoutputimaginary) = 0) /\ (ge_balance_negative_cancel_product_sumoutputimaginary) = S ge_signed_half_cancel_product_sumoutputimaginarydecode))) /\ ((((ge_first_ip_cancel_product_sum) + (ge_second_ip_cancel_product_sum))) + ge_balance_negative_cancel_product_sumoutputimaginary = (((ge_first_in_cancel_product_sum) + (ge_second_in_cancel_product_sum))) + ge_balance_positive_cancel_product_sumoutputimaginary)))))))) - 0039
specialize gaussian_multiply_add_distribute (a) - 0040
specialize gaussian_multiply_add_distribute (x) - 0041
specialize gaussian_multiply_add_distribute (c) - 0042
specialize gaussian_multiply_add_distribute (b) - 0043
specialize gaussian_multiply_add_distribute (x1) - 0044
specialize gaussian_multiply_add_distribute (t) - 0045
specialize gaussian_multiply_add_distribute (t) - 0046
apply gaussian_multiply_add_distribute - 0047
exact hd_witness - 0048
exact hproduct_witness - 0049
exact hC - 0050
exact hB - 0051
have hzero : x1=0 - 0052
specialize gaussian_add_cancel_right (x1) - 0053
specialize gaussian_add_cancel_right (0) - 0054
specialize gaussian_add_cancel_right (t) - 0055
specialize gaussian_add_cancel_right (t) - 0056
apply gaussian_add_cancel_right - 0057
exact hsum - 0058
specialize gaussian_add_zero_left (t) - 0059
apply gaussian_add_zero_left - 0060
specialize gaussian_multiply_output_valid (a) - 0061
specialize gaussian_multiply_output_valid (b) - 0062
specialize gaussian_multiply_output_valid (t) - 0063
apply gaussian_multiply_output_valid - 0064
exact hB - 0065
have hcases : a=0 \/ x=0 - 0066
specialize gaussian_multiply_zero_implies_zero_factor (a) - 0067
specialize gaussian_multiply_zero_implies_zero_factor (x) - 0068
apply gaussian_multiply_zero_implies_zero_factor - 0069
specialize gaussian_multiply_output_transport (a) - 0070
specialize gaussian_multiply_output_transport (x) - 0071
specialize gaussian_multiply_output_transport (x1) - 0072
specialize gaussian_multiply_output_transport (0) - 0073
apply gaussian_multiply_output_transport - 0074
exact hzero - 0075
exact hproduct_witness - 0076
cases hcases - 0077
exfalso - 0078
apply hn - 0079
exact hcases_left - 0080
rewrite hcases_right at hd_witness - 0081
specialize gaussian_add_functional (0) - 0082
specialize gaussian_add_functional (c) - 0083
specialize gaussian_add_functional (b) - 0084
specialize gaussian_add_functional (c) - 0085
apply gaussian_add_functional - 0086
exact hd_witness - 0087
specialize gaussian_add_zero_left (c) - 0088
apply gaussian_add_zero_left - 0089
specialize gaussian_multiply_input_right_valid (a) - 0090
specialize gaussian_multiply_input_right_valid (c) - 0091
specialize gaussian_multiply_input_right_valid (t) - 0092
apply gaussian_multiply_input_right_valid - 0093
exact hC