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_ftsv_prime frm_prime_right_ftsv_prime. p = frm_prime_left_ftsv_prime * frm_prime_right_ftsv_prime -> frm_prime_left_ftsv_prime = 1 \/ frm_prime_right_ftsv_prime = 1)) -> (exists ftsc_four_three_ftsv_prime. (p) = 4 * ftsc_four_three_ftsv_prime + 3) -> (exists ftcn_factor_ftsv_norm_divides. (a * a + b * b) = (p) * ftcn_factor_ftsv_norm_divides) -> (exists ftsv_first_extracted ftsv_second_extracted. ((a = p * ftsv_first_extracted) /\ ((b = p * ftsv_second_extracted) /\ (a * a + b * b = (p * p) * (ftsv_first_extracted * ftsv_first_extracted + ftsv_second_extracted * ftsv_second_extracted)))))Constructive proof overview
Generated structural guide
A three-modulo-four prime dividing a two-square norm extracts as an exact prime square while preserving a represented quotient.
The unchanged tactic script uses 2 declared prerequisites and contains 21 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
TS0027 three_mod_four_prime_divides_two_square_norm_divides_both TS003K two_square_common_divisor_extracts_squared_factorDirect 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–6
02Establish hbothL7–14
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply three mod four prime divides two square norm divides both.
- L7
have hboth : (exists ftcn_factor_ftsv_first_divides. (a) = (p) * ftcn_factor_ftsv_first_divides) /\ (exists ftcn_factor_ftsv_second_divides. (b) = (p) * ftcn_factor_ftsv_second_divides) - L8
specialize three_mod_four_prime_divides_two_square_norm_divides_both p - L9
specialize three_mod_four_prime_divides_two_square_norm_divides_both a - L10
specialize three_mod_four_prime_divides_two_square_norm_divides_both b - L11
apply three_mod_four_prime_divides_two_square_norm_divides_both - L12
exact hprime - L13
exact hthree - L14
exact hnorm
03Separate the logical casesL15–15
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L15
cases hboth
04Use earlier factsL16–21
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 21 lines
- 0001
intro p - 0002
intro a - 0003
intro b - 0004
intro hprime - 0005
intro hthree - 0006
intro hnorm - 0007
have hboth : (exists ftcn_factor_ftsv_first_divides. (a) = (p) * ftcn_factor_ftsv_first_divides) /\ (exists ftcn_factor_ftsv_second_divides. (b) = (p) * ftcn_factor_ftsv_second_divides) - 0008
specialize three_mod_four_prime_divides_two_square_norm_divides_both p - 0009
specialize three_mod_four_prime_divides_two_square_norm_divides_both a - 0010
specialize three_mod_four_prime_divides_two_square_norm_divides_both b - 0011
apply three_mod_four_prime_divides_two_square_norm_divides_both - 0012
exact hprime - 0013
exact hthree - 0014
exact hnorm - 0015
cases hboth - 0016
specialize two_square_common_divisor_extracts_squared_factor p - 0017
specialize two_square_common_divisor_extracts_squared_factor a - 0018
specialize two_square_common_divisor_extracts_squared_factor b - 0019
apply two_square_common_divisor_extracts_squared_factor - 0020
exact hboth_left - 0021
exact hboth_right