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 l. exists pb pc nb nc. (forall ics_index_vector_add_exists ics_value0_vector_add_exists ics_value1_vector_add_exists ics_value2_vector_add_exists ics_value3_vector_add_exists ics_value4_vector_add_exists ics_value5_vector_add_exists. (exists ics_gap_vector_add_exists_bound. ics_gap_vector_add_exists_bound + S (ics_index_vector_add_exists) = (l)) -> (((exists fs_h_ics_vector_add_exists_at0. fs_h_ics_vector_add_exists_at0 + S (ics_value0_vector_add_exists) = S ((S (ics_index_vector_add_exists)) * ac)) /\ exists fs_q_ics_vector_add_exists_at0. ab = fs_q_ics_vector_add_exists_at0 * S ((S (ics_index_vector_add_exists)) * ac) + (ics_value0_vector_add_exists))) -> (((exists fs_h_ics_vector_add_exists_at1. fs_h_ics_vector_add_exists_at1 + S (ics_value1_vector_add_exists) = S ((S (ics_index_vector_add_exists)) * dc)) /\ exists fs_q_ics_vector_add_exists_at1. db = fs_q_ics_vector_add_exists_at1 * S ((S (ics_index_vector_add_exists)) * dc) + (ics_value1_vector_add_exists))) -> (((exists fs_h_ics_vector_add_exists_at2. fs_h_ics_vector_add_exists_at2 + S (ics_value2_vector_add_exists) = S ((S (ics_index_vector_add_exists)) * ec)) /\ exists fs_q_ics_vector_add_exists_at2. eb = fs_q_ics_vector_add_exists_at2 * S ((S (ics_index_vector_add_exists)) * ec) + (ics_value2_vector_add_exists))) -> (((exists fs_h_ics_vector_add_exists_at3. fs_h_ics_vector_add_exists_at3 + S (ics_value3_vector_add_exists) = S ((S (ics_index_vector_add_exists)) * fc)) /\ exists fs_q_ics_vector_add_exists_at3. fb = fs_q_ics_vector_add_exists_at3 * S ((S (ics_index_vector_add_exists)) * fc) + (ics_value3_vector_add_exists))) -> (((exists fs_h_ics_vector_add_exists_at4. fs_h_ics_vector_add_exists_at4 + S (ics_value4_vector_add_exists) = S ((S (ics_index_vector_add_exists)) * pc)) /\ exists fs_q_ics_vector_add_exists_at4. pb = fs_q_ics_vector_add_exists_at4 * S ((S (ics_index_vector_add_exists)) * pc) + (ics_value4_vector_add_exists))) -> (((exists fs_h_ics_vector_add_exists_at5. fs_h_ics_vector_add_exists_at5 + S (ics_value5_vector_add_exists) = S ((S (ics_index_vector_add_exists)) * nc)) /\ exists fs_q_ics_vector_add_exists_at5. nb = fs_q_ics_vector_add_exists_at5 * S ((S (ics_index_vector_add_exists)) * nc) + (ics_value5_vector_add_exists))) -> ics_value4_vector_add_exists + (ics_value1_vector_add_exists + ics_value3_vector_add_exists) = (ics_value0_vector_add_exists + ics_value2_vector_add_exists) + ics_value5_vector_add_exists)Constructive proof overview
Generated structural guide
Every two finite signed vectors have a constructively produced coded integer sum, including the empty vector.
The unchanged tactic script uses 2 declared prerequisites and contains 47 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_pointwise_add_prefix_exists Alpha theorem; checked-use authorized DL0073 integer_vector_add_from_component_sumsDirect 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–9
02Establish hpL10–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta pointwise add prefix exists.
- L10
have hp : ∃ b. ∃ c. MatrixPointwiseAdd(ab,ac,eb,ec,b,c,l)Definitions: MatrixPointwiseAdd - L11
specialize beta_pointwise_add_prefix_exists (ab) - L12
specialize beta_pointwise_add_prefix_exists (ac) - L13
specialize beta_pointwise_add_prefix_exists (eb) - L14
specialize beta_pointwise_add_prefix_exists (ec) - L15
specialize beta_pointwise_add_prefix_exists (l) - L16
apply beta_pointwise_add_prefix_exists
03Separate the logical casesL17–18
04Establish hnL19–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta pointwise add prefix exists.
- L19
have hn : ∃ b. ∃ c. MatrixPointwiseAdd(db,dc,fb,fc,b,c,l)Definitions: MatrixPointwiseAdd - L20
specialize beta_pointwise_add_prefix_exists (db) - L21
specialize beta_pointwise_add_prefix_exists (dc) - L22
specialize beta_pointwise_add_prefix_exists (fb) - L23
specialize beta_pointwise_add_prefix_exists (fc) - L24
specialize beta_pointwise_add_prefix_exists (l) - L25
apply beta_pointwise_add_prefix_exists
05Separate the logical casesL26–27
06Construct an explicit witnessL28–31
07Use earlier factsL32–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L32
specialize integer_vector_add_from_component_sums (ab) - L33
specialize integer_vector_add_from_component_sums (ac) - L34
specialize integer_vector_add_from_component_sums (db) - L35
specialize integer_vector_add_from_component_sums (dc) - L36
specialize integer_vector_add_from_component_sums (eb) - L37
specialize integer_vector_add_from_component_sums (ec) - L38
specialize integer_vector_add_from_component_sums (fb) - L39
specialize integer_vector_add_from_component_sums (fc) - L40
specialize integer_vector_add_from_component_sums (x) - L41
specialize integer_vector_add_from_component_sums (x1)
08Use earlier factsL42–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 47 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 l - 0010
have hp : exists b c. (forall ff_index_mcp_add_ics_vector_add_exists_p ff_left_mcp_add_ics_vector_add_exists_p ff_right_mcp_add_ics_vector_add_exists_p ff_target_mcp_add_ics_vector_add_exists_p. (exists mcp_gap_ics_vector_add_exists_p_bound. mcp_gap_ics_vector_add_exists_p_bound + S (ff_index_mcp_add_ics_vector_add_exists_p) = (l)) -> (((exists fs_h_mcp_ics_vector_add_exists_p_left. fs_h_mcp_ics_vector_add_exists_p_left + S (ff_left_mcp_add_ics_vector_add_exists_p) = S ((S (ff_index_mcp_add_ics_vector_add_exists_p)) * ac)) /\ exists fs_q_mcp_ics_vector_add_exists_p_left. ab = fs_q_mcp_ics_vector_add_exists_p_left * S ((S (ff_index_mcp_add_ics_vector_add_exists_p)) * ac) + (ff_left_mcp_add_ics_vector_add_exists_p))) -> (((exists fs_h_mcp_ics_vector_add_exists_p_right. fs_h_mcp_ics_vector_add_exists_p_right + S (ff_right_mcp_add_ics_vector_add_exists_p) = S ((S (ff_index_mcp_add_ics_vector_add_exists_p)) * ec)) /\ exists fs_q_mcp_ics_vector_add_exists_p_right. eb = fs_q_mcp_ics_vector_add_exists_p_right * S ((S (ff_index_mcp_add_ics_vector_add_exists_p)) * ec) + (ff_right_mcp_add_ics_vector_add_exists_p))) -> (((exists fs_h_mcp_ics_vector_add_exists_p_target. fs_h_mcp_ics_vector_add_exists_p_target + S (ff_target_mcp_add_ics_vector_add_exists_p) = S ((S (ff_index_mcp_add_ics_vector_add_exists_p)) * c)) /\ exists fs_q_mcp_ics_vector_add_exists_p_target. b = fs_q_mcp_ics_vector_add_exists_p_target * S ((S (ff_index_mcp_add_ics_vector_add_exists_p)) * c) + (ff_target_mcp_add_ics_vector_add_exists_p))) -> ff_target_mcp_add_ics_vector_add_exists_p = ff_left_mcp_add_ics_vector_add_exists_p + ff_right_mcp_add_ics_vector_add_exists_p) - 0011
specialize beta_pointwise_add_prefix_exists (ab) - 0012
specialize beta_pointwise_add_prefix_exists (ac) - 0013
specialize beta_pointwise_add_prefix_exists (eb) - 0014
specialize beta_pointwise_add_prefix_exists (ec) - 0015
specialize beta_pointwise_add_prefix_exists (l) - 0016
apply beta_pointwise_add_prefix_exists - 0017
cases hp - 0018
cases hp_witness - 0019
have hn : exists b c. (forall ff_index_mcp_add_ics_vector_add_exists_n ff_left_mcp_add_ics_vector_add_exists_n ff_right_mcp_add_ics_vector_add_exists_n ff_target_mcp_add_ics_vector_add_exists_n. (exists mcp_gap_ics_vector_add_exists_n_bound. mcp_gap_ics_vector_add_exists_n_bound + S (ff_index_mcp_add_ics_vector_add_exists_n) = (l)) -> (((exists fs_h_mcp_ics_vector_add_exists_n_left. fs_h_mcp_ics_vector_add_exists_n_left + S (ff_left_mcp_add_ics_vector_add_exists_n) = S ((S (ff_index_mcp_add_ics_vector_add_exists_n)) * dc)) /\ exists fs_q_mcp_ics_vector_add_exists_n_left. db = fs_q_mcp_ics_vector_add_exists_n_left * S ((S (ff_index_mcp_add_ics_vector_add_exists_n)) * dc) + (ff_left_mcp_add_ics_vector_add_exists_n))) -> (((exists fs_h_mcp_ics_vector_add_exists_n_right. fs_h_mcp_ics_vector_add_exists_n_right + S (ff_right_mcp_add_ics_vector_add_exists_n) = S ((S (ff_index_mcp_add_ics_vector_add_exists_n)) * fc)) /\ exists fs_q_mcp_ics_vector_add_exists_n_right. fb = fs_q_mcp_ics_vector_add_exists_n_right * S ((S (ff_index_mcp_add_ics_vector_add_exists_n)) * fc) + (ff_right_mcp_add_ics_vector_add_exists_n))) -> (((exists fs_h_mcp_ics_vector_add_exists_n_target. fs_h_mcp_ics_vector_add_exists_n_target + S (ff_target_mcp_add_ics_vector_add_exists_n) = S ((S (ff_index_mcp_add_ics_vector_add_exists_n)) * c)) /\ exists fs_q_mcp_ics_vector_add_exists_n_target. b = fs_q_mcp_ics_vector_add_exists_n_target * S ((S (ff_index_mcp_add_ics_vector_add_exists_n)) * c) + (ff_target_mcp_add_ics_vector_add_exists_n))) -> ff_target_mcp_add_ics_vector_add_exists_n = ff_left_mcp_add_ics_vector_add_exists_n + ff_right_mcp_add_ics_vector_add_exists_n) - 0020
specialize beta_pointwise_add_prefix_exists (db) - 0021
specialize beta_pointwise_add_prefix_exists (dc) - 0022
specialize beta_pointwise_add_prefix_exists (fb) - 0023
specialize beta_pointwise_add_prefix_exists (fc) - 0024
specialize beta_pointwise_add_prefix_exists (l) - 0025
apply beta_pointwise_add_prefix_exists - 0026
cases hn - 0027
cases hn_witness - 0028
exists x - 0029
exists x1 - 0030
exists x2 - 0031
exists x3 - 0032
specialize integer_vector_add_from_component_sums (ab) - 0033
specialize integer_vector_add_from_component_sums (ac) - 0034
specialize integer_vector_add_from_component_sums (db) - 0035
specialize integer_vector_add_from_component_sums (dc) - 0036
specialize integer_vector_add_from_component_sums (eb) - 0037
specialize integer_vector_add_from_component_sums (ec) - 0038
specialize integer_vector_add_from_component_sums (fb) - 0039
specialize integer_vector_add_from_component_sums (fc) - 0040
specialize integer_vector_add_from_component_sums (x) - 0041
specialize integer_vector_add_from_component_sums (x1) - 0042
specialize integer_vector_add_from_component_sums (x2) - 0043
specialize integer_vector_add_from_component_sums (x3) - 0044
specialize integer_vector_add_from_component_sums (l) - 0045
apply integer_vector_add_from_component_sums - 0046
exact hp_witness_witness - 0047
exact hn_witness_witness