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
∀ a. ∀ b. Even(a) ∧ Even(b) ∨ Odd(a) ∧ Odd(b) → ∃ x. a = b + 2 · x ∨ b = a + 2 · xEvery 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 a b. ((((exists fsd_even_first_absolute. a = 2 * fsd_even_first_absolute) /\ (exists fsd_even_second_absolute. b = 2 * fsd_even_second_absolute)) \/ ((exists fsd_odd_first_absolute. a = 2 * fsd_odd_first_absolute + 1) /\ (exists fsd_odd_second_absolute. b = 2 * fsd_odd_second_absolute + 1)))) -> exists v. ((a = b + 2 * v) \/ (b = a + 2 * v))Proof neighborhood
Direct theorem prerequisites
FS000H four_square_absolute_difference_total mul_add · Stable closed FS002N four_square_euler_add_swap_lastDirect 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.
Named ingredients (2)
01Fix variables and assumptionsL1–3
02Separate the logical casesL4–7
03Establish hgapL8–9
04Separate the logical casesL10–10
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L10
cases hgap
05Construct an explicit witnessL11–11
Supply the displayed value, then prove that it has the required property.
- L11
exists x2
06Separate the logical casesL12–13
07Calculate and transport equalitiesL14–16
08Use earlier factsL17–17
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L17
apply mul_add
09Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
right
10Calculate and transport equalitiesL19–21
11Use earlier factsL22–22
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L22
apply mul_add
12Separate the logical casesL23–25
13Establish hgapL26–27
14Separate the logical casesL28–28
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L28
cases hgap
15Construct an explicit witnessL29–29
Supply the displayed value, then prove that it has the required property.
- L29
exists x2
16Separate the logical casesL30–31
17Calculate and transport equalitiesL32–36
18Use earlier factsL37–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
apply mul_add
19Calculate and transport equalitiesL38–38
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L38
refl
20Use earlier factsL39–39
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
apply four_square_euler_add_swap_last
21Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
right
22Calculate and transport equalitiesL41–45
23Use earlier factsL46–46
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
apply mul_add
24Calculate and transport equalitiesL47–47
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L47
refl
25Use earlier factsL48–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L48
apply four_square_euler_add_swap_last
Original defined command ledger · 48 lines
- 0001
intro a - 0002
intro b - 0003
intro hmatching - 0004
cases hmatching - 0005
cases hmatching_left - 0006
cases hmatching_left_left - 0007
cases hmatching_left_right - 0008
have hgap : exists v. x = x1 + v \/ x1 = x + v - 0009
apply four_square_absolute_difference_total - 0010
cases hgap - 0011
exists x2 - 0012
cases hgap_witness - 0013
left - 0014
rewrite hmatching_left_left_witness - 0015
rewrite hmatching_left_right_witness - 0016
rewrite hgap_witness_left - 0017
apply mul_add - 0018
right - 0019
rewrite hmatching_left_right_witness - 0020
rewrite hmatching_left_left_witness - 0021
rewrite hgap_witness_right - 0022
apply mul_add - 0023
cases hmatching_right - 0024
cases hmatching_right_left - 0025
cases hmatching_right_right - 0026
have hgap : exists v. x = x1 + v \/ x1 = x + v - 0027
apply four_square_absolute_difference_total - 0028
cases hgap - 0029
exists x2 - 0030
cases hgap_witness - 0031
left - 0032
rewrite hmatching_right_left_witness - 0033
rewrite hmatching_right_right_witness - 0034
rewrite hgap_witness_left - 0035
trans (2 * x1 + 2 * x2) + 1 - 0036
congr - 0037
apply mul_add - 0038
refl - 0039
apply four_square_euler_add_swap_last - 0040
right - 0041
rewrite hmatching_right_right_witness - 0042
rewrite hmatching_right_left_witness - 0043
rewrite hgap_witness_right - 0044
trans (2 * x + 2 * x2) + 1 - 0045
congr - 0046
apply mul_add - 0047
refl - 0048
apply four_square_euler_add_swap_last