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
forall a b c d e f g h. exists q0 q1 q2 q3. ((exists sb_pos_fs_q0 sb_neg_fs_q0. (((q0 = 2 * sb_pos_fs_q0 /\ sb_neg_fs_q0 = 0) \/ exists sd_half_fs_q0. ((q0 = 2 * sd_half_fs_q0 + 1 /\ sb_pos_fs_q0 = 0) /\ sb_neg_fs_q0 = S sd_half_fs_q0)) /\ (a * e) + sb_neg_fs_q0 = (b * f + c * g + d * h) + sb_pos_fs_q0)) /\ ((exists sb_pos_fs_q1 sb_neg_fs_q1. (((q1 = 2 * sb_pos_fs_q1 /\ sb_neg_fs_q1 = 0) \/ exists sd_half_fs_q1. ((q1 = 2 * sd_half_fs_q1 + 1 /\ sb_pos_fs_q1 = 0) /\ sb_neg_fs_q1 = S sd_half_fs_q1)) /\ (a * f + b * e + c * h) + sb_neg_fs_q1 = (d * g) + sb_pos_fs_q1)) /\ ((exists sb_pos_fs_q2 sb_neg_fs_q2. (((q2 = 2 * sb_pos_fs_q2 /\ sb_neg_fs_q2 = 0) \/ exists sd_half_fs_q2. ((q2 = 2 * sd_half_fs_q2 + 1 /\ sb_pos_fs_q2 = 0) /\ sb_neg_fs_q2 = S sd_half_fs_q2)) /\ (a * g + c * e + d * f) + sb_neg_fs_q2 = (b * h) + sb_pos_fs_q2)) /\ (exists sb_pos_fs_q3 sb_neg_fs_q3. (((q3 = 2 * sb_pos_fs_q3 /\ sb_neg_fs_q3 = 0) \/ exists sd_half_fs_q3. ((q3 = 2 * sd_half_fs_q3 + 1 /\ sb_pos_fs_q3 = 0) /\ sb_neg_fs_q3 = S sd_half_fs_q3)) /\ (a * h + b * g + d * e) + sb_neg_fs_q3 = (c * f) + sb_pos_fs_q3)))))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 a b c d e f g h. exists q0 q1 q2 q3. ((exists sb_pos_fs_q0 sb_neg_fs_q0. (((q0 = 2 * sb_pos_fs_q0 /\ sb_neg_fs_q0 = 0) \/ exists sd_half_fs_q0. ((q0 = 2 * sd_half_fs_q0 + 1 /\ sb_pos_fs_q0 = 0) /\ sb_neg_fs_q0 = S sd_half_fs_q0)) /\ (a * e) + sb_neg_fs_q0 = (b * f + c * g + d * h) + sb_pos_fs_q0)) /\ ((exists sb_pos_fs_q1 sb_neg_fs_q1. (((q1 = 2 * sb_pos_fs_q1 /\ sb_neg_fs_q1 = 0) \/ exists sd_half_fs_q1. ((q1 = 2 * sd_half_fs_q1 + 1 /\ sb_pos_fs_q1 = 0) /\ sb_neg_fs_q1 = S sd_half_fs_q1)) /\ (a * f + b * e + c * h) + sb_neg_fs_q1 = (d * g) + sb_pos_fs_q1)) /\ ((exists sb_pos_fs_q2 sb_neg_fs_q2. (((q2 = 2 * sb_pos_fs_q2 /\ sb_neg_fs_q2 = 0) \/ exists sd_half_fs_q2. ((q2 = 2 * sd_half_fs_q2 + 1 /\ sb_pos_fs_q2 = 0) /\ sb_neg_fs_q2 = S sd_half_fs_q2)) /\ (a * g + c * e + d * f) + sb_neg_fs_q2 = (b * h) + sb_pos_fs_q2)) /\ (exists sb_pos_fs_q3 sb_neg_fs_q3. (((q3 = 2 * sb_pos_fs_q3 /\ sb_neg_fs_q3 = 0) \/ exists sd_half_fs_q3. ((q3 = 2 * sd_half_fs_q3 + 1 /\ sb_pos_fs_q3 = 0) /\ sb_neg_fs_q3 = S sd_half_fs_q3)) /\ (a * h + b * g + d * e) + sb_neg_fs_q3 = (c * f) + sb_pos_fs_q3)))))Proof neighborhood
Direct theorem prerequisites
Direct 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–8
02Establish h0L9–12
Establish this local claim before using it. It is not an additional assumption.
- L9
have h0 : exists q0. (exists sb_pos_fs_q0 sb_neg_fs_q0. (((q0 = 2 * sb_pos_fs_q0 /\ sb_neg_fs_q0 = 0) \/ exists sd_half_fs_q0. ((q0 = 2 * sd_half_fs_q0 + 1 /\ sb_pos_fs_q0 = 0) /\ sb_neg_fs_q0 = S sd_half_fs_q0)) /\ (a * e) + sb_neg_fs_q0 = (b * f + c * g + d * h) + sb_pos_fs_q0)) - L10
specialize signed_balance_total (a * e) - L11
specialize signed_balance_total (b * f + c * g + d * h) - L12
exact signed_balance_total
03Establish h1L13–16
Establish this local claim before using it. It is not an additional assumption.
- L13
have h1 : exists q1. (exists sb_pos_fs_q1 sb_neg_fs_q1. (((q1 = 2 * sb_pos_fs_q1 /\ sb_neg_fs_q1 = 0) \/ exists sd_half_fs_q1. ((q1 = 2 * sd_half_fs_q1 + 1 /\ sb_pos_fs_q1 = 0) /\ sb_neg_fs_q1 = S sd_half_fs_q1)) /\ (a * f + b * e + c * h) + sb_neg_fs_q1 = (d * g) + sb_pos_fs_q1)) - L14
specialize signed_balance_total (a * f + b * e + c * h) - L15
specialize signed_balance_total (d * g) - L16
exact signed_balance_total
04Establish h2L17–20
Establish this local claim before using it. It is not an additional assumption.
- L17
have h2 : exists q2. (exists sb_pos_fs_q2 sb_neg_fs_q2. (((q2 = 2 * sb_pos_fs_q2 /\ sb_neg_fs_q2 = 0) \/ exists sd_half_fs_q2. ((q2 = 2 * sd_half_fs_q2 + 1 /\ sb_pos_fs_q2 = 0) /\ sb_neg_fs_q2 = S sd_half_fs_q2)) /\ (a * g + c * e + d * f) + sb_neg_fs_q2 = (b * h) + sb_pos_fs_q2)) - L18
specialize signed_balance_total (a * g + c * e + d * f) - L19
specialize signed_balance_total (b * h) - L20
exact signed_balance_total
05Establish h3L21–24
Establish this local claim before using it. It is not an additional assumption.
- L21
have h3 : exists q3. (exists sb_pos_fs_q3 sb_neg_fs_q3. (((q3 = 2 * sb_pos_fs_q3 /\ sb_neg_fs_q3 = 0) \/ exists sd_half_fs_q3. ((q3 = 2 * sd_half_fs_q3 + 1 /\ sb_pos_fs_q3 = 0) /\ sb_neg_fs_q3 = S sd_half_fs_q3)) /\ (a * h + b * g + d * e) + sb_neg_fs_q3 = (c * f) + sb_pos_fs_q3)) - L22
specialize signed_balance_total (a * h + b * g + d * e) - L23
specialize signed_balance_total (c * f) - L24
exact signed_balance_total
06Separate the logical casesL25–28
07Construct an explicit witnessL29–32
08Separate the logical casesL33–33
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L33
split
09Use earlier factsL34–34
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
exact h0_witness
10Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
split
11Use earlier factsL36–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
exact h1_witness
12Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
split
Original defined command ledger · 39 lines
- 0001
intro a - 0002
intro b - 0003
intro c - 0004
intro d - 0005
intro e - 0006
intro f - 0007
intro g - 0008
intro h - 0009
have h0 : exists q0. (exists sb_pos_fs_q0 sb_neg_fs_q0. (((q0 = 2 * sb_pos_fs_q0 /\ sb_neg_fs_q0 = 0) \/ exists sd_half_fs_q0. ((q0 = 2 * sd_half_fs_q0 + 1 /\ sb_pos_fs_q0 = 0) /\ sb_neg_fs_q0 = S sd_half_fs_q0)) /\ (a * e) + sb_neg_fs_q0 = (b * f + c * g + d * h) + sb_pos_fs_q0)) - 0010
specialize signed_balance_total (a * e) - 0011
specialize signed_balance_total (b * f + c * g + d * h) - 0012
exact signed_balance_total - 0013
have h1 : exists q1. (exists sb_pos_fs_q1 sb_neg_fs_q1. (((q1 = 2 * sb_pos_fs_q1 /\ sb_neg_fs_q1 = 0) \/ exists sd_half_fs_q1. ((q1 = 2 * sd_half_fs_q1 + 1 /\ sb_pos_fs_q1 = 0) /\ sb_neg_fs_q1 = S sd_half_fs_q1)) /\ (a * f + b * e + c * h) + sb_neg_fs_q1 = (d * g) + sb_pos_fs_q1)) - 0014
specialize signed_balance_total (a * f + b * e + c * h) - 0015
specialize signed_balance_total (d * g) - 0016
exact signed_balance_total - 0017
have h2 : exists q2. (exists sb_pos_fs_q2 sb_neg_fs_q2. (((q2 = 2 * sb_pos_fs_q2 /\ sb_neg_fs_q2 = 0) \/ exists sd_half_fs_q2. ((q2 = 2 * sd_half_fs_q2 + 1 /\ sb_pos_fs_q2 = 0) /\ sb_neg_fs_q2 = S sd_half_fs_q2)) /\ (a * g + c * e + d * f) + sb_neg_fs_q2 = (b * h) + sb_pos_fs_q2)) - 0018
specialize signed_balance_total (a * g + c * e + d * f) - 0019
specialize signed_balance_total (b * h) - 0020
exact signed_balance_total - 0021
have h3 : exists q3. (exists sb_pos_fs_q3 sb_neg_fs_q3. (((q3 = 2 * sb_pos_fs_q3 /\ sb_neg_fs_q3 = 0) \/ exists sd_half_fs_q3. ((q3 = 2 * sd_half_fs_q3 + 1 /\ sb_pos_fs_q3 = 0) /\ sb_neg_fs_q3 = S sd_half_fs_q3)) /\ (a * h + b * g + d * e) + sb_neg_fs_q3 = (c * f) + sb_pos_fs_q3)) - 0022
specialize signed_balance_total (a * h + b * g + d * e) - 0023
specialize signed_balance_total (c * f) - 0024
exact signed_balance_total - 0025
cases h0 - 0026
cases h1 - 0027
cases h2 - 0028
cases h3 - 0029
exists x - 0030
exists x1 - 0031
exists x2 - 0032
exists x3 - 0033
split - 0034
exact h0_witness - 0035
split - 0036
exact h1_witness - 0037
split - 0038
exact h2_witness - 0039
exact h3_witness