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 n a b. p = S n -> ((~(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_second_result. (b) = (p) * ftcn_factor_ftsc_second_result)Constructive proof overview
Generated structural guide
A three-modulo-four prime dividing a²+b² must divide the second coordinate, by the constructive first supplementary law.
The unchanged tactic script uses 5 declared prerequisites and contains 51 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_coprime_or_divides Stable theorem; checked-use authorized multiple_refl Stable theorem; checked-use authorized mod4_three_is_odd Stable theorem; checked-use authorized TS0024 prime_divisible_two_square_norm_unit_coordinate_yields_negative_one_root TS0025 three_mod_four_prime_has_no_negative_one_rootDirect 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 (2)
01Fix variables and assumptionsL1–8
02Establish hsplitL9–13
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime coprime or divides.
03Separate the logical casesL14–15
04Establish hunitL16–17
05Establish hpdividesL18–20
06Establish hponeL21–25
07Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
cases hprime
08Use earlier factsL27–28
09Establish hoddL29–32
10Establish hrootL33–42
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime divisible two square norm unit coordinate yields negative one root.
- L33
have hroot : exists qr_x_ftsc_predecessor. exists qr_u_ftsc_predecessor qr_v_ftsc_predecessor. qr_x_ftsc_predecessor * qr_x_ftsc_predecessor + p * qr_u_ftsc_predecessor = n + p * qr_v_ftsc_predecessor - L34
specialize prime_divisible_two_square_norm_unit_coordinate_yields_negative_one_root p - L35
specialize prime_divisible_two_square_norm_unit_coordinate_yields_negative_one_root n - L36
specialize prime_divisible_two_square_norm_unit_coordinate_yields_negative_one_root a - L37
specialize prime_divisible_two_square_norm_unit_coordinate_yields_negative_one_root b - L38
apply prime_divisible_two_square_norm_unit_coordinate_yields_negative_one_root - L39
exact hpredecessor - L40
exact hprime - L41
exact hnorm - L42
exact hunit
11Use earlier factsL43–51
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 51 lines
- 0001
intro p - 0002
intro n - 0003
intro a - 0004
intro b - 0005
intro hpredecessor - 0006
intro hprime - 0007
intro hthree - 0008
intro hnorm - 0009
have hsplit : (forall d. (exists u. p = d * u) -> (exists v. b = d * v) -> d = 1) \/ (exists k. b = p * k) - 0010
specialize prime_coprime_or_divides p - 0011
specialize prime_coprime_or_divides b - 0012
apply prime_coprime_or_divides - 0013
exact hprime - 0014
cases hsplit - 0015
exfalso - 0016
have hunit : ~(exists k. b = p * k) - 0017
intro hdivides - 0018
have hpdivides : exists k. p = p * k - 0019
specialize multiple_refl p - 0020
exact multiple_refl - 0021
have hpone : p = 1 - 0022
specialize hsplit_left p - 0023
apply hsplit_left - 0024
exact hpdivides - 0025
exact hdivides - 0026
cases hprime - 0027
apply hprime_left - 0028
exact hpone - 0029
have hodd : exists ftsc_odd_ftsc_prime. (p) = 2 * ftsc_odd_ftsc_prime + 1 - 0030
specialize mod4_three_is_odd p - 0031
apply mod4_three_is_odd - 0032
exact hthree - 0033
have hroot : exists qr_x_ftsc_predecessor. exists qr_u_ftsc_predecessor qr_v_ftsc_predecessor. qr_x_ftsc_predecessor * qr_x_ftsc_predecessor + p * qr_u_ftsc_predecessor = n + p * qr_v_ftsc_predecessor - 0034
specialize prime_divisible_two_square_norm_unit_coordinate_yields_negative_one_root p - 0035
specialize prime_divisible_two_square_norm_unit_coordinate_yields_negative_one_root n - 0036
specialize prime_divisible_two_square_norm_unit_coordinate_yields_negative_one_root a - 0037
specialize prime_divisible_two_square_norm_unit_coordinate_yields_negative_one_root b - 0038
apply prime_divisible_two_square_norm_unit_coordinate_yields_negative_one_root - 0039
exact hpredecessor - 0040
exact hprime - 0041
exact hnorm - 0042
exact hunit - 0043
specialize three_mod_four_prime_has_no_negative_one_root p - 0044
specialize three_mod_four_prime_has_no_negative_one_root n - 0045
apply three_mod_four_prime_has_no_negative_one_root - 0046
exact hpredecessor - 0047
exact hprime - 0048
exact hodd - 0049
exact hthree - 0050
exact hroot - 0051
exact hsplit_right