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 code p n q m. (((p) + (m)) = ((q) + (n))) -> (exists ge_balance_positive_balance_source ge_balance_negative_balance_source. (((((code) = 2 * (ge_balance_positive_balance_source) /\ (ge_balance_negative_balance_source) = 0) \/ exists ge_signed_half_balance_sourcedecode. (((code) = 2 * ge_signed_half_balance_sourcedecode + 1 /\ (ge_balance_positive_balance_source) = 0) /\ (ge_balance_negative_balance_source) = S ge_signed_half_balance_sourcedecode))) /\ ((p) + ge_balance_negative_balance_source = (n) + ge_balance_positive_balance_source))) -> (exists ge_balance_positive_balance_target ge_balance_negative_balance_target. (((((code) = 2 * (ge_balance_positive_balance_target) /\ (ge_balance_negative_balance_target) = 0) \/ exists ge_signed_half_balance_targetdecode. (((code) = 2 * ge_signed_half_balance_targetdecode + 1 /\ (ge_balance_positive_balance_target) = 0) /\ (ge_balance_negative_balance_target) = S ge_signed_half_balance_targetdecode))) /\ ((q) + ge_balance_negative_balance_target = (m) + ge_balance_positive_balance_target)))Constructive proof overview
Generated structural guide
The unchanged canonical signed code continues to represent every equal signed difference.
The unchanged tactic script uses 2 declared prerequisites and contains 30 exact native proof lines.
Alpha v34 checked-use · first admitted v28 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
integer_span_pair_equal_transitive Alpha theorem; checked-use authorized add_comm Stable theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply 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–7
02Separate the logical casesL8–10
03Establish htransportL11–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply integer span pair equal transitive.
- L11
have htransport : q + x1 = x + m - L12
specialize integer_span_pair_equal_transitive q - L13
specialize integer_span_pair_equal_transitive m - L14
specialize integer_span_pair_equal_transitive p - L15
specialize integer_span_pair_equal_transitive n - L16
specialize integer_span_pair_equal_transitive x - L17
specialize integer_span_pair_equal_transitive x1 - L18
apply integer_span_pair_equal_transitive - L19
symm - L20
exact hequal
04Calculate and transport equalitiesL21–21
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L21
trans n + x
05Use earlier factsL22–23
06Construct an explicit witnessL24–25
07Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
split
08Use earlier factsL27–27
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L27
exact hbalance_witness_witness_left
09Calculate and transport equalitiesL28–28
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L28
trans x + m
Original exact command ledger · 30 lines
- 0001
intro code - 0002
intro p - 0003
intro n - 0004
intro q - 0005
intro m - 0006
intro hequal - 0007
intro hbalance - 0008
cases hbalance - 0009
cases hbalance_witness - 0010
cases hbalance_witness_witness - 0011
have htransport : q + x1 = x + m - 0012
specialize integer_span_pair_equal_transitive q - 0013
specialize integer_span_pair_equal_transitive m - 0014
specialize integer_span_pair_equal_transitive p - 0015
specialize integer_span_pair_equal_transitive n - 0016
specialize integer_span_pair_equal_transitive x - 0017
specialize integer_span_pair_equal_transitive x1 - 0018
apply integer_span_pair_equal_transitive - 0019
symm - 0020
exact hequal - 0021
trans n + x - 0022
exact hbalance_witness_witness_right - 0023
apply add_comm - 0024
exists x - 0025
exists x1 - 0026
split - 0027
exact hbalance_witness_witness_left - 0028
trans x + m - 0029
exact htransport - 0030
apply add_comm