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. ∀ b. ∀ c. ∀ 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)) → Range(b,c,1,h) → ∀ 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
5 occurrences
Exact expanded native-PA statement
forall mb mc rb rc b c h. (forall gmp_index_product_magnitude_range. (exists gsp_lt_gap_product_magnitude_range_index_bound. gsp_lt_gap_product_magnitude_range_index_bound + S gmp_index_product_magnitude_range = h) -> exists gmp_magnitude_product_magnitude_range. ((((exists ff_h_gmp_product_magnitude_range_decoded. ff_h_gmp_product_magnitude_range_decoded + S (gmp_magnitude_product_magnitude_range) = S ((S (gmp_index_product_magnitude_range)) * mc)) /\ exists ff_q_gmp_product_magnitude_range_decoded. mb = ff_q_gmp_product_magnitude_range_decoded * S ((S (gmp_index_product_magnitude_range)) * mc) + (gmp_magnitude_product_magnitude_range))) /\ ((exists gsp_lt_gap_product_magnitude_range_positive. gsp_lt_gap_product_magnitude_range_positive + S 0 = gmp_magnitude_product_magnitude_range) /\ (exists gsp_le_gap_product_magnitude_range_bounded. gsp_le_gap_product_magnitude_range_bounded + gmp_magnitude_product_magnitude_range = h)))) -> (forall gmp_index_product_predecessor_recode gmp_predecessor_product_predecessor_recode. (exists gsp_lt_gap_product_predecessor_recode_index_bound. gsp_lt_gap_product_predecessor_recode_index_bound + S gmp_index_product_predecessor_recode = h) -> (((exists gsp_beta_height_gmp_product_predecessor_recode_source. gsp_beta_height_gmp_product_predecessor_recode_source + S (S gmp_predecessor_product_predecessor_recode) = S ((S (gmp_index_product_predecessor_recode)) * mc)) /\ exists gsp_beta_quotient_gmp_product_predecessor_recode_source. mb = gsp_beta_quotient_gmp_product_predecessor_recode_source * S ((S (gmp_index_product_predecessor_recode)) * mc) + (S gmp_predecessor_product_predecessor_recode))) -> (((exists ff_h_gmp_product_predecessor_recode_target. ff_h_gmp_product_predecessor_recode_target + S (gmp_predecessor_product_predecessor_recode) = S ((S (gmp_index_product_predecessor_recode)) * rc)) /\ exists ff_q_gmp_product_predecessor_recode_target. rb = ff_q_gmp_product_predecessor_recode_target * S ((S (gmp_index_product_predecessor_recode)) * rc) + (gmp_predecessor_product_predecessor_recode)))) -> (forall gsp_range_index_product_canonical_half_range. (exists gsp_lt_gap_product_canonical_half_range_range_bound. gsp_lt_gap_product_canonical_half_range_range_bound + S gsp_range_index_product_canonical_half_range = h) -> (((exists gsp_beta_height_product_canonical_half_range_range_entry. gsp_beta_height_product_canonical_half_range_range_entry + S (1 + gsp_range_index_product_canonical_half_range) = S ((S (gsp_range_index_product_canonical_half_range)) * c)) /\ exists gsp_beta_quotient_product_canonical_half_range_range_entry. b = gsp_beta_quotient_product_canonical_half_range_range_entry * S ((S (gsp_range_index_product_canonical_half_range)) * c) + (1 + gsp_range_index_product_canonical_half_range)))) -> (forall fpr_i_product_alignment fpr_j_product_alignment fpr_x_product_alignment. (exists fpr_h_product_alignment. fpr_h_product_alignment + S fpr_i_product_alignment = h) -> (((exists ff_h_product_alignment_map. ff_h_product_alignment_map + S (fpr_j_product_alignment) = S ((S (fpr_i_product_alignment)) * rc)) /\ exists ff_q_product_alignment_map. rb = ff_q_product_alignment_map * S ((S (fpr_i_product_alignment)) * rc) + (fpr_j_product_alignment))) -> (((exists ff_h_product_alignment_source. ff_h_product_alignment_source + S (fpr_x_product_alignment) = S ((S (fpr_j_product_alignment)) * c)) /\ exists ff_q_product_alignment_source. b = ff_q_product_alignment_source * S ((S (fpr_j_product_alignment)) * c) + (fpr_x_product_alignment))) -> (((exists ff_h_product_alignment_target. ff_h_product_alignment_target + S (fpr_x_product_alignment) = S ((S (fpr_i_product_alignment)) * mc)) /\ exists ff_q_product_alignment_target. mb = ff_q_product_alignment_target * S ((S (fpr_i_product_alignment)) * mc) + (fpr_x_product_alignment))))Proof neighborhood
Direct theorem prerequisites
PA007S beta_magnitude_predecessor_recode_bounded PA007T beta_magnitude_predecessor_recode_reflect PA002F beta_at_unique PA0032 beta_range_entry_eq 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 (6)
01Fix variables and assumptionsL1–10
02Establish hboundedL11–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta magnitude predecessor recode bounded.
- L11
have hbounded : BoundedPrefix(rb,rc,h)Definitions: BoundedPrefix(rb,rc,h)Original native command in the exact edition - L12
specialize beta_magnitude_predecessor_recode_bounded mb - L13
specialize beta_magnitude_predecessor_recode_bounded mc - L14
specialize beta_magnitude_predecessor_recode_bounded rb - L15
specialize beta_magnitude_predecessor_recode_bounded rc - L16
specialize beta_magnitude_predecessor_recode_bounded h - L17
apply beta_magnitude_predecessor_recode_bounded - L18
exact hrange - L19
exact hrecode - L20
intro i
03Fix variables and assumptionsL21–25
04Establish hjdataL26–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hbounded.
- L26
have hjdata : ∃ y. BetaAt(rb,rc,i,y) ∧ Lt(y,h)Definitions: BetaAt(rb,rc,i,y)Lt(y,h)Original native command in the exact edition - L27
specialize hbounded i - L28
apply hbounded - L29
exact hi
05Separate the logical casesL30–31
06Establish hjyL32–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
07Establish hjL41–43
Establish this local claim before using it. It is not an additional assumption.
08Establish hmagnitudeL44–53
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta magnitude predecessor recode reflect.
- L44
have hmagnitude : BetaAt(mb,mc,i,S j)Definitions: BetaAt(mb,mc,i,S j)Original native command in the exact edition - L45
specialize beta_magnitude_predecessor_recode_reflect mb - L46
specialize beta_magnitude_predecessor_recode_reflect mc - L47
specialize beta_magnitude_predecessor_recode_reflect rb - L48
specialize beta_magnitude_predecessor_recode_reflect rc - L49
specialize beta_magnitude_predecessor_recode_reflect h - L50
specialize beta_magnitude_predecessor_recode_reflect h - L51
specialize beta_magnitude_predecessor_recode_reflect i - L52
specialize beta_magnitude_predecessor_recode_reflect j - L53
apply beta_magnitude_predecessor_recode_reflect
09Use earlier factsL54–57
10Establish hxrawL58–67
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta range entry eq.
11Use earlier factsL68–68
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L68
exact hsource
12Establish honeL69–76
Original defined command ledger · 83 lines
- 0001
intro mb - 0002
intro mc - 0003
intro rb - 0004
intro rc - 0005
intro b - 0006
intro c - 0007
intro h - 0008
intro hrange - 0009
intro hrecode - 0010
intro hhalf - 0011
have hbounded : BoundedPrefix(rb,rc,h)Exact native replay line
have hbounded : forall fp_i_product_predecessor_bounded. (exists fp_gap_product_predecessor_bounded_index. fp_gap_product_predecessor_bounded_index + S fp_i_product_predecessor_bounded = h) -> exists fp_value_product_predecessor_bounded. ((((exists ff_h_product_predecessor_bounded_entry. ff_h_product_predecessor_bounded_entry + S (fp_value_product_predecessor_bounded) = S ((S (fp_i_product_predecessor_bounded)) * rc)) /\ exists ff_q_product_predecessor_bounded_entry. rb = ff_q_product_predecessor_bounded_entry * S ((S (fp_i_product_predecessor_bounded)) * rc) + (fp_value_product_predecessor_bounded))) /\ (exists fp_gap_product_predecessor_bounded_value. fp_gap_product_predecessor_bounded_value + S fp_value_product_predecessor_bounded = h)) - 0012
specialize beta_magnitude_predecessor_recode_bounded mb - 0013
specialize beta_magnitude_predecessor_recode_bounded mc - 0014
specialize beta_magnitude_predecessor_recode_bounded rb - 0015
specialize beta_magnitude_predecessor_recode_bounded rc - 0016
specialize beta_magnitude_predecessor_recode_bounded h - 0017
apply beta_magnitude_predecessor_recode_bounded - 0018
exact hrange - 0019
exact hrecode - 0020
intro i - 0021
intro j - 0022
intro x - 0023
intro hi - 0024
intro hmap - 0025
intro hsource - 0026
have hjdata : ∃ y. BetaAt(rb,rc,i,y) ∧ Lt(y,h)Exact native replay line
have hjdata : exists y. ((((exists ff_h_product_alignment_bounded_entry. ff_h_product_alignment_bounded_entry + S (y) = S ((S (i)) * rc)) /\ exists ff_q_product_alignment_bounded_entry. rb = ff_q_product_alignment_bounded_entry * S ((S (i)) * rc) + (y))) /\ (exists gsp_lt_gap_product_alignment_bounded_value. gsp_lt_gap_product_alignment_bounded_value + S y = h)) - 0027
specialize hbounded i - 0028
apply hbounded - 0029
exact hi - 0030
cases hjdata - 0031
cases hjdata_witness - 0032
have hjy : j = x1 - 0033
specialize beta_at_unique rb - 0034
specialize beta_at_unique rc - 0035
specialize beta_at_unique i - 0036
specialize beta_at_unique j - 0037
specialize beta_at_unique x1 - 0038
apply beta_at_unique - 0039
exact hmap - 0040
exact hjdata_witness_left - 0041
have hj : Lt(j,h)Exact native replay line
have hj : exists gsp_lt_gap_product_alignment_j_bound. gsp_lt_gap_product_alignment_j_bound + S j = h - 0042
rewrite hjy - 0043
exact hjdata_witness_right - 0044
have hmagnitude : BetaAt(mb,mc,i,S j)Exact native replay line
have hmagnitude : ((exists gsp_beta_height_product_alignment_magnitude_successor. gsp_beta_height_product_alignment_magnitude_successor + S (S j) = S ((S (i)) * mc)) /\ exists gsp_beta_quotient_product_alignment_magnitude_successor. mb = gsp_beta_quotient_product_alignment_magnitude_successor * S ((S (i)) * mc) + (S j)) - 0045
specialize beta_magnitude_predecessor_recode_reflect mb - 0046
specialize beta_magnitude_predecessor_recode_reflect mc - 0047
specialize beta_magnitude_predecessor_recode_reflect rb - 0048
specialize beta_magnitude_predecessor_recode_reflect rc - 0049
specialize beta_magnitude_predecessor_recode_reflect h - 0050
specialize beta_magnitude_predecessor_recode_reflect h - 0051
specialize beta_magnitude_predecessor_recode_reflect i - 0052
specialize beta_magnitude_predecessor_recode_reflect j - 0053
apply beta_magnitude_predecessor_recode_reflect - 0054
exact hrange - 0055
exact hrecode - 0056
exact hi - 0057
exact hmap - 0058
have hxraw : x = 1 + j - 0059
specialize beta_range_entry_eq b - 0060
specialize beta_range_entry_eq c - 0061
specialize beta_range_entry_eq 1 - 0062
specialize beta_range_entry_eq h - 0063
specialize beta_range_entry_eq j - 0064
specialize beta_range_entry_eq x - 0065
apply beta_range_entry_eq - 0066
exact hhalf - 0067
exact hj - 0068
exact hsource - 0069
have hone : 1 + j = S j - 0070
trans S (0 + j) - 0071
specialize add_succ_left 0 - 0072
specialize add_succ_left j - 0073
exact add_succ_left - 0074
congr - 0075
specialize zero_add j - 0076
exact zero_add - 0077
have hxsucc : x = S j - 0078
trans 1 + j - 0079
exact hxraw - 0080
exact hone - 0081
rewrite hxsucc - 0082
rewrite hxsucc - 0083
exact hmagnitude