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.
Statement with defined notation
∀ b. ∀ c. ∀ d. ∀ e. ∀ l. ∃ z. ∃ t. ∀ x. ∀ y. Lt(x,l + l) → BetaAt(z,t,x,y) → (∃ n. Lt(n,l) ∧ (BetaAt(b,c,n,y) ∧ x = n + n)) ∨ (∃ n. Lt(n,l) ∧ (BetaAt(d,e,n,y) ∧ x = S (n + n)))Every purple notation token opens its conservative definition. This reading surface never changes the unchanged intuitionistic kernel or confers checked-use authority.
Definitions used by this theorem
In the theorem statement
In local proof propositions
Exact expanded first-order 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)))))))Proof neighborhood
Direct theorem prerequisites
Direct theorem dependents
Definition-aware tactic body
Only propositions whose conservative expansion has been checked for exact first-order equivalence are compacted. Every changed line retains its immutable exact replay command.
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.
- L25
have hleft : ∃ a. BetaAt(b,c,l,a)Definitions: BetaAt(b,c,l,a)Original native command in the exact edition - L26
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.
- L28
have hright : ∃ a. BetaAt(d,e,l,a)Definitions: BetaAt(d,e,l,a)Original native command in the exact edition - L29
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.
- L31
have hpair : ∃ z. ∃ t. BetaAt(z,t,l + l,x2) ∧ (BetaAt(z,t,S (l + l),x3) ∧ (∀ y. ∀ n. Lt(y,l + l) → BetaAt(x,x1,y,n) → BetaAt(z,t,y,n)))Definitions: BetaAt(z,t,l + l,x2)BetaAt(z,t,S (l + l),x3)Lt(y,l + l)BetaAt(x,x1,y,n)BetaAt(z,t,y,n)Original native command in the exact edition - L32
specialize beta_prefix_append_two_exists x - L33
specialize beta_prefix_append_two_exists x1 - L34
specialize beta_prefix_append_two_exists (l + l) - L35
specialize beta_prefix_append_two_exists x2 - L36
specialize beta_prefix_append_two_exists x3 - L37
exact beta_prefix_append_two_exists
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.
- L54
have hlast : i = S (l + l) ∨ Lt(i,S (l + l))Definitions: Lt(i,S (l + l))Original native command in the exact edition - L55
specialize finite_lt_succ_eq_or_lt (S (l + l)) - L56
specialize finite_lt_succ_eq_or_lt i - L57
apply finite_lt_succ_eq_or_lt - L58
exact hibound
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.
- L60
have hnormalized : BetaAt(x4,x5,S (l + l),v)Definitions: BetaAt(x4,x5,S (l + l),v)Original native command in the exact edition - L61
rewrite <- hlast_left - L62
rewrite <- hlast_left - L63
exact hentry
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.
- L82
have hprevious : i = l + l ∨ Lt(i,l + l)Definitions: Lt(i,l + l)Original native command in the exact edition - L83
specialize finite_lt_succ_eq_or_lt (l + l) - L84
specialize finite_lt_succ_eq_or_lt i - L85
apply finite_lt_succ_eq_or_lt - L86
exact hlast_right
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 : BetaAt(x4,x5,l + l,v)Definitions: BetaAt(x4,x5,l + l,v)Original native command in the exact edition - 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.
- L110
have hold : ∃ u. BetaAt(x,x1,i,u)Definitions: BetaAt(x,x1,i,u)Original native command in the exact edition - L111
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 : BetaAt(x4,x5,i,x6)Definitions: BetaAt(x4,x5,i,x6)Original native command in the exact edition - 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.
- L128
have holdcase : (∃ x. Lt(x,l) ∧ (BetaAt(b,c,x,x6) ∧ i = x + x)) ∨ (∃ x. Lt(x,l) ∧ (BetaAt(d,e,x,x6) ∧ i = S (x + x)))Definitions: Lt(x,l)BetaAt(b,c,x,x6)BetaAt(d,e,x,x6)Original native command in the exact edition - L129
specialize IH_witness_witness i - L130
specialize IH_witness_witness x6 - L131
apply IH_witness_witness - L132
exact hprevious_right - L133
exact hold_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 defined 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 : ∃ a. BetaAt(b,c,l,a)Exact native replay line
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 : ∃ a. BetaAt(d,e,l,a)Exact native replay line
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 : ∃ z. ∃ t. BetaAt(z,t,l + l,x2) ∧ (BetaAt(z,t,S (l + l),x3) ∧ (∀ y. ∀ n. Lt(y,l + l) → BetaAt(x,x1,y,n) → BetaAt(z,t,y,n)))Exact native replay line
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) ∨ Lt(i,S (l + l))Exact native replay line
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 : BetaAt(x4,x5,S (l + l),v)Exact native replay line
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 ∨ Lt(i,l + l)Exact native replay line
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 : BetaAt(x4,x5,l + l,v)Exact native replay line
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 : ∃ u. BetaAt(x,x1,i,u)Exact native replay line
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 : BetaAt(x4,x5,i,x6)Exact native replay line
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 : (∃ x. Lt(x,l) ∧ (BetaAt(b,c,x,x6) ∧ i = x + x)) ∨ (∃ x. Lt(x,l) ∧ (BetaAt(d,e,x,x6) ∧ i = S (x + x)))Exact native replay line
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