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 r s b c l. exists z d. (forall fms_i_compose fms_j_compose fms_v_compose. (exists fms_gap_compose. fms_gap_compose + S (fms_i_compose) = (l)) -> (((exists fs_h_fms_compose_index. fs_h_fms_compose_index + S (fms_j_compose) = S ((S (fms_i_compose)) * s)) /\ exists fs_q_fms_compose_index. r = fs_q_fms_compose_index * S ((S (fms_i_compose)) * s) + (fms_j_compose))) -> (((exists fs_h_fms_compose_source. fs_h_fms_compose_source + S (fms_v_compose) = S ((S (fms_j_compose)) * c)) /\ exists fs_q_fms_compose_source. b = fs_q_fms_compose_source * S ((S (fms_j_compose)) * c) + (fms_v_compose))) -> (((exists fs_h_fms_compose_target. fs_h_fms_compose_target + S (fms_v_compose) = S ((S (fms_i_compose)) * d)) /\ exists fs_q_fms_compose_target. z = fs_q_fms_compose_target * S ((S (fms_i_compose)) * d) + (fms_v_compose))))Constructive proof overview
Generated structural guide
Construct an actual finite beta code for composition of two arbitrary decoded beta functions.
The unchanged tactic script uses 6 declared prerequisites and contains 96 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_prefix_extend Stable theorem; checked-use authorized beta_at_exists Stable theorem; checked-use authorized beta_at_unique Stable theorem; checked-use authorized finite_lt_succ_eq_or_lt Stable theorem; checked-use authorized add_eq_zero_right Stable theorem; checked-use authorized succ_ne_zero 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–4
02Induction on lL5–5
Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.
- L5
induction l
03Construct an explicit witnessL6–7
04Fix variables and assumptionsL8–13
05Separate the logical casesL14–15
06Establish hzL16–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add eq zero right.
07Separate the logical casesL24–25
08Establish hjL26–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L26
have hj : exists j. ((exists fs_h_fms_compose_last_index. fs_h_fms_compose_last_index + S (j) = S ((S (l)) * s)) /\ exists fs_q_fms_compose_last_index. r = fs_q_fms_compose_last_index * S ((S (l)) * s) + (j)) - L27
specialize beta_at_exists r - L28
specialize beta_at_exists s - L29
specialize beta_at_exists l - L30
apply beta_at_exists
09Separate the logical casesL31–31
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L31
cases hj
10Establish hvL32–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L32
have hv : exists v. ((exists fs_h_fms_compose_last_value. fs_h_fms_compose_last_value + S (v) = S ((S (x2)) * c)) /\ exists fs_q_fms_compose_last_value. b = fs_q_fms_compose_last_value * S ((S (x2)) * c) + (v)) - L33
specialize beta_at_exists b - L34
specialize beta_at_exists c - L35
specialize beta_at_exists x2 - L36
apply beta_at_exists
11Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
cases hv
12Use earlier factsL38–41
13Separate the logical casesL42–44
14Construct an explicit witnessL45–46
15Fix variables and assumptionsL47–52
16Establish hcaseL53–57
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
17Separate the logical casesL58–58
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L58
cases hcase
18Calculate and transport equalitiesL59–60
19Establish hjeqL61–70
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
20Calculate and transport equalitiesL71–71
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L71
rewrite hjeq at hvj
21Establish hveqL72–81
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
22Calculate and transport equalitiesL82–84
23Use earlier factsL85–94
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L85
exact beta_prefix_extend_witness_witness_left - L86
specialize beta_prefix_extend_witness_witness_right i - L87
specialize beta_prefix_extend_witness_witness_right v - L88
apply beta_prefix_extend_witness_witness_right - L89
exact hcase_right - L90
specialize IH_witness_witness i - L91
specialize IH_witness_witness j - L92
specialize IH_witness_witness v - L93
apply IH_witness_witness - L94
exact hcase_right
Original exact command ledger · 96 lines
- 0001
intro r - 0002
intro s - 0003
intro b - 0004
intro c - 0005
induction l - 0006
exists 0 - 0007
exists 0 - 0008
intro i - 0009
intro j - 0010
intro v - 0011
intro hi - 0012
intro hj - 0013
intro hv - 0014
exfalso - 0015
cases hi - 0016
have hz : S i=0 - 0017
specialize add_eq_zero_right x - 0018
specialize add_eq_zero_right S i - 0019
apply add_eq_zero_right - 0020
exact hi_witness - 0021
specialize succ_ne_zero i - 0022
apply succ_ne_zero - 0023
exact hz - 0024
cases IH - 0025
cases IH_witness - 0026
have hj : exists j. ((exists fs_h_fms_compose_last_index. fs_h_fms_compose_last_index + S (j) = S ((S (l)) * s)) /\ exists fs_q_fms_compose_last_index. r = fs_q_fms_compose_last_index * S ((S (l)) * s) + (j)) - 0027
specialize beta_at_exists r - 0028
specialize beta_at_exists s - 0029
specialize beta_at_exists l - 0030
apply beta_at_exists - 0031
cases hj - 0032
have hv : exists v. ((exists fs_h_fms_compose_last_value. fs_h_fms_compose_last_value + S (v) = S ((S (x2)) * c)) /\ exists fs_q_fms_compose_last_value. b = fs_q_fms_compose_last_value * S ((S (x2)) * c) + (v)) - 0033
specialize beta_at_exists b - 0034
specialize beta_at_exists c - 0035
specialize beta_at_exists x2 - 0036
apply beta_at_exists - 0037
cases hv - 0038
specialize beta_prefix_extend l - 0039
specialize beta_prefix_extend x - 0040
specialize beta_prefix_extend x1 - 0041
specialize beta_prefix_extend x3 - 0042
cases beta_prefix_extend - 0043
cases beta_prefix_extend_witness - 0044
cases beta_prefix_extend_witness_witness - 0045
exists x4 - 0046
exists x5 - 0047
intro i - 0048
intro j - 0049
intro v - 0050
intro hi - 0051
intro hji - 0052
intro hvj - 0053
have hcase : i=l \/ (exists fms_gap_lt. fms_gap_lt + S (i) = (l)) - 0054
specialize finite_lt_succ_eq_or_lt l - 0055
specialize finite_lt_succ_eq_or_lt i - 0056
apply finite_lt_succ_eq_or_lt - 0057
exact hi - 0058
cases hcase - 0059
rewrite hcase_left at hji - 0060
rewrite hcase_left at hji - 0061
have hjeq : j=x2 - 0062
specialize beta_at_unique r - 0063
specialize beta_at_unique s - 0064
specialize beta_at_unique l - 0065
specialize beta_at_unique j - 0066
specialize beta_at_unique x2 - 0067
apply beta_at_unique - 0068
exact hji - 0069
exact hj_witness - 0070
rewrite hjeq at hvj - 0071
rewrite hjeq at hvj - 0072
have hveq : v=x3 - 0073
specialize beta_at_unique b - 0074
specialize beta_at_unique c - 0075
specialize beta_at_unique x2 - 0076
specialize beta_at_unique v - 0077
specialize beta_at_unique x3 - 0078
apply beta_at_unique - 0079
exact hvj - 0080
exact hv_witness - 0081
rewrite hcase_left - 0082
rewrite hcase_left - 0083
rewrite hveq - 0084
rewrite hveq - 0085
exact beta_prefix_extend_witness_witness_left - 0086
specialize beta_prefix_extend_witness_witness_right i - 0087
specialize beta_prefix_extend_witness_witness_right v - 0088
apply beta_prefix_extend_witness_witness_right - 0089
exact hcase_right - 0090
specialize IH_witness_witness i - 0091
specialize IH_witness_witness j - 0092
specialize IH_witness_witness v - 0093
apply IH_witness_witness - 0094
exact hcase_right - 0095
exact hji - 0096
exact hvj