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.
Exact expanded first-order arithmetic 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)))))Constructive proof overview
Generated structural guide
Every odd natural constructively belongs to one of the four residue classes one, three, five or seven modulo eight.
The unchanged tactic script uses 4 declared prerequisites and contains 47 exact native proof lines.
dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged
Proof neighborhood
Direct dependencies
parity_cases Stable theorem; checked-use authorized mul_add Stable theorem; checked-use authorized four_mul_eq_double_double Stable theorem; checked-use authorized SL0008 eight_mul_eq_double_fourDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This dependency-curried candidate body does not grant checked theorem use or Stable membership.
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 exact 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]