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. ∀ n. ∀ q. ∀ r. ∀ m. ∀ s. p = 2 · h + 1 → n = p · q + r → Lt(r,p) → Lt(0,m) → Le(m,h) → s = 0 ∧ ModEq(p,n,m) ∨ s = 1 ∧ ModEq(p,n,2 · h · m) → s = 0 ∧ r = m ∨ s = 1 ∧ r + m = pEvery purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.
Definitions used by this theorem
In the theorem statement
5 occurrences
In local proof propositions
5 occurrences
Exact expanded native-PA statement
forall p h n q r m s. p = 2 * h + 1 -> n = p * q + r -> (exists gsp_lt_gap_gsd_r_below_p. gsp_lt_gap_gsd_r_below_p + S r = p) -> (exists gsp_lt_gap_gsd_m_positive. gsp_lt_gap_gsd_m_positive + S 0 = m) -> (exists gsp_le_gap_gsd_m_le_h. gsp_le_gap_gsd_m_le_h + m = h) -> (((s = 0 /\ (exists wpp_mod_left_gsd_n_mod_m wpp_mod_right_gsd_n_mod_m. (n) + p * wpp_mod_left_gsd_n_mod_m = (m) + p * wpp_mod_right_gsd_n_mod_m)) \/ (s = 1 /\ (exists wpp_mod_left_gsd_n_mod_reflected wpp_mod_right_gsd_n_mod_reflected. (n) + p * wpp_mod_left_gsd_n_mod_reflected = ((2 * h) * m) + p * wpp_mod_right_gsd_n_mod_reflected)))) -> (((s = 0 /\ r = m) \/ (s = 1 /\ r + m = p)))Proof neighborhood
Direct theorem prerequisites
PA00C2 odd_half_strictly_below_modulus PA0033 lt_of_le_of_lt PA00C3 odd_half_positive_complement_exists PA00C4 predecessor_multiple_mod_complement PA00C5 canonical_remainder_from_mod PA0024 mod_eq_transDirect theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed 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–13
03Establish hhalfbelowL14–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply odd half strictly below modulus.
04Establish hmbelowL19–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt of le of lt.
05Separate the logical casesL26–29
06Use earlier factsL30–39
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L30
exact hsigned_left_left - L31
specialize canonical_remainder_from_mod p - L32
specialize canonical_remainder_from_mod n - L33
specialize canonical_remainder_from_mod q - L34
specialize canonical_remainder_from_mod r - L35
specialize canonical_remainder_from_mod m - L36
apply canonical_remainder_from_mod - L37
exact hdivision - L38
exact hrbelow - L39
exact hmbelow
07Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
exact hsigned_left_right
08Separate the logical casesL41–41
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L41
cases hsigned_right
09Establish hcomplementL42–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply odd half positive complement exists.
- L42
have hcomplement : ∃ t. Lt(t,p) ∧ t + m = pDefinitions: Lt(t,p)Original native command in the exact edition - L43
specialize odd_half_positive_complement_exists p - L44
specialize odd_half_positive_complement_exists h - L45
specialize odd_half_positive_complement_exists m - L46
apply odd_half_positive_complement_exists - L47
exact hp - L48
exact hmpositive - L49
exact hmle
10Separate the logical casesL50–51
11Establish hpsuccL52–55
12Establish hkmodtL56–63
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply predecessor multiple mod complement.
- L56
have hkmodt : ModEq(p,2 · h · m,x)Definitions: ModEq(p,2 · h · m,x)Original native command in the exact edition - L57
specialize predecessor_multiple_mod_complement p - L58
specialize predecessor_multiple_mod_complement (2 * h) - L59
specialize predecessor_multiple_mod_complement m - L60
specialize predecessor_multiple_mod_complement x - L61
apply predecessor_multiple_mod_complement - L62
exact hpsucc - L63
exact hcomplement_witness_right
13Establish hnlocaltL64–71
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq trans.
14Establish hrtL72–81
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply canonical remainder from mod.
- L72
have hrt : r = x - L73
specialize canonical_remainder_from_mod p - L74
specialize canonical_remainder_from_mod n - L75
specialize canonical_remainder_from_mod q - L76
specialize canonical_remainder_from_mod r - L77
specialize canonical_remainder_from_mod x - L78
apply canonical_remainder_from_mod - L79
exact hdivision - L80
exact hrbelow - L81
exact hcomplement_witness_left
15Use earlier factsL82–82
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L82
exact hnlocalt
16Separate the logical casesL83–84
17Use earlier factsL85–85
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L85
exact hsigned_right_left
18Calculate and transport equalitiesL86–87
19Use earlier factsL88–88
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L88
exact hrt
20Calculate and transport equalitiesL89–89
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L89
refl
21Use earlier factsL90–90
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L90
exact hcomplement_witness_right
Original defined command ledger · 90 lines
- 0001
intro p - 0002
intro h - 0003
intro n - 0004
intro q - 0005
intro r - 0006
intro m - 0007
intro s - 0008
intro hp - 0009
intro hdivision - 0010
intro hrbelow - 0011
intro hmpositive - 0012
intro hmle - 0013
intro hsigned - 0014
have hhalfbelow : Lt(h,p)Exact native replay line
have hhalfbelow : exists d. d + S h = p - 0015
specialize odd_half_strictly_below_modulus p - 0016
specialize odd_half_strictly_below_modulus h - 0017
apply odd_half_strictly_below_modulus - 0018
exact hp - 0019
have hmbelow : Lt(m,p)Exact native replay line
have hmbelow : exists gsp_lt_gap_gsd_m_below_p. gsp_lt_gap_gsd_m_below_p + S m = p - 0020
specialize lt_of_le_of_lt m - 0021
specialize lt_of_le_of_lt h - 0022
specialize lt_of_le_of_lt p - 0023
apply lt_of_le_of_lt - 0024
exact hmle - 0025
exact hhalfbelow - 0026
cases hsigned - 0027
cases hsigned_left - 0028
left - 0029
split - 0030
exact hsigned_left_left - 0031
specialize canonical_remainder_from_mod p - 0032
specialize canonical_remainder_from_mod n - 0033
specialize canonical_remainder_from_mod q - 0034
specialize canonical_remainder_from_mod r - 0035
specialize canonical_remainder_from_mod m - 0036
apply canonical_remainder_from_mod - 0037
exact hdivision - 0038
exact hrbelow - 0039
exact hmbelow - 0040
exact hsigned_left_right - 0041
cases hsigned_right - 0042
have hcomplement : ∃ t. Lt(t,p) ∧ t + m = pExact native replay line
have hcomplement : exists t. (exists gsp_lt_gap_gsd_t_below_p. gsp_lt_gap_gsd_t_below_p + S t = p) /\ t + m = p - 0043
specialize odd_half_positive_complement_exists p - 0044
specialize odd_half_positive_complement_exists h - 0045
specialize odd_half_positive_complement_exists m - 0046
apply odd_half_positive_complement_exists - 0047
exact hp - 0048
exact hmpositive - 0049
exact hmle - 0050
cases hcomplement - 0051
cases hcomplement_witness - 0052
have hpsucc : p = S (2 * h) - 0053
trans 2 * h + 1 - 0054
exact hp - 0055
simp - 0056
have hkmodt : ModEq(p,2 · h · m,x)Exact native replay line
have hkmodt : exists wpp_mod_left_gsd_local_predecessor_mod wpp_mod_right_gsd_local_predecessor_mod. ((2 * h) * m) + p * wpp_mod_left_gsd_local_predecessor_mod = (x) + p * wpp_mod_right_gsd_local_predecessor_mod - 0057
specialize predecessor_multiple_mod_complement p - 0058
specialize predecessor_multiple_mod_complement (2 * h) - 0059
specialize predecessor_multiple_mod_complement m - 0060
specialize predecessor_multiple_mod_complement x - 0061
apply predecessor_multiple_mod_complement - 0062
exact hpsucc - 0063
exact hcomplement_witness_right - 0064
have hnlocalt : ModEq(p,n,x)Exact native replay line
have hnlocalt : exists wpp_mod_left_gsd_local_n_mod_t wpp_mod_right_gsd_local_n_mod_t. (n) + p * wpp_mod_left_gsd_local_n_mod_t = (x) + p * wpp_mod_right_gsd_local_n_mod_t - 0065
specialize mod_eq_trans p - 0066
specialize mod_eq_trans n - 0067
specialize mod_eq_trans ((2 * h) * m) - 0068
specialize mod_eq_trans x - 0069
apply mod_eq_trans - 0070
exact hsigned_right_right - 0071
exact hkmodt - 0072
have hrt : r = x - 0073
specialize canonical_remainder_from_mod p - 0074
specialize canonical_remainder_from_mod n - 0075
specialize canonical_remainder_from_mod q - 0076
specialize canonical_remainder_from_mod r - 0077
specialize canonical_remainder_from_mod x - 0078
apply canonical_remainder_from_mod - 0079
exact hdivision - 0080
exact hrbelow - 0081
exact hcomplement_witness_left - 0082
exact hnlocalt - 0083
right - 0084
split - 0085
exact hsigned_right_left - 0086
trans x + m - 0087
congr - 0088
exact hrt - 0089
refl - 0090
exact hcomplement_witness_right