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 lb lc rb rc tb tc cb cc l. (forall kmc_index_kmcpe_before. (exists bcf_lt_gap_kmcpe_before_bound. bcf_lt_gap_kmcpe_before_bound + S (kmc_index_kmcpe_before) = l) -> exists kmc_left_kmcpe_before kmc_right_kmcpe_before kmc_total_kmcpe_before kmc_bit_kmcpe_before. (((exists fs_h_kmcpe_before_left. fs_h_kmcpe_before_left + S (kmc_left_kmcpe_before) = S ((S (kmc_index_kmcpe_before)) * lc)) /\ exists fs_q_kmcpe_before_left. lb = fs_q_kmcpe_before_left * S ((S (kmc_index_kmcpe_before)) * lc) + (kmc_left_kmcpe_before))) /\ ((((exists fs_h_kmcpe_before_right. fs_h_kmcpe_before_right + S (kmc_right_kmcpe_before) = S ((S (kmc_index_kmcpe_before)) * rc)) /\ exists fs_q_kmcpe_before_right. rb = fs_q_kmcpe_before_right * S ((S (kmc_index_kmcpe_before)) * rc) + (kmc_right_kmcpe_before))) /\ ((((exists fs_h_kmcpe_before_total. fs_h_kmcpe_before_total + S (kmc_total_kmcpe_before) = S ((S (kmc_index_kmcpe_before)) * tc)) /\ exists fs_q_kmcpe_before_total. tb = fs_q_kmcpe_before_total * S ((S (kmc_index_kmcpe_before)) * tc) + (kmc_total_kmcpe_before))) /\ ((((exists fs_h_kmcpe_before_bit. fs_h_kmcpe_before_bit + S (kmc_bit_kmcpe_before) = S ((S (kmc_index_kmcpe_before)) * cc)) /\ exists fs_q_kmcpe_before_bit. cb = fs_q_kmcpe_before_bit * S ((S (kmc_index_kmcpe_before)) * cc) + (kmc_bit_kmcpe_before))) /\ (((kmc_bit_kmcpe_before = 0 /\ kmc_total_kmcpe_before = kmc_left_kmcpe_before + kmc_right_kmcpe_before) \/ (kmc_bit_kmcpe_before = 1 /\ kmc_total_kmcpe_before = S (kmc_left_kmcpe_before + kmc_right_kmcpe_before)))))))) -> (exists q s Q bit. (((exists fs_h_kmcpe_last_left. fs_h_kmcpe_last_left + S (q) = S ((S (l)) * lc)) /\ exists fs_q_kmcpe_last_left. lb = fs_q_kmcpe_last_left * S ((S (l)) * lc) + (q))) /\ ((((exists fs_h_kmcpe_last_right. fs_h_kmcpe_last_right + S (s) = S ((S (l)) * rc)) /\ exists fs_q_kmcpe_last_right. rb = fs_q_kmcpe_last_right * S ((S (l)) * rc) + (s))) /\ ((((exists fs_h_kmcpe_last_total. fs_h_kmcpe_last_total + S (Q) = S ((S (l)) * tc)) /\ exists fs_q_kmcpe_last_total. tb = fs_q_kmcpe_last_total * S ((S (l)) * tc) + (Q))) /\ (((bit = 0 /\ Q = q + s) \/ (bit = 1 /\ Q = S (q + s))))))) -> exists z h. (forall kmc_index_kmcpe_after. (exists bcf_lt_gap_kmcpe_after_bound. bcf_lt_gap_kmcpe_after_bound + S (kmc_index_kmcpe_after) = S l) -> exists kmc_left_kmcpe_after kmc_right_kmcpe_after kmc_total_kmcpe_after kmc_bit_kmcpe_after. (((exists fs_h_kmcpe_after_left. fs_h_kmcpe_after_left + S (kmc_left_kmcpe_after) = S ((S (kmc_index_kmcpe_after)) * lc)) /\ exists fs_q_kmcpe_after_left. lb = fs_q_kmcpe_after_left * S ((S (kmc_index_kmcpe_after)) * lc) + (kmc_left_kmcpe_after))) /\ ((((exists fs_h_kmcpe_after_right. fs_h_kmcpe_after_right + S (kmc_right_kmcpe_after) = S ((S (kmc_index_kmcpe_after)) * rc)) /\ exists fs_q_kmcpe_after_right. rb = fs_q_kmcpe_after_right * S ((S (kmc_index_kmcpe_after)) * rc) + (kmc_right_kmcpe_after))) /\ ((((exists fs_h_kmcpe_after_total. fs_h_kmcpe_after_total + S (kmc_total_kmcpe_after) = S ((S (kmc_index_kmcpe_after)) * tc)) /\ exists fs_q_kmcpe_after_total. tb = fs_q_kmcpe_after_total * S ((S (kmc_index_kmcpe_after)) * tc) + (kmc_total_kmcpe_after))) /\ ((((exists fs_h_kmcpe_after_bit. fs_h_kmcpe_after_bit + S (kmc_bit_kmcpe_after) = S ((S (kmc_index_kmcpe_after)) * h)) /\ exists fs_q_kmcpe_after_bit. z = fs_q_kmcpe_after_bit * S ((S (kmc_index_kmcpe_after)) * h) + (kmc_bit_kmcpe_after))) /\ (((kmc_bit_kmcpe_after = 0 /\ kmc_total_kmcpe_after = kmc_left_kmcpe_after + kmc_right_kmcpe_after) \/ (kmc_bit_kmcpe_after = 1 /\ kmc_total_kmcpe_after = S (kmc_left_kmcpe_after + kmc_right_kmcpe_after))))))))Constructive proof overview
Generated structural guide
A three-prefix additive carry code extends by one selected terminal bit.
The unchanged tactic script uses 2 declared prerequisites and contains 85 exact native proof lines.
dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged
Proof neighborhood
Direct dependencies
beta_prefix_extend Stable theorem; checked-use authorized finite_lt_succ_eq_or_lt 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–10
02Fix variables and assumptionsL11–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro hlast
03Separate the logical casesL12–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
04Use earlier factsL19–22
05Separate the logical casesL23–25
06Construct an explicit witnessL26–27
07Fix variables and assumptionsL28–29
08Use earlier factsL30–31
09Establish hsplitL32–34
10Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
cases hsplit
11Calculate and transport equalitiesL36–43
12Construct an explicit witnessL44–47
13Separate the logical casesL48–48
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L48
split
14Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
exact hlast_witness_witness_witness_witness_left
15Separate the logical casesL50–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L50
split
16Use earlier factsL51–51
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L51
exact hlast_witness_witness_witness_witness_right_left
17Separate the logical casesL52–52
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L52
split
18Use earlier factsL53–53
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L53
exact hlast_witness_witness_witness_witness_right_right_left
19Separate the logical casesL54–54
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L54
split
20Use earlier factsL55–56
21Establish holdL57–60
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprefix.
22Separate the logical casesL61–68
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L61
cases hold - L62
cases hold_witness - L63
cases hold_witness_witness - L64
cases hold_witness_witness_witness - L65
cases hold_witness_witness_witness_witness - L66
cases hold_witness_witness_witness_witness_right - L67
cases hold_witness_witness_witness_witness_right_right - L68
cases hold_witness_witness_witness_witness_right_right_right
23Construct an explicit witnessL69–72
24Separate the logical casesL73–73
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L73
split
25Use earlier factsL74–74
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L74
exact hold_witness_witness_witness_witness_left
26Separate the logical casesL75–75
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L75
split
27Use earlier factsL76–76
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L76
exact hold_witness_witness_witness_witness_right_left
28Separate the logical casesL77–77
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L77
split
29Use earlier factsL78–78
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L78
exact hold_witness_witness_witness_witness_right_right_left
30Separate the logical casesL79–79
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L79
split
31Use earlier factsL80–85
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L80
specialize beta_prefix_extend_witness_witness_right i - L81
specialize beta_prefix_extend_witness_witness_right x9 - L82
apply beta_prefix_extend_witness_witness_right - L83
exact hsplit_right - L84
exact hold_witness_witness_witness_witness_right_right_right_left - L85
exact hold_witness_witness_witness_witness_right_right_right_right
Original exact command ledger · 85 lines
- 0001
intro lb - 0002
intro lc - 0003
intro rb - 0004
intro rc - 0005
intro tb - 0006
intro tc - 0007
intro cb - 0008
intro cc - 0009
intro l - 0010
intro hprefix - 0011
intro hlast - 0012
cases hlast - 0013
cases hlast_witness - 0014
cases hlast_witness_witness - 0015
cases hlast_witness_witness_witness - 0016
cases hlast_witness_witness_witness_witness - 0017
cases hlast_witness_witness_witness_witness_right - 0018
cases hlast_witness_witness_witness_witness_right_right - 0019
specialize beta_prefix_extend l - 0020
specialize beta_prefix_extend cb - 0021
specialize beta_prefix_extend cc - 0022
specialize beta_prefix_extend x3 - 0023
cases beta_prefix_extend - 0024
cases beta_prefix_extend_witness - 0025
cases beta_prefix_extend_witness_witness - 0026
exists x4 - 0027
exists x5 - 0028
intro i - 0029
intro hi - 0030
specialize finite_lt_succ_eq_or_lt l - 0031
specialize finite_lt_succ_eq_or_lt i - 0032
have hsplit : i = l \/ exists z. z + S i = l - 0033
apply finite_lt_succ_eq_or_lt - 0034
exact hi - 0035
cases hsplit - 0036
rewrite hsplit_left - 0037
rewrite hsplit_left - 0038
rewrite hsplit_left - 0039
rewrite hsplit_left - 0040
rewrite hsplit_left - 0041
rewrite hsplit_left - 0042
rewrite hsplit_left - 0043
rewrite hsplit_left - 0044
exists x - 0045
exists x1 - 0046
exists x2 - 0047
exists x3 - 0048
split - 0049
exact hlast_witness_witness_witness_witness_left - 0050
split - 0051
exact hlast_witness_witness_witness_witness_right_left - 0052
split - 0053
exact hlast_witness_witness_witness_witness_right_right_left - 0054
split - 0055
exact beta_prefix_extend_witness_witness_left - 0056
exact hlast_witness_witness_witness_witness_right_right_right - 0057
have hold : exists q s Q bit. (((exists fs_h_kmcpe_old_left. fs_h_kmcpe_old_left + S (q) = S ((S (i)) * lc)) /\ exists fs_q_kmcpe_old_left. lb = fs_q_kmcpe_old_left * S ((S (i)) * lc) + (q))) /\ ((((exists fs_h_kmcpe_old_right. fs_h_kmcpe_old_right + S (s) = S ((S (i)) * rc)) /\ exists fs_q_kmcpe_old_right. rb = fs_q_kmcpe_old_right * S ((S (i)) * rc) + (s))) /\ ((((exists fs_h_kmcpe_old_total. fs_h_kmcpe_old_total + S (Q) = S ((S (i)) * tc)) /\ exists fs_q_kmcpe_old_total. tb = fs_q_kmcpe_old_total * S ((S (i)) * tc) + (Q))) /\ ((((exists fs_h_kmcpe_old_bit. fs_h_kmcpe_old_bit + S (bit) = S ((S (i)) * cc)) /\ exists fs_q_kmcpe_old_bit. cb = fs_q_kmcpe_old_bit * S ((S (i)) * cc) + (bit))) /\ (((bit = 0 /\ Q = q + s) \/ (bit = 1 /\ Q = S (q + s))))))) - 0058
specialize hprefix i - 0059
apply hprefix - 0060
exact hsplit_right - 0061
cases hold - 0062
cases hold_witness - 0063
cases hold_witness_witness - 0064
cases hold_witness_witness_witness - 0065
cases hold_witness_witness_witness_witness - 0066
cases hold_witness_witness_witness_witness_right - 0067
cases hold_witness_witness_witness_witness_right_right - 0068
cases hold_witness_witness_witness_witness_right_right_right - 0069
exists x6 - 0070
exists x7 - 0071
exists x8 - 0072
exists x9 - 0073
split - 0074
exact hold_witness_witness_witness_witness_left - 0075
split - 0076
exact hold_witness_witness_witness_witness_right_left - 0077
split - 0078
exact hold_witness_witness_witness_witness_right_right_left - 0079
split - 0080
specialize beta_prefix_extend_witness_witness_right i - 0081
specialize beta_prefix_extend_witness_witness_right x9 - 0082
apply beta_prefix_extend_witness_witness_right - 0083
exact hsplit_right - 0084
exact hold_witness_witness_witness_witness_right_right_right_left - 0085
exact hold_witness_witness_witness_witness_right_right_right_right