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. ∀ n. ∀ r. p = S n → ModEq(p,r · r,n) → Dvd(p,r · r + 1)Every 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 n r. p = S n -> (exists u v. r * r + p * u = n + p * v) -> (exists fts_factor_root_norm. r * r + 1 = p * fts_factor_root_norm)Proof neighborhood
Direct theorem prerequisites
Direct 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.
01Fix variables and assumptionsL1–5
02Separate the logical casesL6–7
03Establish hzeroL8–8
Establish this local claim before using it. It is not an additional assumption.
- L8
have hzero : ModEq(p,r · r + 1,0)Definitions: ModEq(p,r · r + 1,0)Original native command in the exact edition
04Construct an explicit witnessL9–10
05Calculate and transport equalitiesL11–11
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L11
trans r * r + (1 + p * x)
06Use earlier factsL12–12
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L12
apply add_assoc
07Calculate and transport equalitiesL13–15
08Use earlier factsL16–16
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L16
apply add_comm
09Calculate and transport equalitiesL17–18
10Use earlier factsL19–19
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L19
apply add_assoc
11Calculate and transport equalitiesL20–21
12Use earlier factsL22–22
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L22
exact hroot_witness_witness
13Calculate and transport equalitiesL23–24
14Use earlier factsL25–25
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L25
apply add_assoc
15Calculate and transport equalitiesL26–28
16Use earlier factsL29–29
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L29
apply add_comm
17Calculate and transport equalitiesL30–31
18Use earlier factsL32–32
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L32
apply add_assoc
19Calculate and transport equalitiesL33–37
20Use earlier factsL38–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
exact hpredecessor
21Calculate and transport equalitiesL39–40
22Use earlier factsL41–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
apply add_comm
23Calculate and transport equalitiesL42–43
24Use earlier factsL44–44
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L44
apply PA6
25Calculate and transport equalitiesL45–45
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L45
symm
26Use earlier factsL46–46
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
apply zero_add
27Establish hdivisionL47–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq to remainder decomposition.
- L47
have hdivision : exists q. r * r + 1 = q * p + 0 - L48
specialize mod_eq_to_remainder_decomposition p - L49
specialize mod_eq_to_remainder_decomposition (r * r + 1) - L50
specialize mod_eq_to_remainder_decomposition 0 - L51
apply mod_eq_to_remainder_decomposition - L52
intro hzero_modulus - L53
rewrite hpredecessor at hzero_modulus - L54
apply PA1 - L55
exact hzero_modulus
28Construct an explicit witnessL56–56
Supply the displayed value, then prove that it has the required property.
- L56
exists n
29Calculate and transport equalitiesL57–58
30Use earlier factsL59–59
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L59
exact hzero
31Separate the logical casesL60–60
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L60
cases hdivision
32Construct an explicit witnessL61–61
Supply the displayed value, then prove that it has the required property.
- L61
exists x2
33Calculate and transport equalitiesL62–62
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L62
trans x2 * p + 0
34Use earlier factsL63–63
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L63
exact hdivision_witness
35Calculate and transport equalitiesL64–64
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L64
simp [mul_comm]
Original defined command ledger · 64 lines
- 0001
intro p - 0002
intro n - 0003
intro r - 0004
intro hpredecessor - 0005
intro hroot - 0006
cases hroot - 0007
cases hroot_witness - 0008
have hzero : ModEq(p,r · r + 1,0)Exact native replay line
have hzero : exists u v. (r * r + 1) + p * u = 0 + p * v - 0009
exists x - 0010
exists S x1 - 0011
trans r * r + (1 + p * x) - 0012
apply add_assoc - 0013
trans r * r + (p * x + 1) - 0014
congr - 0015
refl - 0016
apply add_comm - 0017
trans (r * r + p * x) + 1 - 0018
symm - 0019
apply add_assoc - 0020
trans (n + p * x1) + 1 - 0021
congr - 0022
exact hroot_witness_witness - 0023
refl - 0024
trans n + (p * x1 + 1) - 0025
apply add_assoc - 0026
trans n + (1 + p * x1) - 0027
congr - 0028
refl - 0029
apply add_comm - 0030
trans (n + 1) + p * x1 - 0031
symm - 0032
apply add_assoc - 0033
trans p + p * x1 - 0034
congr - 0035
trans S n - 0036
simp - 0037
symm - 0038
exact hpredecessor - 0039
refl - 0040
trans p * x1 + p - 0041
apply add_comm - 0042
trans p * S x1 - 0043
symm - 0044
apply PA6 - 0045
symm - 0046
apply zero_add - 0047
have hdivision : exists q. r * r + 1 = q * p + 0 - 0048
specialize mod_eq_to_remainder_decomposition p - 0049
specialize mod_eq_to_remainder_decomposition (r * r + 1) - 0050
specialize mod_eq_to_remainder_decomposition 0 - 0051
apply mod_eq_to_remainder_decomposition - 0052
intro hzero_modulus - 0053
rewrite hpredecessor at hzero_modulus - 0054
apply PA1 - 0055
exact hzero_modulus - 0056
exists n - 0057
rewrite hpredecessor - 0058
simp - 0059
exact hzero - 0060
cases hdivision - 0061
exists x2 - 0062
trans x2 * p + 0 - 0063
exact hdivision_witness - 0064
simp [mul_comm]