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
∀ p. ∀ b. ∀ c. ∀ l. (∀ x. Lt(x,l) → ∃ y. BetaAt(b,c,x,y) ∧ Lt(y,p)) → ∃ x. ∃ y. ∀ z. ∀ n. ∀ m. Lt(z,l) → BetaAt(b,c,z,n) → BetaAt(x,y,z,m) → m + S n = pEvery 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 p b c l. (forall fom_index_fsri_complement_source. (exists fom_gap_fsri_complement_source_index_bound. fom_gap_fsri_complement_source_index_bound + S (fom_index_fsri_complement_source) = l) -> exists fom_value_fsri_complement_source. ((((exists fom_beta_height_fsri_complement_source_entry. fom_beta_height_fsri_complement_source_entry + S (fom_value_fsri_complement_source) = S ((S (fom_index_fsri_complement_source)) * c)) /\ exists fom_beta_quotient_fsri_complement_source_entry. b = fom_beta_quotient_fsri_complement_source_entry * S ((S (fom_index_fsri_complement_source)) * c) + (fom_value_fsri_complement_source))) /\ (exists fom_gap_fsri_complement_source_value_bound. fom_gap_fsri_complement_source_value_bound + S (fom_value_fsri_complement_source) = p))) -> exists z d. (forall fsri_complement_index_exists fsri_complement_source_exists fsri_complement_target_exists. (exists fsri_gap_exists_index. fsri_gap_exists_index + S (fsri_complement_index_exists) = (l)) -> (((exists fsri_height_exists_source. fsri_height_exists_source + S (fsri_complement_source_exists) = S ((S (fsri_complement_index_exists)) * (c))) /\ exists fsri_quotient_exists_source. (b) = fsri_quotient_exists_source * S ((S (fsri_complement_index_exists)) * (c)) + (fsri_complement_source_exists))) -> (((exists fsri_height_exists_target. fsri_height_exists_target + S (fsri_complement_target_exists) = S ((S (fsri_complement_index_exists)) * (d))) /\ exists fsri_quotient_exists_target. (z) = fsri_quotient_exists_target * S ((S (fsri_complement_index_exists)) * (d)) + (fsri_complement_target_exists))) -> fsri_complement_target_exists + S fsri_complement_source_exists = (p))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–3
02Induction on lL4–5
03Construct an explicit witnessL6–7
04Fix variables and assumptionsL8–13
05Separate the logical casesL14–15
06Establish himpossibleL16–24
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add eq zero right.
07Establish hprevious_boundL25–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hbounded.
- L25
have hprevious_bound : ∀ fom_index_fsri_previous_bound. Lt(fom_index_fsri_previous_bound,l) → ∃ x. BetaAt(b,c,fom_index_fsri_previous_bound,x) ∧ Lt(x,p)Definitions: Lt(fom_index_fsri_previous_bound,l)BetaAt(b,c,fom_index_fsri_previous_bound,x)Lt(x,p)Original native command in the exact edition - L26
intro i - L27
intro hi - L28
specialize hbounded i - L29
apply hbounded - L30
specialize le_succ (S i) - L31
specialize le_succ l - L32
apply le_succ - L33
exact hi
08Establish hpreviousL34–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L34
have hprevious : ∃ z. ∃ d. ∀ x. ∀ y. ∀ n. Lt(x,l) → BetaAt(b,c,x,y) → BetaAt(z,d,x,n) → n + S y = pDefinitions: Lt(x,l)BetaAt(b,c,x,y)BetaAt(z,d,x,n)Original native command in the exact edition - L35
apply IH - L36
exact hprevious_bound
09Separate the logical casesL37–38
10Establish hlastL39–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hbounded.
- L39
have hlast : ∃ v. BetaAt(b,c,l,v) ∧ Lt(v,p)Definitions: BetaAt(b,c,l,v)Lt(v,p)Original native command in the exact edition - L40
specialize hbounded l - L41
apply hbounded - L42
specialize le_refl (S l) - L43
exact le_refl
11Separate the logical casesL44–46
12Establish hextendL47–52
Establish this local claim before using it. It is not an additional assumption.
- L47
have hextend : ∃ z. ∃ d. BetaAt(z,d,l,x3) ∧ (∀ y. ∀ n. Lt(y,l) → BetaAt(x,x1,y,n) → BetaAt(z,d,y,n))Definitions: BetaAt(z,d,l,x3)Lt(y,l)BetaAt(x,x1,y,n)BetaAt(z,d,y,n)Original native command in the exact edition - L48
specialize beta_prefix_extend l - L49
specialize beta_prefix_extend x - L50
specialize beta_prefix_extend x1 - L51
specialize beta_prefix_extend x3 - L52
exact beta_prefix_extend
13Separate the logical casesL53–55
14Construct an explicit witnessL56–57
15Fix variables and assumptionsL58–63
16Establish hsplitL64–68
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 casesL69–69
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L69
cases hsplit
18Calculate and transport equalitiesL70–73
19Establish hsource_valueL74–82
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
20Establish htarget_valueL83–92
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
21Calculate and transport equalitiesL93–93
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L93
rewrite htarget_value
22Use earlier factsL94–94
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L94
exact hlast_witness_right_witness
23Establish holdL95–99
Establish this local claim before using it. It is not an additional assumption.
- L95
have hold : ∃ t. BetaAt(x,x1,i,t)Definitions: BetaAt(x,x1,i,t)Original native command in the exact edition - L96
specialize beta_at_exists x - L97
specialize beta_at_exists x1 - L98
specialize beta_at_exists i - L99
exact beta_at_exists
24Separate the logical casesL100–100
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L100
cases hold
25Establish htransportL101–106
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hextend witness witness right.
- L101
have htransport : BetaAt(x4,x5,i,x6)Definitions: BetaAt(x4,x5,i,x6)Original native command in the exact edition - L102
specialize hextend_witness_witness_right i - L103
specialize hextend_witness_witness_right x6 - L104
apply hextend_witness_witness_right - L105
exact hsplit_right - L106
exact hold_witness
26Establish htarget_valueL107–116
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
27Use earlier factsL117–123
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 123 lines
- 0001
intro p - 0002
intro b - 0003
intro c - 0004
induction l - 0005
intro hbounded - 0006
exists 0 - 0007
exists 0 - 0008
intro i - 0009
intro v - 0010
intro w - 0011
intro hi - 0012
intro hsource - 0013
intro htarget - 0014
exfalso - 0015
cases hi - 0016
have himpossible : 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 himpossible - 0024
intro hbounded - 0025
have hprevious_bound : ∀ fom_index_fsri_previous_bound. Lt(fom_index_fsri_previous_bound,l) → ∃ x. BetaAt(b,c,fom_index_fsri_previous_bound,x) ∧ Lt(x,p)Exact native replay line
have hprevious_bound : forall fom_index_fsri_previous_bound. (exists fom_gap_fsri_previous_bound_index_bound. fom_gap_fsri_previous_bound_index_bound + S (fom_index_fsri_previous_bound) = l) -> exists fom_value_fsri_previous_bound. ((((exists fom_beta_height_fsri_previous_bound_entry. fom_beta_height_fsri_previous_bound_entry + S (fom_value_fsri_previous_bound) = S ((S (fom_index_fsri_previous_bound)) * c)) /\ exists fom_beta_quotient_fsri_previous_bound_entry. b = fom_beta_quotient_fsri_previous_bound_entry * S ((S (fom_index_fsri_previous_bound)) * c) + (fom_value_fsri_previous_bound))) /\ (exists fom_gap_fsri_previous_bound_value_bound. fom_gap_fsri_previous_bound_value_bound + S (fom_value_fsri_previous_bound) = p)) - 0026
intro i - 0027
intro hi - 0028
specialize hbounded i - 0029
apply hbounded - 0030
specialize le_succ (S i) - 0031
specialize le_succ l - 0032
apply le_succ - 0033
exact hi - 0034
have hprevious : ∃ z. ∃ d. ∀ x. ∀ y. ∀ n. Lt(x,l) → BetaAt(b,c,x,y) → BetaAt(z,d,x,n) → n + S y = pExact native replay line
have hprevious : exists z d. (forall fsri_complement_index_previous fsri_complement_source_previous fsri_complement_target_previous. (exists fsri_gap_previous_index. fsri_gap_previous_index + S (fsri_complement_index_previous) = (l)) -> (((exists fsri_height_previous_source. fsri_height_previous_source + S (fsri_complement_source_previous) = S ((S (fsri_complement_index_previous)) * (c))) /\ exists fsri_quotient_previous_source. (b) = fsri_quotient_previous_source * S ((S (fsri_complement_index_previous)) * (c)) + (fsri_complement_source_previous))) -> (((exists fsri_height_previous_target. fsri_height_previous_target + S (fsri_complement_target_previous) = S ((S (fsri_complement_index_previous)) * (d))) /\ exists fsri_quotient_previous_target. (z) = fsri_quotient_previous_target * S ((S (fsri_complement_index_previous)) * (d)) + (fsri_complement_target_previous))) -> fsri_complement_target_previous + S fsri_complement_source_previous = (p)) - 0035
apply IH - 0036
exact hprevious_bound - 0037
cases hprevious - 0038
cases hprevious_witness - 0039
have hlast : ∃ v. BetaAt(b,c,l,v) ∧ Lt(v,p)Exact native replay line
have hlast : exists v. ((((exists fsri_height_complement_last_source. fsri_height_complement_last_source + S (v) = S ((S (l)) * (c))) /\ exists fsri_quotient_complement_last_source. (b) = fsri_quotient_complement_last_source * S ((S (l)) * (c)) + (v))) /\ (exists fsri_gap_complement_last_bound. fsri_gap_complement_last_bound + S (v) = (p))) - 0040
specialize hbounded l - 0041
apply hbounded - 0042
specialize le_refl (S l) - 0043
exact le_refl - 0044
cases hlast - 0045
cases hlast_witness - 0046
cases hlast_witness_right - 0047
have hextend : ∃ z. ∃ d. BetaAt(z,d,l,x3) ∧ (∀ y. ∀ n. Lt(y,l) → BetaAt(x,x1,y,n) → BetaAt(z,d,y,n))Exact native replay line
have hextend : exists z d. ((((exists fsri_height_complement_extension_last. fsri_height_complement_extension_last + S (x3) = S ((S (l)) * (d))) /\ exists fsri_quotient_complement_extension_last. (z) = fsri_quotient_complement_extension_last * S ((S (l)) * (d)) + (x3))) /\ forall i v. (exists fsri_gap_complement_extension_old_bound. fsri_gap_complement_extension_old_bound + S (i) = (l)) -> (((exists fsri_height_complement_extension_old. fsri_height_complement_extension_old + S (v) = S ((S (i)) * (x1))) /\ exists fsri_quotient_complement_extension_old. (x) = fsri_quotient_complement_extension_old * S ((S (i)) * (x1)) + (v))) -> (((exists fsri_height_complement_extension_new. fsri_height_complement_extension_new + S (v) = S ((S (i)) * (d))) /\ exists fsri_quotient_complement_extension_new. (z) = fsri_quotient_complement_extension_new * S ((S (i)) * (d)) + (v)))) - 0048
specialize beta_prefix_extend l - 0049
specialize beta_prefix_extend x - 0050
specialize beta_prefix_extend x1 - 0051
specialize beta_prefix_extend x3 - 0052
exact beta_prefix_extend - 0053
cases hextend - 0054
cases hextend_witness - 0055
cases hextend_witness_witness - 0056
exists x4 - 0057
exists x5 - 0058
intro i - 0059
intro v - 0060
intro w - 0061
intro hi - 0062
intro hsource - 0063
intro htarget - 0064
have hsplit : i = l ∨ Lt(i,l)Exact native replay line
have hsplit : i = l \/ (exists fsri_gap_complement_split. fsri_gap_complement_split + S (i) = (l)) - 0065
specialize finite_lt_succ_eq_or_lt l - 0066
specialize finite_lt_succ_eq_or_lt i - 0067
apply finite_lt_succ_eq_or_lt - 0068
exact hi - 0069
cases hsplit - 0070
rewrite hsplit_left at hsource - 0071
rewrite hsplit_left at hsource - 0072
rewrite hsplit_left at htarget - 0073
rewrite hsplit_left at htarget - 0074
have hsource_value : v = x2 - 0075
specialize beta_at_unique b - 0076
specialize beta_at_unique c - 0077
specialize beta_at_unique l - 0078
specialize beta_at_unique v - 0079
specialize beta_at_unique x2 - 0080
apply beta_at_unique - 0081
exact hsource - 0082
exact hlast_witness_left - 0083
have htarget_value : w = x3 - 0084
specialize beta_at_unique x4 - 0085
specialize beta_at_unique x5 - 0086
specialize beta_at_unique l - 0087
specialize beta_at_unique w - 0088
specialize beta_at_unique x3 - 0089
apply beta_at_unique - 0090
exact htarget - 0091
exact hextend_witness_witness_left - 0092
rewrite hsource_value - 0093
rewrite htarget_value - 0094
exact hlast_witness_right_witness - 0095
have hold : ∃ t. BetaAt(x,x1,i,t)Exact native replay line
have hold : exists t. (((exists fsri_height_complement_old_entry. fsri_height_complement_old_entry + S (t) = S ((S (i)) * (x1))) /\ exists fsri_quotient_complement_old_entry. (x) = fsri_quotient_complement_old_entry * S ((S (i)) * (x1)) + (t))) - 0096
specialize beta_at_exists x - 0097
specialize beta_at_exists x1 - 0098
specialize beta_at_exists i - 0099
exact beta_at_exists - 0100
cases hold - 0101
have htransport : BetaAt(x4,x5,i,x6)Exact native replay line
have htransport : ((exists fsri_height_complement_old_transport. fsri_height_complement_old_transport + S (x6) = S ((S (i)) * (x5))) /\ exists fsri_quotient_complement_old_transport. (x4) = fsri_quotient_complement_old_transport * S ((S (i)) * (x5)) + (x6)) - 0102
specialize hextend_witness_witness_right i - 0103
specialize hextend_witness_witness_right x6 - 0104
apply hextend_witness_witness_right - 0105
exact hsplit_right - 0106
exact hold_witness - 0107
have htarget_value : w = x6 - 0108
specialize beta_at_unique x4 - 0109
specialize beta_at_unique x5 - 0110
specialize beta_at_unique i - 0111
specialize beta_at_unique w - 0112
specialize beta_at_unique x6 - 0113
apply beta_at_unique - 0114
exact htarget - 0115
exact htransport - 0116
rewrite htarget_value - 0117
specialize hprevious_witness_witness i - 0118
specialize hprevious_witness_witness v - 0119
specialize hprevious_witness_witness x6 - 0120
apply hprevious_witness_witness - 0121
exact hsplit_right - 0122
exact hsource - 0123
exact hold_witness