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
∀ mb. ∀ mc. ∀ rb. ∀ rc. ∀ H. ∀ l. ∀ i. ∀ r. (∀ x. Lt(x,l) → ∃ y. BetaAt(mb,mc,x,y) ∧ (Lt(0,y) ∧ Le(y,H))) → (∀ x. ∀ y. Lt(x,l) → BetaAt(mb,mc,x,S y) → BetaAt(rb,rc,x,y)) → Lt(i,l) → BetaAt(rb,rc,i,r) → BetaAt(mb,mc,i,S r)Every purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.
Definitions used by this theorem
In the theorem statement
10 occurrences
In local proof propositions
5 occurrences
Exact expanded native-PA statement
forall mb mc rb rc H l i r. (forall gmp_index_predecessor_transport_range. (exists gsp_lt_gap_predecessor_transport_range_index_bound. gsp_lt_gap_predecessor_transport_range_index_bound + S gmp_index_predecessor_transport_range = l) -> exists gmp_magnitude_predecessor_transport_range. ((((exists ff_h_gmp_predecessor_transport_range_decoded. ff_h_gmp_predecessor_transport_range_decoded + S (gmp_magnitude_predecessor_transport_range) = S ((S (gmp_index_predecessor_transport_range)) * mc)) /\ exists ff_q_gmp_predecessor_transport_range_decoded. mb = ff_q_gmp_predecessor_transport_range_decoded * S ((S (gmp_index_predecessor_transport_range)) * mc) + (gmp_magnitude_predecessor_transport_range))) /\ ((exists gsp_lt_gap_predecessor_transport_range_positive. gsp_lt_gap_predecessor_transport_range_positive + S 0 = gmp_magnitude_predecessor_transport_range) /\ (exists gsp_le_gap_predecessor_transport_range_bounded. gsp_le_gap_predecessor_transport_range_bounded + gmp_magnitude_predecessor_transport_range = H)))) -> (forall gmp_index_predecessor_transport_recode gmp_predecessor_predecessor_transport_recode. (exists gsp_lt_gap_predecessor_transport_recode_index_bound. gsp_lt_gap_predecessor_transport_recode_index_bound + S gmp_index_predecessor_transport_recode = l) -> (((exists gsp_beta_height_gmp_predecessor_transport_recode_source. gsp_beta_height_gmp_predecessor_transport_recode_source + S (S gmp_predecessor_predecessor_transport_recode) = S ((S (gmp_index_predecessor_transport_recode)) * mc)) /\ exists gsp_beta_quotient_gmp_predecessor_transport_recode_source. mb = gsp_beta_quotient_gmp_predecessor_transport_recode_source * S ((S (gmp_index_predecessor_transport_recode)) * mc) + (S gmp_predecessor_predecessor_transport_recode))) -> (((exists ff_h_gmp_predecessor_transport_recode_target. ff_h_gmp_predecessor_transport_recode_target + S (gmp_predecessor_predecessor_transport_recode) = S ((S (gmp_index_predecessor_transport_recode)) * rc)) /\ exists ff_q_gmp_predecessor_transport_recode_target. rb = ff_q_gmp_predecessor_transport_recode_target * S ((S (gmp_index_predecessor_transport_recode)) * rc) + (gmp_predecessor_predecessor_transport_recode)))) -> (exists gsp_lt_gap_predecessor_transport_index_bound. gsp_lt_gap_predecessor_transport_index_bound + S i = l) -> (((exists ff_h_gmp_predecessor_transport_target_entry. ff_h_gmp_predecessor_transport_target_entry + S (r) = S ((S (i)) * rc)) /\ exists ff_q_gmp_predecessor_transport_target_entry. rb = ff_q_gmp_predecessor_transport_target_entry * S ((S (i)) * rc) + (r))) -> (((exists gsp_beta_height_predecessor_transport_source_entry. gsp_beta_height_predecessor_transport_source_entry + S (S r) = S ((S (i)) * mc)) /\ exists gsp_beta_quotient_predecessor_transport_source_entry. mb = gsp_beta_quotient_predecessor_transport_source_entry * S ((S (i)) * mc) + (S r)))Proof neighborhood
Direct theorem prerequisites
Direct theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed 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.
Named ingredients (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–12
03Establish hentryL13–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hrange.
- L13
have hentry : ∃ m. BetaAt(mb,mc,i,m) ∧ (Lt(0,m) ∧ Le(m,H))Definitions: BetaAt(mb,mc,i,m)Lt(0,m)Le(m,H)Original native command in the exact edition - L14
specialize hrange i - L15
apply hrange - L16
exact hi
04Separate the logical casesL17–19
05Establish hx0L20–25
06Establish hxpredecessorL26–29
07Separate the logical casesL30–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
cases hxpredecessor
08Establish hsource_predecessorL31–34
Establish this local claim before using it. It is not an additional assumption.
- L31
have hsource_predecessor : BetaAt(mb,mc,i,S x1)Definitions: BetaAt(mb,mc,i,S x1)Original native command in the exact edition - L32
rewrite <- hxpredecessor_witness - L33
rewrite <- hxpredecessor_witness - L34
exact hentry_witness_left
09Establish htarget_predecessorL35–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hrecode.
- L35
have htarget_predecessor : BetaAt(rb,rc,i,x1)Definitions: BetaAt(rb,rc,i,x1)Original native command in the exact edition - L36
specialize hrecode i - L37
specialize hrecode x1 - L38
apply hrecode - L39
exact hi - L40
exact hsource_predecessor
10Establish hrxL41–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
Original defined command ledger · 58 lines
- 0001
intro mb - 0002
intro mc - 0003
intro rb - 0004
intro rc - 0005
intro H - 0006
intro l - 0007
intro i - 0008
intro r - 0009
intro hrange - 0010
intro hrecode - 0011
intro hi - 0012
intro htarget - 0013
have hentry : ∃ m. BetaAt(mb,mc,i,m) ∧ (Lt(0,m) ∧ Le(m,H))Exact native replay line
have hentry : exists m. (((exists ff_h_gmp_predecessor_transport_range_entry. ff_h_gmp_predecessor_transport_range_entry + S (m) = S ((S (i)) * mc)) /\ exists ff_q_gmp_predecessor_transport_range_entry. mb = ff_q_gmp_predecessor_transport_range_entry * S ((S (i)) * mc) + (m))) /\ ((exists gsp_lt_gap_predecessor_transport_positive. gsp_lt_gap_predecessor_transport_positive + S 0 = m) /\ (exists gsp_le_gap_predecessor_transport_bounded. gsp_le_gap_predecessor_transport_bounded + m = H)) - 0014
specialize hrange i - 0015
apply hrange - 0016
exact hi - 0017
cases hentry - 0018
cases hentry_witness - 0019
cases hentry_witness_right - 0020
have hx0 : ~(x = 0) - 0021
intro hxzero - 0022
specialize ne_zero_of_one_le x - 0023
apply ne_zero_of_one_le - 0024
exact hentry_witness_right_left - 0025
exact hxzero - 0026
have hxpredecessor : exists q. x = S q - 0027
specialize nonzero_is_succ x - 0028
apply nonzero_is_succ - 0029
exact hx0 - 0030
cases hxpredecessor - 0031
have hsource_predecessor : BetaAt(mb,mc,i,S x1)Exact native replay line
have hsource_predecessor : ((exists gsp_beta_height_predecessor_transport_source_predecessor. gsp_beta_height_predecessor_transport_source_predecessor + S (S x1) = S ((S (i)) * mc)) /\ exists gsp_beta_quotient_predecessor_transport_source_predecessor. mb = gsp_beta_quotient_predecessor_transport_source_predecessor * S ((S (i)) * mc) + (S x1)) - 0032
rewrite <- hxpredecessor_witness - 0033
rewrite <- hxpredecessor_witness - 0034
exact hentry_witness_left - 0035
have htarget_predecessor : BetaAt(rb,rc,i,x1)Exact native replay line
have htarget_predecessor : ((exists ff_h_gmp_predecessor_transport_target_predecessor. ff_h_gmp_predecessor_transport_target_predecessor + S (x1) = S ((S (i)) * rc)) /\ exists ff_q_gmp_predecessor_transport_target_predecessor. rb = ff_q_gmp_predecessor_transport_target_predecessor * S ((S (i)) * rc) + (x1)) - 0036
specialize hrecode i - 0037
specialize hrecode x1 - 0038
apply hrecode - 0039
exact hi - 0040
exact hsource_predecessor - 0041
have hrx : r = x1 - 0042
specialize beta_at_unique rb - 0043
specialize beta_at_unique rc - 0044
specialize beta_at_unique i - 0045
specialize beta_at_unique r - 0046
specialize beta_at_unique x1 - 0047
apply beta_at_unique - 0048
exact htarget - 0049
exact htarget_predecessor - 0050
have hxsr : x = S r - 0051
trans S x1 - 0052
exact hxpredecessor_witness - 0053
congr - 0054
symm - 0055
exact hrx - 0056
rewrite hxsr at hentry_witness_left - 0057
rewrite hxsr at hentry_witness_left - 0058
exact hentry_witness_left