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 p a b. ((~(p = 1) /\ forall frm_prime_left_ftsc_prime frm_prime_right_ftsc_prime. p = frm_prime_left_ftsc_prime * frm_prime_right_ftsc_prime -> frm_prime_left_ftsc_prime = 1 \/ frm_prime_right_ftsc_prime = 1)) -> (exists ftsc_four_three_ftsc_prime. (p) = 4 * ftsc_four_three_ftsc_prime + 3) -> (exists ftcn_factor_ftsc_norm. (a * a + b * b) = (p) * ftcn_factor_ftsc_norm) -> ((exists ftcn_factor_ftsc_first_result. (a) = (p) * ftcn_factor_ftsc_first_result) /\ (exists ftcn_factor_ftsc_both_second_result. (b) = (p) * ftcn_factor_ftsc_both_second_result))Constructive proof overview
Generated structural guide
A prime congruent to three modulo four divides a two-square norm only when it divides both coordinates.
The unchanged tactic script uses 4 declared prerequisites and contains 46 exact native proof lines.
dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged
Proof neighborhood
Direct dependencies
prime_nonzero Stable theorem; checked-use authorized nonzero_is_succ Stable theorem; checked-use authorized TS0026 three_mod_four_prime_norm_divisor_forces_second_coordinate add_comm Stable 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 (1)
01Fix variables and assumptionsL1–6
02Establish hnonzeroL7–12
03Establish hsuccessorL13–16
04Separate the logical casesL17–17
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L17
cases hsuccessor
05Establish hsecondL18–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply three mod four prime norm divisor forces second coordinate.
- L18
have hsecond : exists ftcn_factor_ftsc_both_second_local. (b) = (p) * ftcn_factor_ftsc_both_second_local - L19
specialize three_mod_four_prime_norm_divisor_forces_second_coordinate p - L20
specialize three_mod_four_prime_norm_divisor_forces_second_coordinate x - L21
specialize three_mod_four_prime_norm_divisor_forces_second_coordinate a - L22
specialize three_mod_four_prime_norm_divisor_forces_second_coordinate b - L23
apply three_mod_four_prime_norm_divisor_forces_second_coordinate - L24
exact hsuccessor_witness - L25
exact hprime - L26
exact hthree - L27
exact hnorm
06Establish hswappedL28–28
Establish this local claim before using it. It is not an additional assumption.
- L28
have hswapped : exists ftcn_factor_ftsc_swapped_norm. (b * b + a * a) = (p) * ftcn_factor_ftsc_swapped_norm
07Separate the logical casesL29–29
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L29
cases hnorm
08Construct an explicit witnessL30–30
Supply the displayed value, then prove that it has the required property.
- L30
exists x1
09Calculate and transport equalitiesL31–31
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L31
trans a * a + b * b
10Use earlier factsL32–33
11Establish hfirstL34–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply three mod four prime norm divisor forces second coordinate.
- L34
have hfirst : exists ftcn_factor_ftsc_both_first_local. (a) = (p) * ftcn_factor_ftsc_both_first_local - L35
specialize three_mod_four_prime_norm_divisor_forces_second_coordinate p - L36
specialize three_mod_four_prime_norm_divisor_forces_second_coordinate x - L37
specialize three_mod_four_prime_norm_divisor_forces_second_coordinate b - L38
specialize three_mod_four_prime_norm_divisor_forces_second_coordinate a - L39
apply three_mod_four_prime_norm_divisor_forces_second_coordinate - L40
exact hsuccessor_witness - L41
exact hprime - L42
exact hthree - L43
exact hswapped
12Separate the logical casesL44–44
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
split
Original exact command ledger · 46 lines
- 0001
intro p - 0002
intro a - 0003
intro b - 0004
intro hprime - 0005
intro hthree - 0006
intro hnorm - 0007
have hnonzero : ~(p = 0) - 0008
intro hpzero - 0009
specialize prime_nonzero p - 0010
apply prime_nonzero - 0011
exact hprime - 0012
exact hpzero - 0013
have hsuccessor : exists n. p = S n - 0014
specialize nonzero_is_succ p - 0015
apply nonzero_is_succ - 0016
exact hnonzero - 0017
cases hsuccessor - 0018
have hsecond : exists ftcn_factor_ftsc_both_second_local. (b) = (p) * ftcn_factor_ftsc_both_second_local - 0019
specialize three_mod_four_prime_norm_divisor_forces_second_coordinate p - 0020
specialize three_mod_four_prime_norm_divisor_forces_second_coordinate x - 0021
specialize three_mod_four_prime_norm_divisor_forces_second_coordinate a - 0022
specialize three_mod_four_prime_norm_divisor_forces_second_coordinate b - 0023
apply three_mod_four_prime_norm_divisor_forces_second_coordinate - 0024
exact hsuccessor_witness - 0025
exact hprime - 0026
exact hthree - 0027
exact hnorm - 0028
have hswapped : exists ftcn_factor_ftsc_swapped_norm. (b * b + a * a) = (p) * ftcn_factor_ftsc_swapped_norm - 0029
cases hnorm - 0030
exists x1 - 0031
trans a * a + b * b - 0032
apply add_comm - 0033
exact hnorm_witness - 0034
have hfirst : exists ftcn_factor_ftsc_both_first_local. (a) = (p) * ftcn_factor_ftsc_both_first_local - 0035
specialize three_mod_four_prime_norm_divisor_forces_second_coordinate p - 0036
specialize three_mod_four_prime_norm_divisor_forces_second_coordinate x - 0037
specialize three_mod_four_prime_norm_divisor_forces_second_coordinate b - 0038
specialize three_mod_four_prime_norm_divisor_forces_second_coordinate a - 0039
apply three_mod_four_prime_norm_divisor_forces_second_coordinate - 0040
exact hsuccessor_witness - 0041
exact hprime - 0042
exact hthree - 0043
exact hswapped - 0044
split - 0045
exact hfirst - 0046
exact hsecond