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 code left right. (exists sb_pos_fs_abs sb_neg_fs_abs. (((code = 2 * sb_pos_fs_abs /\ sb_neg_fs_abs = 0) \/ exists sd_half_fs_abs. ((code = 2 * sd_half_fs_abs + 1 /\ sb_pos_fs_abs = 0) /\ sb_neg_fs_abs = S sd_half_fs_abs)) /\ left + sb_neg_fs_abs = right + sb_pos_fs_abs)) -> exists magnitude. ((left = right + magnitude) \/ (right = left + magnitude))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 code left right. (exists sb_pos_fs_abs sb_neg_fs_abs. (((code = 2 * sb_pos_fs_abs /\ sb_neg_fs_abs = 0) \/ exists sd_half_fs_abs. ((code = 2 * sd_half_fs_abs + 1 /\ sb_pos_fs_abs = 0) /\ sb_neg_fs_abs = S sd_half_fs_abs)) /\ left + sb_neg_fs_abs = right + sb_pos_fs_abs)) -> exists magnitude. ((left = right + magnitude) \/ (right = left + magnitude))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–4
02Separate the logical casesL5–7
03Use earlier factsL8–10
04Establish hnormalL11–13
05Separate the logical casesL14–14
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L14
cases hnormal
06Construct an explicit witnessL15–15
Supply the displayed value, then prove that it has the required property.
- L15
exists x1
07Separate the logical casesL16–16
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L16
right
08Calculate and transport equalitiesL17–19
09Use earlier factsL20–20
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L20
exact hbalance_witness_witness_right
10Construct an explicit witnessL21–21
Supply the displayed value, then prove that it has the required property.
- L21
exists x
11Separate the logical casesL22–22
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L22
left
12Calculate and transport equalitiesL23–24
13Use earlier factsL25–25
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L25
exact hbalance_witness_witness_right
Original defined command ledger · 25 lines
- 0001
intro code - 0002
intro left - 0003
intro right - 0004
intro hbalance - 0005
cases hbalance - 0006
cases hbalance_witness - 0007
cases hbalance_witness_witness - 0008
specialize signed_decode_normal code - 0009
specialize signed_decode_normal x - 0010
specialize signed_decode_normal x1 - 0011
have hnormal : x = 0 \/ x1 = 0 - 0012
apply signed_decode_normal - 0013
exact hbalance_witness_witness_left - 0014
cases hnormal - 0015
exists x1 - 0016
right - 0017
symm - 0018
rewrite hnormal_left at hbalance_witness_witness_right - 0019
rewrite PA3 at hbalance_witness_witness_right - 0020
exact hbalance_witness_witness_right - 0021
exists x - 0022
left - 0023
rewrite hnormal_right at hbalance_witness_witness_right - 0024
rewrite PA3 at hbalance_witness_witness_right - 0025
exact hbalance_witness_witness_right