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 l. (forall ics_index_equal_trans_first ics_value0_equal_trans_first ics_value1_equal_trans_first ics_value2_equal_trans_first ics_value3_equal_trans_first. (exists ics_gap_equal_trans_first_bound. ics_gap_equal_trans_first_bound + S (ics_index_equal_trans_first) = (l)) -> (((exists fs_h_ics_equal_trans_first_at0. fs_h_ics_equal_trans_first_at0 + S (ics_value0_equal_trans_first) = S ((S (ics_index_equal_trans_first)) * ac)) /\ exists fs_q_ics_equal_trans_first_at0. ab = fs_q_ics_equal_trans_first_at0 * S ((S (ics_index_equal_trans_first)) * ac) + (ics_value0_equal_trans_first))) -> (((exists fs_h_ics_equal_trans_first_at1. fs_h_ics_equal_trans_first_at1 + S (ics_value1_equal_trans_first) = S ((S (ics_index_equal_trans_first)) * dc)) /\ exists fs_q_ics_equal_trans_first_at1. db = fs_q_ics_equal_trans_first_at1 * S ((S (ics_index_equal_trans_first)) * dc) + (ics_value1_equal_trans_first))) -> (((exists fs_h_ics_equal_trans_first_at2. fs_h_ics_equal_trans_first_at2 + S (ics_value2_equal_trans_first) = S ((S (ics_index_equal_trans_first)) * ec)) /\ exists fs_q_ics_equal_trans_first_at2. eb = fs_q_ics_equal_trans_first_at2 * S ((S (ics_index_equal_trans_first)) * ec) + (ics_value2_equal_trans_first))) -> (((exists fs_h_ics_equal_trans_first_at3. fs_h_ics_equal_trans_first_at3 + S (ics_value3_equal_trans_first) = S ((S (ics_index_equal_trans_first)) * fc)) /\ exists fs_q_ics_equal_trans_first_at3. fb = fs_q_ics_equal_trans_first_at3 * S ((S (ics_index_equal_trans_first)) * fc) + (ics_value3_equal_trans_first))) -> ics_value0_equal_trans_first + ics_value3_equal_trans_first = ics_value2_equal_trans_first + ics_value1_equal_trans_first) -> (forall ics_index_equal_trans_second ics_value0_equal_trans_second ics_value1_equal_trans_second ics_value2_equal_trans_second ics_value3_equal_trans_second. (exists ics_gap_equal_trans_second_bound. ics_gap_equal_trans_second_bound + S (ics_index_equal_trans_second) = (l)) -> (((exists fs_h_ics_equal_trans_second_at0. fs_h_ics_equal_trans_second_at0 + S (ics_value0_equal_trans_second) = S ((S (ics_index_equal_trans_second)) * ec)) /\ exists fs_q_ics_equal_trans_second_at0. eb = fs_q_ics_equal_trans_second_at0 * S ((S (ics_index_equal_trans_second)) * ec) + (ics_value0_equal_trans_second))) -> (((exists fs_h_ics_equal_trans_second_at1. fs_h_ics_equal_trans_second_at1 + S (ics_value1_equal_trans_second) = S ((S (ics_index_equal_trans_second)) * fc)) /\ exists fs_q_ics_equal_trans_second_at1. fb = fs_q_ics_equal_trans_second_at1 * S ((S (ics_index_equal_trans_second)) * fc) + (ics_value1_equal_trans_second))) -> (((exists fs_h_ics_equal_trans_second_at2. fs_h_ics_equal_trans_second_at2 + S (ics_value2_equal_trans_second) = S ((S (ics_index_equal_trans_second)) * pc)) /\ exists fs_q_ics_equal_trans_second_at2. pb = fs_q_ics_equal_trans_second_at2 * S ((S (ics_index_equal_trans_second)) * pc) + (ics_value2_equal_trans_second))) -> (((exists fs_h_ics_equal_trans_second_at3. fs_h_ics_equal_trans_second_at3 + S (ics_value3_equal_trans_second) = S ((S (ics_index_equal_trans_second)) * nc)) /\ exists fs_q_ics_equal_trans_second_at3. nb = fs_q_ics_equal_trans_second_at3 * S ((S (ics_index_equal_trans_second)) * nc) + (ics_value3_equal_trans_second))) -> ics_value0_equal_trans_second + ics_value3_equal_trans_second = ics_value2_equal_trans_second + ics_value1_equal_trans_second) -> (forall ics_index_equal_trans_result ics_value0_equal_trans_result ics_value1_equal_trans_result ics_value2_equal_trans_result ics_value3_equal_trans_result. (exists ics_gap_equal_trans_result_bound. ics_gap_equal_trans_result_bound + S (ics_index_equal_trans_result) = (l)) -> (((exists fs_h_ics_equal_trans_result_at0. fs_h_ics_equal_trans_result_at0 + S (ics_value0_equal_trans_result) = S ((S (ics_index_equal_trans_result)) * ac)) /\ exists fs_q_ics_equal_trans_result_at0. ab = fs_q_ics_equal_trans_result_at0 * S ((S (ics_index_equal_trans_result)) * ac) + (ics_value0_equal_trans_result))) -> (((exists fs_h_ics_equal_trans_result_at1. fs_h_ics_equal_trans_result_at1 + S (ics_value1_equal_trans_result) = S ((S (ics_index_equal_trans_result)) * dc)) /\ exists fs_q_ics_equal_trans_result_at1. db = fs_q_ics_equal_trans_result_at1 * S ((S (ics_index_equal_trans_result)) * dc) + (ics_value1_equal_trans_result))) -> (((exists fs_h_ics_equal_trans_result_at2. fs_h_ics_equal_trans_result_at2 + S (ics_value2_equal_trans_result) = S ((S (ics_index_equal_trans_result)) * pc)) /\ exists fs_q_ics_equal_trans_result_at2. pb = fs_q_ics_equal_trans_result_at2 * S ((S (ics_index_equal_trans_result)) * pc) + (ics_value2_equal_trans_result))) -> (((exists fs_h_ics_equal_trans_result_at3. fs_h_ics_equal_trans_result_at3 + S (ics_value3_equal_trans_result) = S ((S (ics_index_equal_trans_result)) * nc)) /\ exists fs_q_ics_equal_trans_result_at3. nb = fs_q_ics_equal_trans_result_at3 * S ((S (ics_index_equal_trans_result)) * nc) + (ics_value3_equal_trans_result))) -> ics_value0_equal_trans_result + ics_value3_equal_trans_result = ics_value2_equal_trans_result + ics_value1_equal_trans_result)Constructive proof overview
Generated structural guide
Integer-vector equality is genuinely transitive across independently coded, noncanonical intermediate signed entries.
The unchanged tactic script uses 2 declared prerequisites and contains 66 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_transitiveDirect 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 (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Fix variables and assumptionsL21–25
04Establish hmiddlepL26–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L26
have hmiddlep : exists value. (((exists fs_h_ics_equal_middle_p. fs_h_ics_equal_middle_p + S (value) = S ((S (i)) * ec)) /\ exists fs_q_ics_equal_middle_p. eb = fs_q_ics_equal_middle_p * S ((S (i)) * ec) + (value))) - L27
specialize beta_at_exists (eb) - L28
specialize beta_at_exists (ec) - L29
specialize beta_at_exists (i) - L30
apply beta_at_exists
05Separate the logical casesL31–31
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L31
cases hmiddlep
06Establish hmiddlenL32–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L32
have hmiddlen : exists value. (((exists fs_h_ics_equal_middle_n. fs_h_ics_equal_middle_n + S (value) = S ((S (i)) * fc)) /\ exists fs_q_ics_equal_middle_n. fb = fs_q_ics_equal_middle_n * S ((S (i)) * fc) + (value))) - L33
specialize beta_at_exists (fb) - L34
specialize beta_at_exists (fc) - L35
specialize beta_at_exists (i) - L36
apply beta_at_exists
07Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
cases hmiddlen
08Use earlier factsL38–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
specialize integer_span_pair_equal_transitive (a) - L39
specialize integer_span_pair_equal_transitive (b) - L40
specialize integer_span_pair_equal_transitive (x) - L41
specialize integer_span_pair_equal_transitive (x1) - L42
specialize integer_span_pair_equal_transitive (e) - L43
specialize integer_span_pair_equal_transitive (f) - L44
apply integer_span_pair_equal_transitive - L45
specialize hfirst (i) - L46
specialize hfirst (a) - L47
specialize hfirst (b)
09Use earlier factsL48–57
Original exact command ledger · 66 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 l - 0014
intro hfirst - 0015
intro hsecond - 0016
intro i - 0017
intro a - 0018
intro b - 0019
intro e - 0020
intro f - 0021
intro hi - 0022
intro ha - 0023
intro hb - 0024
intro he - 0025
intro hf - 0026
have hmiddlep : exists value. (((exists fs_h_ics_equal_middle_p. fs_h_ics_equal_middle_p + S (value) = S ((S (i)) * ec)) /\ exists fs_q_ics_equal_middle_p. eb = fs_q_ics_equal_middle_p * S ((S (i)) * ec) + (value))) - 0027
specialize beta_at_exists (eb) - 0028
specialize beta_at_exists (ec) - 0029
specialize beta_at_exists (i) - 0030
apply beta_at_exists - 0031
cases hmiddlep - 0032
have hmiddlen : exists value. (((exists fs_h_ics_equal_middle_n. fs_h_ics_equal_middle_n + S (value) = S ((S (i)) * fc)) /\ exists fs_q_ics_equal_middle_n. fb = fs_q_ics_equal_middle_n * S ((S (i)) * fc) + (value))) - 0033
specialize beta_at_exists (fb) - 0034
specialize beta_at_exists (fc) - 0035
specialize beta_at_exists (i) - 0036
apply beta_at_exists - 0037
cases hmiddlen - 0038
specialize integer_span_pair_equal_transitive (a) - 0039
specialize integer_span_pair_equal_transitive (b) - 0040
specialize integer_span_pair_equal_transitive (x) - 0041
specialize integer_span_pair_equal_transitive (x1) - 0042
specialize integer_span_pair_equal_transitive (e) - 0043
specialize integer_span_pair_equal_transitive (f) - 0044
apply integer_span_pair_equal_transitive - 0045
specialize hfirst (i) - 0046
specialize hfirst (a) - 0047
specialize hfirst (b) - 0048
specialize hfirst (x) - 0049
specialize hfirst (x1) - 0050
apply hfirst - 0051
exact hi - 0052
exact ha - 0053
exact hb - 0054
exact hmiddlep_witness - 0055
exact hmiddlen_witness - 0056
specialize hsecond (i) - 0057
specialize hsecond (x) - 0058
specialize hsecond (x1) - 0059
specialize hsecond (e) - 0060
specialize hsecond (f) - 0061
apply hsecond - 0062
exact hi - 0063
exact hmiddlep_witness - 0064
exact hmiddlen_witness - 0065
exact he - 0066
exact hf