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. ∀ s. ∀ r. ∀ i. ∀ j. ∀ i2. ∀ j2. ∀ k. ∀ k2. Prime(p) → FloorSqrt(p,s) → Dvd(p,r · r + 1) → k = S s · i + j → k2 = S s · i2 + j2 → Lt(k,S s · S s) → Lt(k2,S s · S s) → Lt(j,S s) → Lt(j2,S s) → ¬k = k2 → ModEq(p,r · i + j,r · i2 + j2) → ∃ x. ∃ y. p = x · x + y · 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 s r i j i2 j2 k k2. ((~(p = 1) /\ forall frm_prime_left_ftpr_prime frm_prime_right_ftpr_prime. p = frm_prime_left_ftpr_prime * frm_prime_right_ftpr_prime -> frm_prime_left_ftpr_prime = 1 \/ frm_prime_right_ftpr_prime = 1)) -> (((exists bcs_sqrt_lower_gap_ftpr_floor. bcs_sqrt_lower_gap_ftpr_floor + (s) * (s) = (p)) /\ exists bcs_sqrt_upper_gap_ftpr_floor. bcs_sqrt_upper_gap_ftpr_floor + S (p) = S (s) * S (s))) -> (exists ftcn_factor_prime_root. (r * r + 1) = (p) * ftcn_factor_prime_root) -> k = S s * i + j -> k2 = S s * i2 + j2 -> (exists ftcn_strict_prime_index_first. ftcn_strict_prime_index_first + S (k) = (S s * S s)) -> (exists ftcn_strict_prime_index_second. ftcn_strict_prime_index_second + S (k2) = (S s * S s)) -> (exists ftcn_strict_prime_column_first. ftcn_strict_prime_column_first + S (j) = (S s)) -> (exists ftcn_strict_prime_column_second. ftcn_strict_prime_column_second + S (j2) = (S s)) -> ~(k = k2) -> (exists ftcn_left_prime_affine ftcn_right_prime_affine. (r * i + j) + (p) * ftcn_left_prime_affine = (r * i2 + j2) + (p) * ftcn_right_prime_affine) -> exists x y. p = x * x + y * yProof neighborhood
Direct theorem prerequisites
TS001D affine_collision_absolute_difference_norm_multiple TS001F flat_square_index_row_below_width TS001J strict_successor_coordinate_bound_is_weak_bound TS001B bounded_natural_absolute_difference TS001I distinct_flat_indices_have_positive_difference_norm TS000K prime_floor_bounded_divisible_norm_represents_primeDirect 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 (6)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Establish hnormL21–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply affine collision absolute difference norm multiple.
- L21
have hnorm : ∃ x. ∃ y. (i = i2 + x ∨ i2 = i + x) ∧ ((j = j2 + y ∨ j2 = j + y) ∧ Dvd(p,x · x + y · y))Definitions: Dvd(p,x · x + y · y)Original native command in the exact edition - L22
specialize affine_collision_absolute_difference_norm_multiple p - L23
specialize affine_collision_absolute_difference_norm_multiple r - L24
specialize affine_collision_absolute_difference_norm_multiple i - L25
specialize affine_collision_absolute_difference_norm_multiple j - L26
specialize affine_collision_absolute_difference_norm_multiple i2 - L27
specialize affine_collision_absolute_difference_norm_multiple j2 - L28
apply affine_collision_absolute_difference_norm_multiple - L29
exact hroot - L30
exact haffine
04Separate the logical casesL31–34
05Establish hrowL35–42
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply flat square index row below width.
06Establish hrow2L43–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply flat square index row below width.
07Establish hiL51–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply strict successor coordinate bound is weak bound.
08Establish hi2L56–60
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply strict successor coordinate bound is weak bound.
09Establish hjL61–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply strict successor coordinate bound is weak bound.
10Establish hj2L66–70
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply strict successor coordinate bound is weak bound.
11Establish hxL71–79
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply bounded natural absolute difference.
- L71
- L72
specialize bounded_natural_absolute_difference s - L73
specialize bounded_natural_absolute_difference i - L74
specialize bounded_natural_absolute_difference i2 - L75
specialize bounded_natural_absolute_difference x - L76
apply bounded_natural_absolute_difference - L77
exact hi - L78
exact hi2 - L79
exact hnorm_witness_witness_left
12Establish hyL80–88
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply bounded natural absolute difference.
- L80
- L81
specialize bounded_natural_absolute_difference s - L82
specialize bounded_natural_absolute_difference j - L83
specialize bounded_natural_absolute_difference j2 - L84
specialize bounded_natural_absolute_difference x1 - L85
apply bounded_natural_absolute_difference - L86
exact hj - L87
exact hj2 - L88
exact hnorm_witness_witness_right_left
13Establish hpositiveL89–98
Establish this local claim before using it. It is not an additional assumption.
- L89
have hpositive : Lt(0,x · x + x1 · x1)Definitions: Lt(0,x · x + x1 · x1)Original native command in the exact edition - L90
specialize distinct_flat_indices_have_positive_difference_norm (S s) - L91
specialize distinct_flat_indices_have_positive_difference_norm k - L92
specialize distinct_flat_indices_have_positive_difference_norm k2 - L93
specialize distinct_flat_indices_have_positive_difference_norm i - L94
specialize distinct_flat_indices_have_positive_difference_norm j - L95
specialize distinct_flat_indices_have_positive_difference_norm i2 - L96
specialize distinct_flat_indices_have_positive_difference_norm j2 - L97
specialize distinct_flat_indices_have_positive_difference_norm x - L98
specialize distinct_flat_indices_have_positive_difference_norm x1
14Use earlier factsL99–104
15Construct an explicit witnessL105–106
16Use earlier factsL107–116
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L107
specialize prime_floor_bounded_divisible_norm_represents_prime p - L108
specialize prime_floor_bounded_divisible_norm_represents_prime s - L109
specialize prime_floor_bounded_divisible_norm_represents_prime x - L110
specialize prime_floor_bounded_divisible_norm_represents_prime x1 - L111
apply prime_floor_bounded_divisible_norm_represents_prime - L112
exact hprime - L113
exact hfloor - L114
exact hx - L115
exact hy - L116
exact hpositive
17Use earlier factsL117–117
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L117
exact hnorm_witness_witness_right_right
Original defined command ledger · 117 lines
- 0001
intro p - 0002
intro s - 0003
intro r - 0004
intro i - 0005
intro j - 0006
intro i2 - 0007
intro j2 - 0008
intro k - 0009
intro k2 - 0010
intro hprime - 0011
intro hfloor - 0012
intro hroot - 0013
intro hindex - 0014
intro hindex2 - 0015
intro hbound - 0016
intro hbound2 - 0017
intro hcolumn - 0018
intro hcolumn2 - 0019
intro hdistinct - 0020
intro haffine - 0021
have hnorm : ∃ x. ∃ y. (i = i2 + x ∨ i2 = i + x) ∧ ((j = j2 + y ∨ j2 = j + y) ∧ Dvd(p,x · x + y · y))Exact native replay line
have hnorm : exists x y. ((((i) = (i2) + (x) \/ (i2) = (i) + (x))) /\ ((((j) = (j2) + (y) \/ (j2) = (j) + (y))) /\ (exists ftcn_factor_prime_norm. (x * x + y * y) = (p) * ftcn_factor_prime_norm))) - 0022
specialize affine_collision_absolute_difference_norm_multiple p - 0023
specialize affine_collision_absolute_difference_norm_multiple r - 0024
specialize affine_collision_absolute_difference_norm_multiple i - 0025
specialize affine_collision_absolute_difference_norm_multiple j - 0026
specialize affine_collision_absolute_difference_norm_multiple i2 - 0027
specialize affine_collision_absolute_difference_norm_multiple j2 - 0028
apply affine_collision_absolute_difference_norm_multiple - 0029
exact hroot - 0030
exact haffine - 0031
cases hnorm - 0032
cases hnorm_witness - 0033
cases hnorm_witness_witness - 0034
cases hnorm_witness_witness_right - 0035
have hrow : Lt(i,S s)Exact native replay line
have hrow : exists ftcn_strict_decoded_row. ftcn_strict_decoded_row + S (i) = (S s) - 0036
specialize flat_square_index_row_below_width (S s) - 0037
specialize flat_square_index_row_below_width i - 0038
specialize flat_square_index_row_below_width j - 0039
specialize flat_square_index_row_below_width k - 0040
apply flat_square_index_row_below_width - 0041
exact hindex - 0042
exact hbound - 0043
have hrow2 : Lt(i2,S s)Exact native replay line
have hrow2 : exists ftcn_strict_decoded_row2. ftcn_strict_decoded_row2 + S (i2) = (S s) - 0044
specialize flat_square_index_row_below_width (S s) - 0045
specialize flat_square_index_row_below_width i2 - 0046
specialize flat_square_index_row_below_width j2 - 0047
specialize flat_square_index_row_below_width k2 - 0048
apply flat_square_index_row_below_width - 0049
exact hindex2 - 0050
exact hbound2 - 0051
have hi : Le(i,s)Exact native replay line
have hi : exists ftcn_bound_decoded_i. ftcn_bound_decoded_i + (i) = (s) - 0052
specialize strict_successor_coordinate_bound_is_weak_bound i - 0053
specialize strict_successor_coordinate_bound_is_weak_bound s - 0054
apply strict_successor_coordinate_bound_is_weak_bound - 0055
exact hrow - 0056
have hi2 : Le(i2,s)Exact native replay line
have hi2 : exists ftcn_bound_decoded_i2. ftcn_bound_decoded_i2 + (i2) = (s) - 0057
specialize strict_successor_coordinate_bound_is_weak_bound i2 - 0058
specialize strict_successor_coordinate_bound_is_weak_bound s - 0059
apply strict_successor_coordinate_bound_is_weak_bound - 0060
exact hrow2 - 0061
have hj : Le(j,s)Exact native replay line
have hj : exists ftcn_bound_decoded_j. ftcn_bound_decoded_j + (j) = (s) - 0062
specialize strict_successor_coordinate_bound_is_weak_bound j - 0063
specialize strict_successor_coordinate_bound_is_weak_bound s - 0064
apply strict_successor_coordinate_bound_is_weak_bound - 0065
exact hcolumn - 0066
have hj2 : Le(j2,s)Exact native replay line
have hj2 : exists ftcn_bound_decoded_j2. ftcn_bound_decoded_j2 + (j2) = (s) - 0067
specialize strict_successor_coordinate_bound_is_weak_bound j2 - 0068
specialize strict_successor_coordinate_bound_is_weak_bound s - 0069
apply strict_successor_coordinate_bound_is_weak_bound - 0070
exact hcolumn2 - 0071
have hx : Le(x,s)Exact native replay line
have hx : exists ftcn_bound_decoded_x. ftcn_bound_decoded_x + (x) = (s) - 0072
specialize bounded_natural_absolute_difference s - 0073
specialize bounded_natural_absolute_difference i - 0074
specialize bounded_natural_absolute_difference i2 - 0075
specialize bounded_natural_absolute_difference x - 0076
apply bounded_natural_absolute_difference - 0077
exact hi - 0078
exact hi2 - 0079
exact hnorm_witness_witness_left - 0080
have hy : Le(x1,s)Exact native replay line
have hy : exists ftcn_bound_decoded_y. ftcn_bound_decoded_y + (x1) = (s) - 0081
specialize bounded_natural_absolute_difference s - 0082
specialize bounded_natural_absolute_difference j - 0083
specialize bounded_natural_absolute_difference j2 - 0084
specialize bounded_natural_absolute_difference x1 - 0085
apply bounded_natural_absolute_difference - 0086
exact hj - 0087
exact hj2 - 0088
exact hnorm_witness_witness_right_left - 0089
have hpositive : Lt(0,x · x + x1 · x1)Exact native replay line
have hpositive : exists ftcn_strict_decoded_positive. ftcn_strict_decoded_positive + S (0) = (x * x + x1 * x1) - 0090
specialize distinct_flat_indices_have_positive_difference_norm (S s) - 0091
specialize distinct_flat_indices_have_positive_difference_norm k - 0092
specialize distinct_flat_indices_have_positive_difference_norm k2 - 0093
specialize distinct_flat_indices_have_positive_difference_norm i - 0094
specialize distinct_flat_indices_have_positive_difference_norm j - 0095
specialize distinct_flat_indices_have_positive_difference_norm i2 - 0096
specialize distinct_flat_indices_have_positive_difference_norm j2 - 0097
specialize distinct_flat_indices_have_positive_difference_norm x - 0098
specialize distinct_flat_indices_have_positive_difference_norm x1 - 0099
apply distinct_flat_indices_have_positive_difference_norm - 0100
exact hindex - 0101
exact hindex2 - 0102
exact hdistinct - 0103
exact hnorm_witness_witness_left - 0104
exact hnorm_witness_witness_right_left - 0105
exists x - 0106
exists x1 - 0107
specialize prime_floor_bounded_divisible_norm_represents_prime p - 0108
specialize prime_floor_bounded_divisible_norm_represents_prime s - 0109
specialize prime_floor_bounded_divisible_norm_represents_prime x - 0110
specialize prime_floor_bounded_divisible_norm_represents_prime x1 - 0111
apply prime_floor_bounded_divisible_norm_represents_prime - 0112
exact hprime - 0113
exact hfloor - 0114
exact hx - 0115
exact hy - 0116
exact hpositive - 0117
exact hnorm_witness_witness_right_right