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.
Statement with defined notation
∀ p. ∀ h. ∀ x. ∀ y. ∀ d. p = 2 · h + 1 → Prime(p) → Le(x,h) → Le(y,h) → y = x + d → ModEq(p,x · x,y · y) → x = yEvery purple notation token opens its conservative definition. This reading surface never changes the unchanged intuitionistic kernel or confers checked-use authority.
Definitions used by this theorem
In the theorem statement
In local proof propositions
Exact expanded first-order statement
forall p h x y d. p = 2 * h + 1 -> ((~(p = 1) /\ forall frm_prime_left_fsri_prime frm_prime_right_fsri_prime. p = frm_prime_left_fsri_prime * frm_prime_right_fsri_prime -> frm_prime_left_fsri_prime = 1 \/ frm_prime_right_fsri_prime = 1)) -> (exists fsri_gap_ordered_x. fsri_gap_ordered_x + (x) = (h)) -> (exists fsri_gap_ordered_y. fsri_gap_ordered_y + (y) = (h)) -> y = x + d -> (exists fsri_left_ordered_equal fsri_right_ordered_equal. (x * x) + (p) * fsri_left_ordered_equal = (y * y) + (p) * fsri_right_ordered_equal) -> x = yProof neighborhood
Direct theorem prerequisites
FS0048 four_square_ordered_square_congruence_factors euclid_prime_dvd_product · Stable closed odd_half_strictly_below_modulus · Alpha closed lt_of_le_of_lt · Stable closed FS0046 four_square_bounded_multiple_is_zero FS0045 four_square_half_sum_below_odd add_eq_zero_left · Stable closed add_eq_zero_right · Stable closed add_comm · Stable closedDirect theorem dependents
Definition-aware tactic body
Only propositions whose conservative expansion has been checked for exact first-order equivalence are compacted. Every changed line retains its immutable exact replay command.
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 (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro hsquares
03Establish hproductL12–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square ordered square congruence factors.
- L12
have hproduct : Dvd(p,d · (y + x))Definitions: Dvd(p,d · (y + x))Original native command in the exact edition - L13
specialize four_square_ordered_square_congruence_factors p - L14
specialize four_square_ordered_square_congruence_factors x - L15
specialize four_square_ordered_square_congruence_factors y - L16
specialize four_square_ordered_square_congruence_factors d - L17
apply four_square_ordered_square_congruence_factors - L18
exact horder - L19
exact hsquares
04Establish hsplitL20–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply euclid prime dvd product.
- L20
have hsplit : Dvd(p,d) ∨ Dvd(p,y + x)Definitions: Dvd(p,d)Dvd(p,y + x)Original native command in the exact edition - L21
specialize euclid_prime_dvd_product p - L22
specialize euclid_prime_dvd_product d - L23
specialize euclid_prime_dvd_product (y + x) - L24
apply euclid_prime_dvd_product - L25
exact hprime - L26
exact hproduct
05Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
cases hsplit
06Establish hdleyL28–28
Establish this local claim before using it. It is not an additional assumption.
07Construct an explicit witnessL29–29
Supply the displayed value, then prove that it has the required property.
- L29
exists x
08Calculate and transport equalitiesL30–30
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L30
symm
09Use earlier factsL31–31
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
exact horder
10Establish hylpL32–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt of le of lt.
11Establish hdlpL42–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt of le of lt.
12Establish hzeroL49–58
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square bounded multiple is zero.
13Use earlier factsL59–59
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L59
apply PA3
14Establish hsum_boundL60–68
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square half sum below odd.
15Establish hsum_zeroL69–74
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square bounded multiple is zero.
16Establish hyzeroL75–79
17Establish hxzeroL80–88
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add eq zero right.
Original defined command ledger · 88 lines
- 0001
intro p - 0002
intro h - 0003
intro x - 0004
intro y - 0005
intro d - 0006
intro hodd - 0007
intro hprime - 0008
intro hx - 0009
intro hy - 0010
intro horder - 0011
intro hsquares - 0012
have hproduct : Dvd(p,d · (y + x))Exact native replay line
have hproduct : exists fsri_factor_ordered_product. (d * (y + x)) = (p) * fsri_factor_ordered_product - 0013
specialize four_square_ordered_square_congruence_factors p - 0014
specialize four_square_ordered_square_congruence_factors x - 0015
specialize four_square_ordered_square_congruence_factors y - 0016
specialize four_square_ordered_square_congruence_factors d - 0017
apply four_square_ordered_square_congruence_factors - 0018
exact horder - 0019
exact hsquares - 0020
have hsplit : Dvd(p,d) ∨ Dvd(p,y + x)Exact native replay line
have hsplit : (exists fsri_factor_ordered_gap_divides. (d) = (p) * fsri_factor_ordered_gap_divides) \/ (exists fsri_factor_ordered_sum_divides. (y + x) = (p) * fsri_factor_ordered_sum_divides) - 0021
specialize euclid_prime_dvd_product p - 0022
specialize euclid_prime_dvd_product d - 0023
specialize euclid_prime_dvd_product (y + x) - 0024
apply euclid_prime_dvd_product - 0025
exact hprime - 0026
exact hproduct - 0027
cases hsplit - 0028
have hdley : Le(d,y)Exact native replay line
have hdley : exists fsri_gap_ordered_gap_le_y. fsri_gap_ordered_gap_le_y + (d) = (y) - 0029
exists x - 0030
symm - 0031
exact horder - 0032
have hylp : Lt(y,p)Exact native replay line
have hylp : exists fsri_gap_ordered_y_lt_prime. fsri_gap_ordered_y_lt_prime + S (y) = (p) - 0033
specialize lt_of_le_of_lt y - 0034
specialize lt_of_le_of_lt h - 0035
specialize lt_of_le_of_lt p - 0036
apply lt_of_le_of_lt - 0037
exact hy - 0038
specialize odd_half_strictly_below_modulus p - 0039
specialize odd_half_strictly_below_modulus h - 0040
apply odd_half_strictly_below_modulus - 0041
exact hodd - 0042
have hdlp : Lt(d,p)Exact native replay line
have hdlp : exists fsri_gap_ordered_gap_lt_prime. fsri_gap_ordered_gap_lt_prime + S (d) = (p) - 0043
specialize lt_of_le_of_lt d - 0044
specialize lt_of_le_of_lt y - 0045
specialize lt_of_le_of_lt p - 0046
apply lt_of_le_of_lt - 0047
exact hdley - 0048
exact hylp - 0049
have hzero : d = 0 - 0050
specialize four_square_bounded_multiple_is_zero p - 0051
specialize four_square_bounded_multiple_is_zero d - 0052
apply four_square_bounded_multiple_is_zero - 0053
exact hdlp - 0054
exact hsplit_left - 0055
rewrite hzero at horder - 0056
symm - 0057
trans x + 0 - 0058
exact horder - 0059
apply PA3 - 0060
have hsum_bound : Lt(y + x,p)Exact native replay line
have hsum_bound : exists fsri_gap_ordered_sum_lt_prime. fsri_gap_ordered_sum_lt_prime + S (y + x) = (p) - 0061
specialize four_square_half_sum_below_odd p - 0062
specialize four_square_half_sum_below_odd h - 0063
specialize four_square_half_sum_below_odd y - 0064
specialize four_square_half_sum_below_odd x - 0065
apply four_square_half_sum_below_odd - 0066
exact hodd - 0067
exact hy - 0068
exact hx - 0069
have hsum_zero : y + x = 0 - 0070
specialize four_square_bounded_multiple_is_zero p - 0071
specialize four_square_bounded_multiple_is_zero (y + x) - 0072
apply four_square_bounded_multiple_is_zero - 0073
exact hsum_bound - 0074
exact hsplit_right - 0075
have hyzero : y = 0 - 0076
specialize add_eq_zero_left y - 0077
specialize add_eq_zero_left x - 0078
apply add_eq_zero_left - 0079
exact hsum_zero - 0080
have hxzero : x = 0 - 0081
specialize add_eq_zero_right y - 0082
specialize add_eq_zero_right x - 0083
apply add_eq_zero_right - 0084
exact hsum_zero - 0085
trans 0 - 0086
exact hxzero - 0087
symm - 0088
exact hyzero