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. (exists ge_real_positive_multiply_one_domain ge_real_negative_multiply_one_domain ge_imaginary_positive_multiply_one_domain ge_imaginary_negative_multiply_one_domain. (exists ge_real_code_multiply_one_domaindecode ge_imaginary_code_multiply_one_domaindecode. (((a) = ((ge_real_code_multiply_one_domaindecode) + (ge_imaginary_code_multiply_one_domaindecode)) * S ((ge_real_code_multiply_one_domaindecode) + (ge_imaginary_code_multiply_one_domaindecode)) + ((ge_imaginary_code_multiply_one_domaindecode) + (ge_imaginary_code_multiply_one_domaindecode))) /\ (((((ge_real_code_multiply_one_domaindecode) = 2 * (ge_real_positive_multiply_one_domain) /\ (ge_real_negative_multiply_one_domain) = 0) \/ exists ge_signed_half_ge_multiply_one_domaindecode_real. (((ge_real_code_multiply_one_domaindecode) = 2 * ge_signed_half_ge_multiply_one_domaindecode_real + 1 /\ (ge_real_positive_multiply_one_domain) = 0) /\ (ge_real_negative_multiply_one_domain) = S ge_signed_half_ge_multiply_one_domaindecode_real))) /\ ((((ge_imaginary_code_multiply_one_domaindecode) = 2 * (ge_imaginary_positive_multiply_one_domain) /\ (ge_imaginary_negative_multiply_one_domain) = 0) \/ exists ge_signed_half_ge_multiply_one_domaindecode_imaginary. (((ge_imaginary_code_multiply_one_domaindecode) = 2 * ge_signed_half_ge_multiply_one_domaindecode_imaginary + 1 /\ (ge_imaginary_positive_multiply_one_domain) = 0) /\ (ge_imaginary_negative_multiply_one_domain) = S ge_signed_half_ge_multiply_one_domaindecode_imaginary))))))) -> (exists ge_first_rp_multiply_one_right ge_first_rn_multiply_one_right ge_first_ip_multiply_one_right ge_first_in_multiply_one_right ge_second_rp_multiply_one_right ge_second_rn_multiply_one_right ge_second_ip_multiply_one_right ge_second_in_multiply_one_right. ((exists ge_representation_real_code_multiply_one_rightfirst ge_representation_imaginary_code_multiply_one_rightfirst. (((a) = ((ge_representation_real_code_multiply_one_rightfirst) + (ge_representation_imaginary_code_multiply_one_rightfirst)) * S ((ge_representation_real_code_multiply_one_rightfirst) + (ge_representation_imaginary_code_multiply_one_rightfirst)) + ((ge_representation_imaginary_code_multiply_one_rightfirst) + (ge_representation_imaginary_code_multiply_one_rightfirst))) /\ ((exists ge_balance_positive_multiply_one_rightfirstreal ge_balance_negative_multiply_one_rightfirstreal. (((((ge_representation_real_code_multiply_one_rightfirst) = 2 * (ge_balance_positive_multiply_one_rightfirstreal) /\ (ge_balance_negative_multiply_one_rightfirstreal) = 0) \/ exists ge_signed_half_multiply_one_rightfirstrealdecode. (((ge_representation_real_code_multiply_one_rightfirst) = 2 * ge_signed_half_multiply_one_rightfirstrealdecode + 1 /\ (ge_balance_positive_multiply_one_rightfirstreal) = 0) /\ (ge_balance_negative_multiply_one_rightfirstreal) = S ge_signed_half_multiply_one_rightfirstrealdecode))) /\ ((ge_first_rp_multiply_one_right) + ge_balance_negative_multiply_one_rightfirstreal = (ge_first_rn_multiply_one_right) + ge_balance_positive_multiply_one_rightfirstreal))) /\ (exists ge_balance_positive_multiply_one_rightfirstimaginary ge_balance_negative_multiply_one_rightfirstimaginary. (((((ge_representation_imaginary_code_multiply_one_rightfirst) = 2 * (ge_balance_positive_multiply_one_rightfirstimaginary) /\ (ge_balance_negative_multiply_one_rightfirstimaginary) = 0) \/ exists ge_signed_half_multiply_one_rightfirstimaginarydecode. (((ge_representation_imaginary_code_multiply_one_rightfirst) = 2 * ge_signed_half_multiply_one_rightfirstimaginarydecode + 1 /\ (ge_balance_positive_multiply_one_rightfirstimaginary) = 0) /\ (ge_balance_negative_multiply_one_rightfirstimaginary) = S ge_signed_half_multiply_one_rightfirstimaginarydecode))) /\ ((ge_first_ip_multiply_one_right) + ge_balance_negative_multiply_one_rightfirstimaginary = (ge_first_in_multiply_one_right) + ge_balance_positive_multiply_one_rightfirstimaginary)))))) /\ ((exists ge_representation_real_code_multiply_one_rightsecond ge_representation_imaginary_code_multiply_one_rightsecond. (((6) = ((ge_representation_real_code_multiply_one_rightsecond) + (ge_representation_imaginary_code_multiply_one_rightsecond)) * S ((ge_representation_real_code_multiply_one_rightsecond) + (ge_representation_imaginary_code_multiply_one_rightsecond)) + ((ge_representation_imaginary_code_multiply_one_rightsecond) + (ge_representation_imaginary_code_multiply_one_rightsecond))) /\ ((exists ge_balance_positive_multiply_one_rightsecondreal ge_balance_negative_multiply_one_rightsecondreal. (((((ge_representation_real_code_multiply_one_rightsecond) = 2 * (ge_balance_positive_multiply_one_rightsecondreal) /\ (ge_balance_negative_multiply_one_rightsecondreal) = 0) \/ exists ge_signed_half_multiply_one_rightsecondrealdecode. (((ge_representation_real_code_multiply_one_rightsecond) = 2 * ge_signed_half_multiply_one_rightsecondrealdecode + 1 /\ (ge_balance_positive_multiply_one_rightsecondreal) = 0) /\ (ge_balance_negative_multiply_one_rightsecondreal) = S ge_signed_half_multiply_one_rightsecondrealdecode))) /\ ((ge_second_rp_multiply_one_right) + ge_balance_negative_multiply_one_rightsecondreal = (ge_second_rn_multiply_one_right) + ge_balance_positive_multiply_one_rightsecondreal))) /\ (exists ge_balance_positive_multiply_one_rightsecondimaginary ge_balance_negative_multiply_one_rightsecondimaginary. (((((ge_representation_imaginary_code_multiply_one_rightsecond) = 2 * (ge_balance_positive_multiply_one_rightsecondimaginary) /\ (ge_balance_negative_multiply_one_rightsecondimaginary) = 0) \/ exists ge_signed_half_multiply_one_rightsecondimaginarydecode. (((ge_representation_imaginary_code_multiply_one_rightsecond) = 2 * ge_signed_half_multiply_one_rightsecondimaginarydecode + 1 /\ (ge_balance_positive_multiply_one_rightsecondimaginary) = 0) /\ (ge_balance_negative_multiply_one_rightsecondimaginary) = S ge_signed_half_multiply_one_rightsecondimaginarydecode))) /\ ((ge_second_ip_multiply_one_right) + ge_balance_negative_multiply_one_rightsecondimaginary = (ge_second_in_multiply_one_right) + ge_balance_positive_multiply_one_rightsecondimaginary)))))) /\ (exists ge_representation_real_code_multiply_one_rightoutput ge_representation_imaginary_code_multiply_one_rightoutput. (((a) = ((ge_representation_real_code_multiply_one_rightoutput) + (ge_representation_imaginary_code_multiply_one_rightoutput)) * S ((ge_representation_real_code_multiply_one_rightoutput) + (ge_representation_imaginary_code_multiply_one_rightoutput)) + ((ge_representation_imaginary_code_multiply_one_rightoutput) + (ge_representation_imaginary_code_multiply_one_rightoutput))) /\ ((exists ge_balance_positive_multiply_one_rightoutputreal ge_balance_negative_multiply_one_rightoutputreal. (((((ge_representation_real_code_multiply_one_rightoutput) = 2 * (ge_balance_positive_multiply_one_rightoutputreal) /\ (ge_balance_negative_multiply_one_rightoutputreal) = 0) \/ exists ge_signed_half_multiply_one_rightoutputrealdecode. (((ge_representation_real_code_multiply_one_rightoutput) = 2 * ge_signed_half_multiply_one_rightoutputrealdecode + 1 /\ (ge_balance_positive_multiply_one_rightoutputreal) = 0) /\ (ge_balance_negative_multiply_one_rightoutputreal) = S ge_signed_half_multiply_one_rightoutputrealdecode))) /\ ((((((((ge_first_rp_multiply_one_right) * (ge_second_rp_multiply_one_right))) + (((ge_first_rn_multiply_one_right) * (ge_second_rn_multiply_one_right))))) + (((((ge_first_ip_multiply_one_right) * (ge_second_in_multiply_one_right))) + (((ge_first_in_multiply_one_right) * (ge_second_ip_multiply_one_right))))))) + ge_balance_negative_multiply_one_rightoutputreal = (((((((ge_first_rp_multiply_one_right) * (ge_second_rn_multiply_one_right))) + (((ge_first_rn_multiply_one_right) * (ge_second_rp_multiply_one_right))))) + (((((ge_first_ip_multiply_one_right) * (ge_second_ip_multiply_one_right))) + (((ge_first_in_multiply_one_right) * (ge_second_in_multiply_one_right))))))) + ge_balance_positive_multiply_one_rightoutputreal))) /\ (exists ge_balance_positive_multiply_one_rightoutputimaginary ge_balance_negative_multiply_one_rightoutputimaginary. (((((ge_representation_imaginary_code_multiply_one_rightoutput) = 2 * (ge_balance_positive_multiply_one_rightoutputimaginary) /\ (ge_balance_negative_multiply_one_rightoutputimaginary) = 0) \/ exists ge_signed_half_multiply_one_rightoutputimaginarydecode. (((ge_representation_imaginary_code_multiply_one_rightoutput) = 2 * ge_signed_half_multiply_one_rightoutputimaginarydecode + 1 /\ (ge_balance_positive_multiply_one_rightoutputimaginary) = 0) /\ (ge_balance_negative_multiply_one_rightoutputimaginary) = S ge_signed_half_multiply_one_rightoutputimaginarydecode))) /\ ((((((((ge_first_rp_multiply_one_right) * (ge_second_ip_multiply_one_right))) + (((ge_first_rn_multiply_one_right) * (ge_second_in_multiply_one_right))))) + (((((ge_first_ip_multiply_one_right) * (ge_second_rp_multiply_one_right))) + (((ge_first_in_multiply_one_right) * (ge_second_rn_multiply_one_right))))))) + ge_balance_negative_multiply_one_rightoutputimaginary = (((((((ge_first_rp_multiply_one_right) * (ge_second_in_multiply_one_right))) + (((ge_first_rn_multiply_one_right) * (ge_second_ip_multiply_one_right))))) + (((((ge_first_ip_multiply_one_right) * (ge_second_rn_multiply_one_right))) + (((ge_first_in_multiply_one_right) * (ge_second_rp_multiply_one_right))))))) + ge_balance_positive_multiply_one_rightoutputimaginary)))))))))Constructive proof overview
Generated structural guide
The actual canonical Gaussian multiply one identity holds on the entire valid carrier.
The unchanged tactic script uses 5 declared prerequisites and contains 38 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 gaussian_multiply_of_representations Alpha theorem; checked-use authorized gaussian_representation_integer_transport Alpha theorem; checked-use authorized GF000E gaussian_one_representation zero_add Stable theorem; checked-use authorizedDirect dependents
GF0029 gaussian_multiply_one_left GF003D gaussian_one_unit GF0044 gaussian_divides_reflexive GF005A gaussian_mutual_divisibility_associate GF005F gaussian_gcd_bezout_zero_right GF0060 gaussian_gcd_bezout_zero_case GF0068 gaussian_nonzero_product_divisor_unit_cofactor GF0092 gaussian_unit_empty_factorizationFormal 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 (2)
01Fix variables and assumptionsL1–2
02Establish hAL3–6
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian valid has representation.
03Separate the logical casesL7–10
04Use earlier factsL11–20
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L11
specialize gaussian_multiply_of_representations (a) - L12
specialize gaussian_multiply_of_representations (6) - L13
specialize gaussian_multiply_of_representations (a) - L14
specialize gaussian_multiply_of_representations (x) - L15
specialize gaussian_multiply_of_representations (x1) - L16
specialize gaussian_multiply_of_representations (x2) - L17
specialize gaussian_multiply_of_representations (x3) - L18
specialize gaussian_multiply_of_representations (1) - L19
specialize gaussian_multiply_of_representations (0) - L20
specialize gaussian_multiply_of_representations (0)
05Use earlier factsL21–30
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L21
specialize gaussian_multiply_of_representations (0) - L22
apply gaussian_multiply_of_representations - L23
exact hA_witness_witness_witness_witness - L24
exact gaussian_one_representation - L25
specialize gaussian_representation_integer_transport (a) - L26
specialize gaussian_representation_integer_transport (x) - L27
specialize gaussian_representation_integer_transport (x1) - L28
specialize gaussian_representation_integer_transport (x2) - L29
specialize gaussian_representation_integer_transport (x3) - L30
specialize gaussian_representation_integer_transport (((((((x) * (1))) + (((x1) * (0))))) + (((((x2) * (0))) + (((x3) * (0)))))))
06Use earlier factsL31–34
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
specialize gaussian_representation_integer_transport (((((((x) * (0))) + (((x1) * (1))))) + (((((x2) * (0))) + (((x3) * (0))))))) - L32
specialize gaussian_representation_integer_transport (((((((x) * (0))) + (((x1) * (0))))) + (((((x2) * (1))) + (((x3) * (0))))))) - L33
specialize gaussian_representation_integer_transport (((((((x) * (0))) + (((x1) * (0))))) + (((((x2) * (0))) + (((x3) * (1))))))) - L34
apply gaussian_representation_integer_transport
07Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
split
08Calculate and transport equalitiesL36–37
09Use earlier factsL38–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
exact hA_witness_witness_witness_witness
Original exact command ledger · 38 lines
- 0001
intro a - 0002
intro hv - 0003
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)))))) - 0004
specialize gaussian_valid_has_representation (a) - 0005
apply gaussian_valid_has_representation - 0006
exact hv - 0007
cases hA - 0008
cases hA_witness - 0009
cases hA_witness_witness - 0010
cases hA_witness_witness_witness - 0011
specialize gaussian_multiply_of_representations (a) - 0012
specialize gaussian_multiply_of_representations (6) - 0013
specialize gaussian_multiply_of_representations (a) - 0014
specialize gaussian_multiply_of_representations (x) - 0015
specialize gaussian_multiply_of_representations (x1) - 0016
specialize gaussian_multiply_of_representations (x2) - 0017
specialize gaussian_multiply_of_representations (x3) - 0018
specialize gaussian_multiply_of_representations (1) - 0019
specialize gaussian_multiply_of_representations (0) - 0020
specialize gaussian_multiply_of_representations (0) - 0021
specialize gaussian_multiply_of_representations (0) - 0022
apply gaussian_multiply_of_representations - 0023
exact hA_witness_witness_witness_witness - 0024
exact gaussian_one_representation - 0025
specialize gaussian_representation_integer_transport (a) - 0026
specialize gaussian_representation_integer_transport (x) - 0027
specialize gaussian_representation_integer_transport (x1) - 0028
specialize gaussian_representation_integer_transport (x2) - 0029
specialize gaussian_representation_integer_transport (x3) - 0030
specialize gaussian_representation_integer_transport (((((((x) * (1))) + (((x1) * (0))))) + (((((x2) * (0))) + (((x3) * (0))))))) - 0031
specialize gaussian_representation_integer_transport (((((((x) * (0))) + (((x1) * (1))))) + (((((x2) * (0))) + (((x3) * (0))))))) - 0032
specialize gaussian_representation_integer_transport (((((((x) * (0))) + (((x1) * (0))))) + (((((x2) * (1))) + (((x3) * (0))))))) - 0033
specialize gaussian_representation_integer_transport (((((((x) * (0))) + (((x1) * (0))))) + (((((x2) * (0))) + (((x3) * (1))))))) - 0034
apply gaussian_representation_integer_transport - 0035
split - 0036
simp [zero_add] - 0037
simp [zero_add] - 0038
exact hA_witness_witness_witness_witness