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 b c d e l. exists z t. (forall fscp_index_exists_result fscp_value_exists_result. (exists fscp_gap_exists_result_index. fscp_gap_exists_result_index + S (fscp_index_exists_result) = (l + l)) -> (((exists ff_h_fscp_exists_result_source. ff_h_fscp_exists_result_source + S (fscp_value_exists_result) = S ((S (fscp_index_exists_result)) * t)) /\ exists ff_q_fscp_exists_result_source. z = ff_q_fscp_exists_result_source * S ((S (fscp_index_exists_result)) * t) + (fscp_value_exists_result))) -> (((exists fscp_left_exists_result. ((exists fscp_gap_exists_result_left_bound. fscp_gap_exists_result_left_bound + S (fscp_left_exists_result) = (l)) /\ ((((exists ff_h_fscp_exists_result_left. ff_h_fscp_exists_result_left + S (fscp_value_exists_result) = S ((S (fscp_left_exists_result)) * c)) /\ exists ff_q_fscp_exists_result_left. b = ff_q_fscp_exists_result_left * S ((S (fscp_left_exists_result)) * c) + (fscp_value_exists_result))) /\ fscp_index_exists_result = fscp_left_exists_result + fscp_left_exists_result))) \/ (exists fscp_right_exists_result. ((exists fscp_gap_exists_result_right_bound. fscp_gap_exists_result_right_bound + S (fscp_right_exists_result) = (l)) /\ ((((exists ff_h_fscp_exists_result_right. ff_h_fscp_exists_result_right + S (fscp_value_exists_result) = S ((S (fscp_right_exists_result)) * e)) /\ exists ff_q_fscp_exists_result_right. d = ff_q_fscp_exists_result_right * S ((S (fscp_right_exists_result)) * e) + (fscp_value_exists_result))) /\ fscp_index_exists_result = S (fscp_right_exists_result + fscp_right_exists_result)))))))Constructive proof overview
Generated structural guide
Any two equally long beta-coded prefixes have an actual beta-coded even/odd interleaving with complete constructive source coverage.
The unchanged tactic script uses 9 declared prerequisites and contains 164 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
le_zero Stable theorem; checked-use authorized succ_ne_zero Stable theorem; checked-use authorized beta_at_exists Stable theorem; checked-use authorized beta_prefix_append_two_exists Alpha theorem; checked-use authorized pair_order_double_succ_length Alpha theorem; checked-use authorized finite_lt_succ_eq_or_lt Stable theorem; checked-use authorized beta_at_unique Stable theorem; checked-use authorized le_refl Stable theorem; checked-use authorized le_succ 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–11
05Separate the logical casesL12–12
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L12
exfalso
06Establish hzeroL13–15
07Establish hsumL16–22
08Separate the logical casesL23–24
09Establish hleftL25–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
10Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
cases hleft
11Establish hrightL28–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
12Separate the logical casesL30–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
cases hright
13Establish hpairL31–37
Establish this local claim before using it. It is not an additional assumption.
14Separate the logical casesL38–41
15Construct an explicit witnessL42–43
16Fix variables and assumptionsL44–47
17Establish hshapeL48–53
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair order double succ length.
18Establish hlastL54–58
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
19Separate the logical casesL59–59
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L59
cases hlast
20Establish hnormalizedL60–63
Establish this local claim before using it. It is not an additional assumption.
21Establish hequalL64–72
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
22Separate the logical casesL73–73
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L73
right
23Construct an explicit witnessL74–74
Supply the displayed value, then prove that it has the required property.
- L74
exists l
24Separate the logical casesL75–75
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L75
split
25Use earlier factsL76–76
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L76
apply le_refl
26Separate the logical casesL77–77
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L77
split
27Calculate and transport equalitiesL78–79
28Use earlier factsL80–81
29Establish hpreviousL82–86
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
30Separate the logical casesL87–87
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L87
cases hprevious
31Establish hnormalizedL88–91
Establish this local claim before using it. It is not an additional assumption.
- L88
have hnormalized : ((exists ff_h_fscp_exists_previous_normal. ff_h_fscp_exists_previous_normal + S (v) = S ((S (l + l)) * x5)) /\ exists ff_q_fscp_exists_previous_normal. x4 = ff_q_fscp_exists_previous_normal * S ((S (l + l)) * x5) + (v)) - L89
rewrite <- hprevious_left - L90
rewrite <- hprevious_left - L91
exact hentry
32Establish hequalL92–100
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
33Separate the logical casesL101–101
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L101
left
34Construct an explicit witnessL102–102
Supply the displayed value, then prove that it has the required property.
- L102
exists l
35Separate the logical casesL103–103
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L103
split
36Use earlier factsL104–104
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L104
apply le_refl
37Separate the logical casesL105–105
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L105
split
38Calculate and transport equalitiesL106–107
39Use earlier factsL108–109
40Establish holdL110–111
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
41Separate the logical casesL112–112
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L112
cases hold
42Establish hpreservedL113–118
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hpair witness witness right right.
- L113
have hpreserved : ((exists ff_h_fscp_exists_preserved. ff_h_fscp_exists_preserved + S (x6) = S ((S (i)) * x5)) /\ exists ff_q_fscp_exists_preserved. x4 = ff_q_fscp_exists_preserved * S ((S (i)) * x5) + (x6)) - L114
specialize hpair_witness_witness_right_right i - L115
specialize hpair_witness_witness_right_right x6 - L116
apply hpair_witness_witness_right_right - L117
exact hprevious_right - L118
exact hold_witness
43Establish hequalL119–127
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
44Establish holdcaseL128–133
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH witness witness.
45Separate the logical casesL134–138
46Construct an explicit witnessL139–139
Supply the displayed value, then prove that it has the required property.
- L139
exists x7
47Separate the logical casesL140–140
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L140
split
48Use earlier factsL141–144
49Separate the logical casesL145–145
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L145
split
50Calculate and transport equalitiesL146–147
51Use earlier factsL148–149
52Separate the logical casesL150–153
53Construct an explicit witnessL154–154
Supply the displayed value, then prove that it has the required property.
- L154
exists x7
54Separate the logical casesL155–155
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L155
split
55Use earlier factsL156–159
56Separate the logical casesL160–160
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L160
split
57Calculate and transport equalitiesL161–162
Original exact command ledger · 164 lines
- 0001
intro b - 0002
intro c - 0003
intro d - 0004
intro e - 0005
induction l - 0006
exists 0 - 0007
exists 0 - 0008
intro i - 0009
intro v - 0010
intro hibound - 0011
intro hentry - 0012
exfalso - 0013
have hzero : S i = 0 - 0014
specialize le_zero (S i) - 0015
apply le_zero - 0016
have hsum : 0 + 0 = 0 - 0017
apply PA3 - 0018
rewrite hsum at hibound - 0019
exact hibound - 0020
specialize succ_ne_zero i - 0021
apply succ_ne_zero - 0022
exact hzero - 0023
cases IH - 0024
cases IH_witness - 0025
have hleft : exists a. ((exists ff_h_fscp_exists_left. ff_h_fscp_exists_left + S (a) = S ((S (l)) * c)) /\ exists ff_q_fscp_exists_left. b = ff_q_fscp_exists_left * S ((S (l)) * c) + (a)) - 0026
apply beta_at_exists - 0027
cases hleft - 0028
have hright : exists a. ((exists ff_h_fscp_exists_right. ff_h_fscp_exists_right + S (a) = S ((S (l)) * e)) /\ exists ff_q_fscp_exists_right. d = ff_q_fscp_exists_right * S ((S (l)) * e) + (a)) - 0029
apply beta_at_exists - 0030
cases hright - 0031
have hpair : exists z t. ((((exists ff_h_fscp_exists_pair_first. ff_h_fscp_exists_pair_first + S (x2) = S ((S (l + l)) * t)) /\ exists ff_q_fscp_exists_pair_first. z = ff_q_fscp_exists_pair_first * S ((S (l + l)) * t) + (x2))) /\ ((((exists ff_h_fscp_exists_pair_second. ff_h_fscp_exists_pair_second + S (x3) = S ((S (S (l + l))) * t)) /\ exists ff_q_fscp_exists_pair_second. z = ff_q_fscp_exists_pair_second * S ((S (S (l + l))) * t) + (x3))) /\ (forall i v. (exists fscp_gap_exists_pair_before. fscp_gap_exists_pair_before + S (i) = (l + l)) -> (((exists ff_h_fscp_exists_pair_old. ff_h_fscp_exists_pair_old + S (v) = S ((S (i)) * x1)) /\ exists ff_q_fscp_exists_pair_old. x = ff_q_fscp_exists_pair_old * S ((S (i)) * x1) + (v))) -> (((exists ff_h_fscp_exists_pair_new. ff_h_fscp_exists_pair_new + S (v) = S ((S (i)) * t)) /\ exists ff_q_fscp_exists_pair_new. z = ff_q_fscp_exists_pair_new * S ((S (i)) * t) + (v)))))) - 0032
specialize beta_prefix_append_two_exists x - 0033
specialize beta_prefix_append_two_exists x1 - 0034
specialize beta_prefix_append_two_exists (l + l) - 0035
specialize beta_prefix_append_two_exists x2 - 0036
specialize beta_prefix_append_two_exists x3 - 0037
exact beta_prefix_append_two_exists - 0038
cases hpair - 0039
cases hpair_witness - 0040
cases hpair_witness_witness - 0041
cases hpair_witness_witness_right - 0042
exists x4 - 0043
exists x5 - 0044
intro i - 0045
intro v - 0046
intro hibound - 0047
intro hentry - 0048
have hshape : S (S (l + l)) = S l + S l - 0049
specialize pair_order_double_succ_length (l + l) - 0050
specialize pair_order_double_succ_length l - 0051
apply pair_order_double_succ_length - 0052
refl - 0053
rewrite <- hshape at hibound - 0054
have hlast : i = S (l + l) \/ (exists fscp_gap_exists_last_before. fscp_gap_exists_last_before + S (i) = (S (l + l))) - 0055
specialize finite_lt_succ_eq_or_lt (S (l + l)) - 0056
specialize finite_lt_succ_eq_or_lt i - 0057
apply finite_lt_succ_eq_or_lt - 0058
exact hibound - 0059
cases hlast - 0060
have hnormalized : ((exists ff_h_fscp_exists_last_normal. ff_h_fscp_exists_last_normal + S (v) = S ((S (S (l + l))) * x5)) /\ exists ff_q_fscp_exists_last_normal. x4 = ff_q_fscp_exists_last_normal * S ((S (S (l + l))) * x5) + (v)) - 0061
rewrite <- hlast_left - 0062
rewrite <- hlast_left - 0063
exact hentry - 0064
have hequal : v = x3 - 0065
specialize beta_at_unique x4 - 0066
specialize beta_at_unique x5 - 0067
specialize beta_at_unique (S (l + l)) - 0068
specialize beta_at_unique v - 0069
specialize beta_at_unique x3 - 0070
apply beta_at_unique - 0071
exact hnormalized - 0072
exact hpair_witness_witness_right_left - 0073
right - 0074
exists l - 0075
split - 0076
apply le_refl - 0077
split - 0078
rewrite hequal - 0079
rewrite hequal - 0080
exact hright_witness - 0081
exact hlast_left - 0082
have hprevious : i = l + l \/ (exists fscp_gap_exists_previous_before. fscp_gap_exists_previous_before + S (i) = (l + l)) - 0083
specialize finite_lt_succ_eq_or_lt (l + l) - 0084
specialize finite_lt_succ_eq_or_lt i - 0085
apply finite_lt_succ_eq_or_lt - 0086
exact hlast_right - 0087
cases hprevious - 0088
have hnormalized : ((exists ff_h_fscp_exists_previous_normal. ff_h_fscp_exists_previous_normal + S (v) = S ((S (l + l)) * x5)) /\ exists ff_q_fscp_exists_previous_normal. x4 = ff_q_fscp_exists_previous_normal * S ((S (l + l)) * x5) + (v)) - 0089
rewrite <- hprevious_left - 0090
rewrite <- hprevious_left - 0091
exact hentry - 0092
have hequal : v = x2 - 0093
specialize beta_at_unique x4 - 0094
specialize beta_at_unique x5 - 0095
specialize beta_at_unique (l + l) - 0096
specialize beta_at_unique v - 0097
specialize beta_at_unique x2 - 0098
apply beta_at_unique - 0099
exact hnormalized - 0100
exact hpair_witness_witness_left - 0101
left - 0102
exists l - 0103
split - 0104
apply le_refl - 0105
split - 0106
rewrite hequal - 0107
rewrite hequal - 0108
exact hleft_witness - 0109
exact hprevious_left - 0110
have hold : exists u. ((exists ff_h_fscp_exists_old. ff_h_fscp_exists_old + S (u) = S ((S (i)) * x1)) /\ exists ff_q_fscp_exists_old. x = ff_q_fscp_exists_old * S ((S (i)) * x1) + (u)) - 0111
apply beta_at_exists - 0112
cases hold - 0113
have hpreserved : ((exists ff_h_fscp_exists_preserved. ff_h_fscp_exists_preserved + S (x6) = S ((S (i)) * x5)) /\ exists ff_q_fscp_exists_preserved. x4 = ff_q_fscp_exists_preserved * S ((S (i)) * x5) + (x6)) - 0114
specialize hpair_witness_witness_right_right i - 0115
specialize hpair_witness_witness_right_right x6 - 0116
apply hpair_witness_witness_right_right - 0117
exact hprevious_right - 0118
exact hold_witness - 0119
have hequal : v = x6 - 0120
specialize beta_at_unique x4 - 0121
specialize beta_at_unique x5 - 0122
specialize beta_at_unique i - 0123
specialize beta_at_unique v - 0124
specialize beta_at_unique x6 - 0125
apply beta_at_unique - 0126
exact hentry - 0127
exact hpreserved - 0128
have holdcase : ((exists fscp_left_exists_old_case. ((exists fscp_gap_exists_old_case_left_bound. fscp_gap_exists_old_case_left_bound + S (fscp_left_exists_old_case) = (l)) /\ ((((exists ff_h_fscp_exists_old_case_left. ff_h_fscp_exists_old_case_left + S (x6) = S ((S (fscp_left_exists_old_case)) * c)) /\ exists ff_q_fscp_exists_old_case_left. b = ff_q_fscp_exists_old_case_left * S ((S (fscp_left_exists_old_case)) * c) + (x6))) /\ i = fscp_left_exists_old_case + fscp_left_exists_old_case))) \/ (exists fscp_right_exists_old_case. ((exists fscp_gap_exists_old_case_right_bound. fscp_gap_exists_old_case_right_bound + S (fscp_right_exists_old_case) = (l)) /\ ((((exists ff_h_fscp_exists_old_case_right. ff_h_fscp_exists_old_case_right + S (x6) = S ((S (fscp_right_exists_old_case)) * e)) /\ exists ff_q_fscp_exists_old_case_right. d = ff_q_fscp_exists_old_case_right * S ((S (fscp_right_exists_old_case)) * e) + (x6))) /\ i = S (fscp_right_exists_old_case + fscp_right_exists_old_case))))) - 0129
specialize IH_witness_witness i - 0130
specialize IH_witness_witness x6 - 0131
apply IH_witness_witness - 0132
exact hprevious_right - 0133
exact hold_witness - 0134
cases holdcase - 0135
cases holdcase_left - 0136
cases holdcase_left_witness - 0137
cases holdcase_left_witness_right - 0138
left - 0139
exists x7 - 0140
split - 0141
specialize le_succ (S x7) - 0142
specialize le_succ l - 0143
apply le_succ - 0144
exact holdcase_left_witness_left - 0145
split - 0146
rewrite hequal - 0147
rewrite hequal - 0148
exact holdcase_left_witness_right_left - 0149
exact holdcase_left_witness_right_right - 0150
cases holdcase_right - 0151
cases holdcase_right_witness - 0152
cases holdcase_right_witness_right - 0153
right - 0154
exists x7 - 0155
split - 0156
specialize le_succ (S x7) - 0157
specialize le_succ l - 0158
apply le_succ - 0159
exact holdcase_right_witness_left - 0160
split - 0161
rewrite hequal - 0162
rewrite hequal - 0163
exact holdcase_right_witness_right_left - 0164
exact holdcase_right_witness_right_right