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. Odd(p) → (∃ x. p = 8 · x + 1) ∨ ((∃ x. p = 8 · x + 3) ∨ ((∃ x. p = 8 · x + 5) ∨ (∃ x. p = 8 · x + 7)))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. (exists qst_odd_modulus. p = 2 * qst_odd_modulus + 1) -> (((exists qst_mod_eight_one. p = 8 * qst_mod_eight_one + 1) \/ ((exists qst_mod_eight_three. p = 8 * qst_mod_eight_three + 3) \/ ((exists qst_mod_eight_five. p = 8 * qst_mod_eight_five + 5) \/ (exists qst_mod_eight_seven. p = 8 * qst_mod_eight_seven + 7)))))Proof neighborhood
Direct theorem prerequisites
SL0008 eight_mul_eq_double_fourDirect 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–2
02Separate the logical casesL3–3
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L3
cases hodd
03Establish hhalf_parityL4–6
04Separate the logical casesL7–8
05Establish hquarter_parityL9–11
06Separate the logical casesL12–14
07Construct an explicit witnessL15–15
Supply the displayed value, then prove that it has the required property.
- L15
exists x2
08Calculate and transport equalitiesL16–19
09Separate the logical casesL20–22
10Construct an explicit witnessL23–23
Supply the displayed value, then prove that it has the required property.
- L23
exists x2
11Calculate and transport equalitiesL24–27
12Establish hquarter_parityL28–30
13Separate the logical casesL31–34
14Construct an explicit witnessL35–35
Supply the displayed value, then prove that it has the required property.
- L35
exists x2
15Calculate and transport equalitiesL36–39
16Separate the logical casesL40–42
17Construct an explicit witnessL43–43
Supply the displayed value, then prove that it has the required property.
- L43
exists x2
18Calculate and transport equalitiesL44–47
Original defined command ledger · 47 lines
- 0001
intro p - 0002
intro hodd - 0003
cases hodd - 0004
have hhalf_parity : exists a. x = 2 * a \/ x = 2 * a + 1 - 0005
specialize parity_cases x - 0006
exact parity_cases - 0007
cases hhalf_parity - 0008
cases hhalf_parity_witness - 0009
have hquarter_parity : exists b. x1 = 2 * b \/ x1 = 2 * b + 1 - 0010
specialize parity_cases x1 - 0011
exact parity_cases - 0012
cases hquarter_parity - 0013
cases hquarter_parity_witness - 0014
left - 0015
exists x2 - 0016
rewrite hodd_witness - 0017
rewrite hhalf_parity_witness_left - 0018
rewrite hquarter_parity_witness_left - 0019
simp [mul_add, four_mul_eq_double_double, eight_mul_eq_double_four] - 0020
right - 0021
right - 0022
left - 0023
exists x2 - 0024
rewrite hodd_witness - 0025
rewrite hhalf_parity_witness_left - 0026
rewrite hquarter_parity_witness_right - 0027
simp [mul_add, four_mul_eq_double_double, eight_mul_eq_double_four] - 0028
have hquarter_parity : exists b. x1 = 2 * b \/ x1 = 2 * b + 1 - 0029
specialize parity_cases x1 - 0030
exact parity_cases - 0031
cases hquarter_parity - 0032
cases hquarter_parity_witness - 0033
right - 0034
left - 0035
exists x2 - 0036
rewrite hodd_witness - 0037
rewrite hhalf_parity_witness_right - 0038
rewrite hquarter_parity_witness_left - 0039
simp [mul_add, four_mul_eq_double_double, eight_mul_eq_double_four] - 0040
right - 0041
right - 0042
right - 0043
exists x2 - 0044
rewrite hodd_witness - 0045
rewrite hhalf_parity_witness_right - 0046
rewrite hquarter_parity_witness_right - 0047
simp [mul_add, four_mul_eq_double_double, eight_mul_eq_double_four]