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 ab ac db dc eb ec fb fc pb pc nb nc qb qc mb mc rb rc sb sc l. (forall ics_index_add_transport_first ics_value0_add_transport_first ics_value1_add_transport_first ics_value2_add_transport_first ics_value3_add_transport_first. (exists ics_gap_add_transport_first_bound. ics_gap_add_transport_first_bound + S (ics_index_add_transport_first) = (l)) -> (((exists fs_h_ics_add_transport_first_at0. fs_h_ics_add_transport_first_at0 + S (ics_value0_add_transport_first) = S ((S (ics_index_add_transport_first)) * ac)) /\ exists fs_q_ics_add_transport_first_at0. ab = fs_q_ics_add_transport_first_at0 * S ((S (ics_index_add_transport_first)) * ac) + (ics_value0_add_transport_first))) -> (((exists fs_h_ics_add_transport_first_at1. fs_h_ics_add_transport_first_at1 + S (ics_value1_add_transport_first) = S ((S (ics_index_add_transport_first)) * dc)) /\ exists fs_q_ics_add_transport_first_at1. db = fs_q_ics_add_transport_first_at1 * S ((S (ics_index_add_transport_first)) * dc) + (ics_value1_add_transport_first))) -> (((exists fs_h_ics_add_transport_first_at2. fs_h_ics_add_transport_first_at2 + S (ics_value2_add_transport_first) = S ((S (ics_index_add_transport_first)) * pc)) /\ exists fs_q_ics_add_transport_first_at2. pb = fs_q_ics_add_transport_first_at2 * S ((S (ics_index_add_transport_first)) * pc) + (ics_value2_add_transport_first))) -> (((exists fs_h_ics_add_transport_first_at3. fs_h_ics_add_transport_first_at3 + S (ics_value3_add_transport_first) = S ((S (ics_index_add_transport_first)) * nc)) /\ exists fs_q_ics_add_transport_first_at3. nb = fs_q_ics_add_transport_first_at3 * S ((S (ics_index_add_transport_first)) * nc) + (ics_value3_add_transport_first))) -> ics_value0_add_transport_first + ics_value3_add_transport_first = ics_value2_add_transport_first + ics_value1_add_transport_first) -> (forall ics_index_add_transport_second ics_value0_add_transport_second ics_value1_add_transport_second ics_value2_add_transport_second ics_value3_add_transport_second. (exists ics_gap_add_transport_second_bound. ics_gap_add_transport_second_bound + S (ics_index_add_transport_second) = (l)) -> (((exists fs_h_ics_add_transport_second_at0. fs_h_ics_add_transport_second_at0 + S (ics_value0_add_transport_second) = S ((S (ics_index_add_transport_second)) * ec)) /\ exists fs_q_ics_add_transport_second_at0. eb = fs_q_ics_add_transport_second_at0 * S ((S (ics_index_add_transport_second)) * ec) + (ics_value0_add_transport_second))) -> (((exists fs_h_ics_add_transport_second_at1. fs_h_ics_add_transport_second_at1 + S (ics_value1_add_transport_second) = S ((S (ics_index_add_transport_second)) * fc)) /\ exists fs_q_ics_add_transport_second_at1. fb = fs_q_ics_add_transport_second_at1 * S ((S (ics_index_add_transport_second)) * fc) + (ics_value1_add_transport_second))) -> (((exists fs_h_ics_add_transport_second_at2. fs_h_ics_add_transport_second_at2 + S (ics_value2_add_transport_second) = S ((S (ics_index_add_transport_second)) * qc)) /\ exists fs_q_ics_add_transport_second_at2. qb = fs_q_ics_add_transport_second_at2 * S ((S (ics_index_add_transport_second)) * qc) + (ics_value2_add_transport_second))) -> (((exists fs_h_ics_add_transport_second_at3. fs_h_ics_add_transport_second_at3 + S (ics_value3_add_transport_second) = S ((S (ics_index_add_transport_second)) * mc)) /\ exists fs_q_ics_add_transport_second_at3. mb = fs_q_ics_add_transport_second_at3 * S ((S (ics_index_add_transport_second)) * mc) + (ics_value3_add_transport_second))) -> ics_value0_add_transport_second + ics_value3_add_transport_second = ics_value2_add_transport_second + ics_value1_add_transport_second) -> (forall ics_index_add_transport_source ics_value0_add_transport_source ics_value1_add_transport_source ics_value2_add_transport_source ics_value3_add_transport_source ics_value4_add_transport_source ics_value5_add_transport_source. (exists ics_gap_add_transport_source_bound. ics_gap_add_transport_source_bound + S (ics_index_add_transport_source) = (l)) -> (((exists fs_h_ics_add_transport_source_at0. fs_h_ics_add_transport_source_at0 + S (ics_value0_add_transport_source) = S ((S (ics_index_add_transport_source)) * ac)) /\ exists fs_q_ics_add_transport_source_at0. ab = fs_q_ics_add_transport_source_at0 * S ((S (ics_index_add_transport_source)) * ac) + (ics_value0_add_transport_source))) -> (((exists fs_h_ics_add_transport_source_at1. fs_h_ics_add_transport_source_at1 + S (ics_value1_add_transport_source) = S ((S (ics_index_add_transport_source)) * dc)) /\ exists fs_q_ics_add_transport_source_at1. db = fs_q_ics_add_transport_source_at1 * S ((S (ics_index_add_transport_source)) * dc) + (ics_value1_add_transport_source))) -> (((exists fs_h_ics_add_transport_source_at2. fs_h_ics_add_transport_source_at2 + S (ics_value2_add_transport_source) = S ((S (ics_index_add_transport_source)) * ec)) /\ exists fs_q_ics_add_transport_source_at2. eb = fs_q_ics_add_transport_source_at2 * S ((S (ics_index_add_transport_source)) * ec) + (ics_value2_add_transport_source))) -> (((exists fs_h_ics_add_transport_source_at3. fs_h_ics_add_transport_source_at3 + S (ics_value3_add_transport_source) = S ((S (ics_index_add_transport_source)) * fc)) /\ exists fs_q_ics_add_transport_source_at3. fb = fs_q_ics_add_transport_source_at3 * S ((S (ics_index_add_transport_source)) * fc) + (ics_value3_add_transport_source))) -> (((exists fs_h_ics_add_transport_source_at4. fs_h_ics_add_transport_source_at4 + S (ics_value4_add_transport_source) = S ((S (ics_index_add_transport_source)) * rc)) /\ exists fs_q_ics_add_transport_source_at4. rb = fs_q_ics_add_transport_source_at4 * S ((S (ics_index_add_transport_source)) * rc) + (ics_value4_add_transport_source))) -> (((exists fs_h_ics_add_transport_source_at5. fs_h_ics_add_transport_source_at5 + S (ics_value5_add_transport_source) = S ((S (ics_index_add_transport_source)) * sc)) /\ exists fs_q_ics_add_transport_source_at5. sb = fs_q_ics_add_transport_source_at5 * S ((S (ics_index_add_transport_source)) * sc) + (ics_value5_add_transport_source))) -> ics_value4_add_transport_source + (ics_value1_add_transport_source + ics_value3_add_transport_source) = (ics_value0_add_transport_source + ics_value2_add_transport_source) + ics_value5_add_transport_source) -> (forall ics_index_add_transport_result ics_value0_add_transport_result ics_value1_add_transport_result ics_value2_add_transport_result ics_value3_add_transport_result ics_value4_add_transport_result ics_value5_add_transport_result. (exists ics_gap_add_transport_result_bound. ics_gap_add_transport_result_bound + S (ics_index_add_transport_result) = (l)) -> (((exists fs_h_ics_add_transport_result_at0. fs_h_ics_add_transport_result_at0 + S (ics_value0_add_transport_result) = S ((S (ics_index_add_transport_result)) * pc)) /\ exists fs_q_ics_add_transport_result_at0. pb = fs_q_ics_add_transport_result_at0 * S ((S (ics_index_add_transport_result)) * pc) + (ics_value0_add_transport_result))) -> (((exists fs_h_ics_add_transport_result_at1. fs_h_ics_add_transport_result_at1 + S (ics_value1_add_transport_result) = S ((S (ics_index_add_transport_result)) * nc)) /\ exists fs_q_ics_add_transport_result_at1. nb = fs_q_ics_add_transport_result_at1 * S ((S (ics_index_add_transport_result)) * nc) + (ics_value1_add_transport_result))) -> (((exists fs_h_ics_add_transport_result_at2. fs_h_ics_add_transport_result_at2 + S (ics_value2_add_transport_result) = S ((S (ics_index_add_transport_result)) * qc)) /\ exists fs_q_ics_add_transport_result_at2. qb = fs_q_ics_add_transport_result_at2 * S ((S (ics_index_add_transport_result)) * qc) + (ics_value2_add_transport_result))) -> (((exists fs_h_ics_add_transport_result_at3. fs_h_ics_add_transport_result_at3 + S (ics_value3_add_transport_result) = S ((S (ics_index_add_transport_result)) * mc)) /\ exists fs_q_ics_add_transport_result_at3. mb = fs_q_ics_add_transport_result_at3 * S ((S (ics_index_add_transport_result)) * mc) + (ics_value3_add_transport_result))) -> (((exists fs_h_ics_add_transport_result_at4. fs_h_ics_add_transport_result_at4 + S (ics_value4_add_transport_result) = S ((S (ics_index_add_transport_result)) * rc)) /\ exists fs_q_ics_add_transport_result_at4. rb = fs_q_ics_add_transport_result_at4 * S ((S (ics_index_add_transport_result)) * rc) + (ics_value4_add_transport_result))) -> (((exists fs_h_ics_add_transport_result_at5. fs_h_ics_add_transport_result_at5 + S (ics_value5_add_transport_result) = S ((S (ics_index_add_transport_result)) * sc)) /\ exists fs_q_ics_add_transport_result_at5. sb = fs_q_ics_add_transport_result_at5 * S ((S (ics_index_add_transport_result)) * sc) + (ics_value5_add_transport_result))) -> ics_value4_add_transport_result + (ics_value1_add_transport_result + ics_value3_add_transport_result) = (ics_value0_add_transport_result + ics_value2_add_transport_result) + ics_value5_add_transport_result)Constructive proof overview
Generated structural guide
Integer-vector addition respects genuine signed-difference equality of both inputs, not merely recoding of equal natural components.
The unchanged tactic script uses 3 declared prerequisites and contains 115 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_at_exists Stable theorem; checked-use authorized DL006C integer_span_pair_equal_transitive DL006D integer_span_pair_add_congruenceDirect 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.
Named ingredients (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Fix variables and assumptionsL21–30
04Fix variables and assumptionsL31–38
05Establish hraw0L39–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L39
have hraw0 : exists value. (((exists fs_h_ics_add_transport_raw0. fs_h_ics_add_transport_raw0 + S (value) = S ((S (i)) * ac)) /\ exists fs_q_ics_add_transport_raw0. ab = fs_q_ics_add_transport_raw0 * S ((S (i)) * ac) + (value))) - L40
specialize beta_at_exists (ab) - L41
specialize beta_at_exists (ac) - L42
specialize beta_at_exists (i) - L43
apply beta_at_exists
06Separate the logical casesL44–44
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
cases hraw0
07Establish hraw1L45–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L45
have hraw1 : exists value. (((exists fs_h_ics_add_transport_raw1. fs_h_ics_add_transport_raw1 + S (value) = S ((S (i)) * dc)) /\ exists fs_q_ics_add_transport_raw1. db = fs_q_ics_add_transport_raw1 * S ((S (i)) * dc) + (value))) - L46
specialize beta_at_exists (db) - L47
specialize beta_at_exists (dc) - L48
specialize beta_at_exists (i) - L49
apply beta_at_exists
08Separate the logical casesL50–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L50
cases hraw1
09Establish hraw2L51–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L51
have hraw2 : exists value. (((exists fs_h_ics_add_transport_raw2. fs_h_ics_add_transport_raw2 + S (value) = S ((S (i)) * ec)) /\ exists fs_q_ics_add_transport_raw2. eb = fs_q_ics_add_transport_raw2 * S ((S (i)) * ec) + (value))) - L52
specialize beta_at_exists (eb) - L53
specialize beta_at_exists (ec) - L54
specialize beta_at_exists (i) - L55
apply beta_at_exists
10Separate the logical casesL56–56
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L56
cases hraw2
11Establish hraw3L57–61
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L57
have hraw3 : exists value. (((exists fs_h_ics_add_transport_raw3. fs_h_ics_add_transport_raw3 + S (value) = S ((S (i)) * fc)) /\ exists fs_q_ics_add_transport_raw3. fb = fs_q_ics_add_transport_raw3 * S ((S (i)) * fc) + (value))) - L58
specialize beta_at_exists (fb) - L59
specialize beta_at_exists (fc) - L60
specialize beta_at_exists (i) - L61
apply beta_at_exists
12Separate the logical casesL62–62
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L62
cases hraw3
13Use earlier factsL63–72
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L63
specialize integer_span_pair_equal_transitive (e) - L64
specialize integer_span_pair_equal_transitive (f) - L65
specialize integer_span_pair_equal_transitive (x + x2) - L66
specialize integer_span_pair_equal_transitive (x1 + x3) - L67
specialize integer_span_pair_equal_transitive (a + c) - L68
specialize integer_span_pair_equal_transitive (b + d) - L69
apply integer_span_pair_equal_transitive - L70
specialize hadd (i) - L71
specialize hadd (x) - L72
specialize hadd (x1)
14Use earlier factsL73–82
15Use earlier factsL83–92
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L83
exact he - L84
exact hf - L85
specialize integer_span_pair_add_congruence (x) - L86
specialize integer_span_pair_add_congruence (x1) - L87
specialize integer_span_pair_add_congruence (x2) - L88
specialize integer_span_pair_add_congruence (x3) - L89
specialize integer_span_pair_add_congruence (a) - L90
specialize integer_span_pair_add_congruence (b) - L91
specialize integer_span_pair_add_congruence (c) - L92
specialize integer_span_pair_add_congruence (d)
16Use earlier factsL93–102
Instantiate or apply named facts and discharge the corresponding proof obligations.
17Use earlier factsL103–112
Original exact command ledger · 115 lines
- 0001
intro ab - 0002
intro ac - 0003
intro db - 0004
intro dc - 0005
intro eb - 0006
intro ec - 0007
intro fb - 0008
intro fc - 0009
intro pb - 0010
intro pc - 0011
intro nb - 0012
intro nc - 0013
intro qb - 0014
intro qc - 0015
intro mb - 0016
intro mc - 0017
intro rb - 0018
intro rc - 0019
intro sb - 0020
intro sc - 0021
intro l - 0022
intro hfirst - 0023
intro hsecond - 0024
intro hadd - 0025
intro i - 0026
intro a - 0027
intro b - 0028
intro c - 0029
intro d - 0030
intro e - 0031
intro f - 0032
intro hi - 0033
intro ha - 0034
intro hb - 0035
intro hc - 0036
intro hd - 0037
intro he - 0038
intro hf - 0039
have hraw0 : exists value. (((exists fs_h_ics_add_transport_raw0. fs_h_ics_add_transport_raw0 + S (value) = S ((S (i)) * ac)) /\ exists fs_q_ics_add_transport_raw0. ab = fs_q_ics_add_transport_raw0 * S ((S (i)) * ac) + (value))) - 0040
specialize beta_at_exists (ab) - 0041
specialize beta_at_exists (ac) - 0042
specialize beta_at_exists (i) - 0043
apply beta_at_exists - 0044
cases hraw0 - 0045
have hraw1 : exists value. (((exists fs_h_ics_add_transport_raw1. fs_h_ics_add_transport_raw1 + S (value) = S ((S (i)) * dc)) /\ exists fs_q_ics_add_transport_raw1. db = fs_q_ics_add_transport_raw1 * S ((S (i)) * dc) + (value))) - 0046
specialize beta_at_exists (db) - 0047
specialize beta_at_exists (dc) - 0048
specialize beta_at_exists (i) - 0049
apply beta_at_exists - 0050
cases hraw1 - 0051
have hraw2 : exists value. (((exists fs_h_ics_add_transport_raw2. fs_h_ics_add_transport_raw2 + S (value) = S ((S (i)) * ec)) /\ exists fs_q_ics_add_transport_raw2. eb = fs_q_ics_add_transport_raw2 * S ((S (i)) * ec) + (value))) - 0052
specialize beta_at_exists (eb) - 0053
specialize beta_at_exists (ec) - 0054
specialize beta_at_exists (i) - 0055
apply beta_at_exists - 0056
cases hraw2 - 0057
have hraw3 : exists value. (((exists fs_h_ics_add_transport_raw3. fs_h_ics_add_transport_raw3 + S (value) = S ((S (i)) * fc)) /\ exists fs_q_ics_add_transport_raw3. fb = fs_q_ics_add_transport_raw3 * S ((S (i)) * fc) + (value))) - 0058
specialize beta_at_exists (fb) - 0059
specialize beta_at_exists (fc) - 0060
specialize beta_at_exists (i) - 0061
apply beta_at_exists - 0062
cases hraw3 - 0063
specialize integer_span_pair_equal_transitive (e) - 0064
specialize integer_span_pair_equal_transitive (f) - 0065
specialize integer_span_pair_equal_transitive (x + x2) - 0066
specialize integer_span_pair_equal_transitive (x1 + x3) - 0067
specialize integer_span_pair_equal_transitive (a + c) - 0068
specialize integer_span_pair_equal_transitive (b + d) - 0069
apply integer_span_pair_equal_transitive - 0070
specialize hadd (i) - 0071
specialize hadd (x) - 0072
specialize hadd (x1) - 0073
specialize hadd (x2) - 0074
specialize hadd (x3) - 0075
specialize hadd (e) - 0076
specialize hadd (f) - 0077
apply hadd - 0078
exact hi - 0079
exact hraw0_witness - 0080
exact hraw1_witness - 0081
exact hraw2_witness - 0082
exact hraw3_witness - 0083
exact he - 0084
exact hf - 0085
specialize integer_span_pair_add_congruence (x) - 0086
specialize integer_span_pair_add_congruence (x1) - 0087
specialize integer_span_pair_add_congruence (x2) - 0088
specialize integer_span_pair_add_congruence (x3) - 0089
specialize integer_span_pair_add_congruence (a) - 0090
specialize integer_span_pair_add_congruence (b) - 0091
specialize integer_span_pair_add_congruence (c) - 0092
specialize integer_span_pair_add_congruence (d) - 0093
apply integer_span_pair_add_congruence - 0094
specialize hfirst (i) - 0095
specialize hfirst (x) - 0096
specialize hfirst (x1) - 0097
specialize hfirst (a) - 0098
specialize hfirst (b) - 0099
apply hfirst - 0100
exact hi - 0101
exact hraw0_witness - 0102
exact hraw1_witness - 0103
exact ha - 0104
exact hb - 0105
specialize hsecond (i) - 0106
specialize hsecond (x2) - 0107
specialize hsecond (x3) - 0108
specialize hsecond (c) - 0109
specialize hsecond (d) - 0110
apply hsecond - 0111
exact hi - 0112
exact hraw2_witness - 0113
exact hraw3_witness - 0114
exact hc - 0115
exact hd