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. p = 2 · h + 1 → (Odd(h) → Mod4Three(p)) ∧ (Mod4Three(p) → Odd(h))Every 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
4 occurrences
In local proof propositions
0 occurrences
Exact expanded native-PA statement
forall p h. p = 2 * h + 1 -> ((((exists poh_odd_half. h = 2 * poh_odd_half + 1) -> (exists poh_three_modulus. p = 4 * poh_three_modulus + 3)) /\ ((exists poh_three_modulus. p = 4 * poh_three_modulus + 3) -> (exists poh_odd_half. h = 2 * poh_odd_half + 1))))Proof neighborhood
Direct theorem prerequisites
Direct 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 (2)
01Fix variables and assumptionsL1–3
02Separate the logical casesL4–4
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L4
split
03Fix variables and assumptionsL5–5
Work with arbitrary variables or the premises of the current implication.
- L5
intro hodd
04Separate the logical casesL6–6
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L6
cases hodd
05Construct an explicit witnessL7–7
Supply the displayed value, then prove that it has the required property.
- L7
exists x
06Calculate and transport equalitiesL8–14
07Use earlier factsL15–15
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L15
apply four_mul_eq_double_double
08Fix variables and assumptionsL16–16
Work with arbitrary variables or the premises of the current implication.
- L16
intro hthree
09Separate the logical casesL17–17
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L17
cases hthree
10Construct an explicit witnessL18–18
Supply the displayed value, then prove that it has the required property.
- L18
exists x
11Use earlier factsL19–24
Original defined command ledger · 24 lines
- 0001
intro p - 0002
intro h - 0003
intro hp - 0004
split - 0005
intro hodd - 0006
cases hodd - 0007
exists x - 0008
rewrite hp - 0009
rewrite hodd_witness - 0010
simp [mul_add] - 0011
congr - 0012
congr - 0013
congr - 0014
symm - 0015
apply four_mul_eq_double_double - 0016
intro hthree - 0017
cases hthree - 0018
exists x - 0019
specialize odd_half_of_mod4_three_exact p - 0020
specialize odd_half_of_mod4_three_exact h - 0021
specialize odd_half_of_mod4_three_exact x - 0022
apply odd_half_of_mod4_three_exact - 0023
exact hp - 0024
exact hthree_witness