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. ∀ mb. ∀ mc. ∀ rb. ∀ rc. ∀ h. Range(b,c,1,h) → (∀ x. Lt(x,h) → ∃ y. BetaAt(mb,mc,x,y) ∧ (Lt(0,y) ∧ Le(y,h))) → (∀ x. ∀ y. Lt(x,h) → BetaAt(mb,mc,x,S y) → BetaAt(rb,rc,x,y)) → ∀ x. ∀ y. ∀ z. Lt(x,h) → BetaAt(rb,rc,x,y) → BetaAt(b,c,y,z) → BetaAt(mb,mc,x,z)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
12 occurrences
In local proof propositions
6 occurrences
Exact expanded native-PA statement
forall b c mb mc rb rc h. (forall gsp_range_index_ges_half. (exists gsp_lt_gap_ges_half_range_bound. gsp_lt_gap_ges_half_range_bound + S gsp_range_index_ges_half = h) -> (((exists gsp_beta_height_ges_half_range_entry. gsp_beta_height_ges_half_range_entry + S (1 + gsp_range_index_ges_half) = S ((S (gsp_range_index_ges_half)) * c)) /\ exists gsp_beta_quotient_ges_half_range_entry. b = gsp_beta_quotient_ges_half_range_entry * S ((S (gsp_range_index_ges_half)) * c) + (1 + gsp_range_index_ges_half)))) -> (forall gmp_index_ges_magnitude_range. (exists gsp_lt_gap_ges_magnitude_range_index_bound. gsp_lt_gap_ges_magnitude_range_index_bound + S gmp_index_ges_magnitude_range = h) -> exists gmp_magnitude_ges_magnitude_range. ((((exists ff_h_gmp_ges_magnitude_range_decoded. ff_h_gmp_ges_magnitude_range_decoded + S (gmp_magnitude_ges_magnitude_range) = S ((S (gmp_index_ges_magnitude_range)) * mc)) /\ exists ff_q_gmp_ges_magnitude_range_decoded. mb = ff_q_gmp_ges_magnitude_range_decoded * S ((S (gmp_index_ges_magnitude_range)) * mc) + (gmp_magnitude_ges_magnitude_range))) /\ ((exists gsp_lt_gap_ges_magnitude_range_positive. gsp_lt_gap_ges_magnitude_range_positive + S 0 = gmp_magnitude_ges_magnitude_range) /\ (exists gsp_le_gap_ges_magnitude_range_bounded. gsp_le_gap_ges_magnitude_range_bounded + gmp_magnitude_ges_magnitude_range = h)))) -> (forall gmp_index_ges_recode gmp_predecessor_ges_recode. (exists gsp_lt_gap_ges_recode_index_bound. gsp_lt_gap_ges_recode_index_bound + S gmp_index_ges_recode = h) -> (((exists gsp_beta_height_gmp_ges_recode_source. gsp_beta_height_gmp_ges_recode_source + S (S gmp_predecessor_ges_recode) = S ((S (gmp_index_ges_recode)) * mc)) /\ exists gsp_beta_quotient_gmp_ges_recode_source. mb = gsp_beta_quotient_gmp_ges_recode_source * S ((S (gmp_index_ges_recode)) * mc) + (S gmp_predecessor_ges_recode))) -> (((exists ff_h_gmp_ges_recode_target. ff_h_gmp_ges_recode_target + S (gmp_predecessor_ges_recode) = S ((S (gmp_index_ges_recode)) * rc)) /\ exists ff_q_gmp_ges_recode_target. rb = ff_q_gmp_ges_recode_target * S ((S (gmp_index_ges_recode)) * rc) + (gmp_predecessor_ges_recode)))) -> (forall fpr_i_ges_alignment fpr_j_ges_alignment fpr_x_ges_alignment. (exists fpr_h_ges_alignment. fpr_h_ges_alignment + S fpr_i_ges_alignment = h) -> (((exists ff_h_ges_alignment_map. ff_h_ges_alignment_map + S (fpr_j_ges_alignment) = S ((S (fpr_i_ges_alignment)) * rc)) /\ exists ff_q_ges_alignment_map. rb = ff_q_ges_alignment_map * S ((S (fpr_i_ges_alignment)) * rc) + (fpr_j_ges_alignment))) -> (((exists ff_h_ges_alignment_source. ff_h_ges_alignment_source + S (fpr_x_ges_alignment) = S ((S (fpr_j_ges_alignment)) * c)) /\ exists ff_q_ges_alignment_source. b = ff_q_ges_alignment_source * S ((S (fpr_j_ges_alignment)) * c) + (fpr_x_ges_alignment))) -> (((exists ff_h_ges_alignment_target. ff_h_ges_alignment_target + S (fpr_x_ges_alignment) = S ((S (fpr_i_ges_alignment)) * mc)) /\ exists ff_q_ges_alignment_target. mb = ff_q_ges_alignment_target * S ((S (fpr_i_ges_alignment)) * mc) + (fpr_x_ges_alignment))))Proof neighborhood
Direct theorem prerequisites
PA007T beta_magnitude_predecessor_recode_reflect PA002F beta_at_unique PA000E add_succ_left PA0001 zero_addDirect 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 (4)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–16
03Establish hmagnitude_succL17–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta magnitude predecessor recode reflect.
- L17
have hmagnitude_succ : BetaAt(mb,mc,i,S j)Definitions: BetaAt(mb,mc,i,S j)Original native command in the exact edition - L18
specialize beta_magnitude_predecessor_recode_reflect mb - L19
specialize beta_magnitude_predecessor_recode_reflect mc - L20
specialize beta_magnitude_predecessor_recode_reflect rb - L21
specialize beta_magnitude_predecessor_recode_reflect rc - L22
specialize beta_magnitude_predecessor_recode_reflect h - L23
specialize beta_magnitude_predecessor_recode_reflect h - L24
specialize beta_magnitude_predecessor_recode_reflect i - L25
specialize beta_magnitude_predecessor_recode_reflect j - L26
apply beta_magnitude_predecessor_recode_reflect
04Use earlier factsL27–30
05Establish hrange_iL31–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hrange.
- L31
have hrange_i : ∃ 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 - L32
specialize hrange i - L33
apply hrange - L34
exact hi
06Separate the logical casesL35–37
07Establish hmagnitude_eqL38–46
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
08Establish hjL47–49
Establish this local claim before using it. It is not an additional assumption.
09Establish hcanonicalL50–53
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hhalf.
- L50
have hcanonical : BetaAt(b,c,j,1 + j)Definitions: BetaAt(b,c,j,1 + j)Original native command in the exact edition - L51
specialize hhalf j - L52
apply hhalf - L53
exact hj
10Establish hvL54–62
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
11Establish honeL63–70
Original defined command ledger · 77 lines
- 0001
intro b - 0002
intro c - 0003
intro mb - 0004
intro mc - 0005
intro rb - 0006
intro rc - 0007
intro h - 0008
intro hhalf - 0009
intro hrange - 0010
intro hrecode - 0011
intro i - 0012
intro j - 0013
intro v - 0014
intro hi - 0015
intro hmap - 0016
intro hsource - 0017
have hmagnitude_succ : BetaAt(mb,mc,i,S j)Exact native replay line
have hmagnitude_succ : ((exists gsp_beta_height_ges_proof_magnitude_succ. gsp_beta_height_ges_proof_magnitude_succ + S (S j) = S ((S (i)) * mc)) /\ exists gsp_beta_quotient_ges_proof_magnitude_succ. mb = gsp_beta_quotient_ges_proof_magnitude_succ * S ((S (i)) * mc) + (S j)) - 0018
specialize beta_magnitude_predecessor_recode_reflect mb - 0019
specialize beta_magnitude_predecessor_recode_reflect mc - 0020
specialize beta_magnitude_predecessor_recode_reflect rb - 0021
specialize beta_magnitude_predecessor_recode_reflect rc - 0022
specialize beta_magnitude_predecessor_recode_reflect h - 0023
specialize beta_magnitude_predecessor_recode_reflect h - 0024
specialize beta_magnitude_predecessor_recode_reflect i - 0025
specialize beta_magnitude_predecessor_recode_reflect j - 0026
apply beta_magnitude_predecessor_recode_reflect - 0027
exact hrange - 0028
exact hrecode - 0029
exact hi - 0030
exact hmap - 0031
have hrange_i : ∃ m. BetaAt(mb,mc,i,m) ∧ (Lt(0,m) ∧ Le(m,h))Exact native replay line
have hrange_i : exists m. (((exists ff_h_ges_proof_range_entry. ff_h_ges_proof_range_entry + S (m) = S ((S (i)) * mc)) /\ exists ff_q_ges_proof_range_entry. mb = ff_q_ges_proof_range_entry * S ((S (i)) * mc) + (m))) /\ ((exists g. g + S 0 = m) /\ exists g. g + m = h) - 0032
specialize hrange i - 0033
apply hrange - 0034
exact hi - 0035
cases hrange_i - 0036
cases hrange_i_witness - 0037
cases hrange_i_witness_right - 0038
have hmagnitude_eq : x = S j - 0039
specialize beta_at_unique mb - 0040
specialize beta_at_unique mc - 0041
specialize beta_at_unique i - 0042
specialize beta_at_unique x - 0043
specialize beta_at_unique (S j) - 0044
apply beta_at_unique - 0045
exact hrange_i_witness_left - 0046
exact hmagnitude_succ - 0047
have hj : Lt(j,h)Exact native replay line
have hj : exists g. g + S j = h - 0048
rewrite <- hmagnitude_eq - 0049
exact hrange_i_witness_right_right - 0050
have hcanonical : BetaAt(b,c,j,1 + j)Exact native replay line
have hcanonical : ((exists gsp_beta_height_ges_proof_canonical. gsp_beta_height_ges_proof_canonical + S (1 + j) = S ((S (j)) * c)) /\ exists gsp_beta_quotient_ges_proof_canonical. b = gsp_beta_quotient_ges_proof_canonical * S ((S (j)) * c) + (1 + j)) - 0051
specialize hhalf j - 0052
apply hhalf - 0053
exact hj - 0054
have hv : v = 1 + j - 0055
specialize beta_at_unique b - 0056
specialize beta_at_unique c - 0057
specialize beta_at_unique j - 0058
specialize beta_at_unique v - 0059
specialize beta_at_unique (1 + j) - 0060
apply beta_at_unique - 0061
exact hsource - 0062
exact hcanonical - 0063
have hone : 1 + j = S j - 0064
specialize add_succ_left 0 - 0065
specialize add_succ_left j - 0066
trans S (0 + j) - 0067
exact add_succ_left - 0068
congr - 0069
specialize zero_add j - 0070
exact zero_add - 0071
have hv_succ : v = S j - 0072
trans 1 + j - 0073
exact hv - 0074
exact hone - 0075
rewrite <- hv_succ at hmagnitude_succ - 0076
rewrite <- hv_succ at hmagnitude_succ - 0077
exact hmagnitude_succ