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. ∀ X. ∀ M. Range(b,c,1,h) → (∀ x. Lt(x,h) → ∃ y. BetaAt(mb,mc,x,y) ∧ (Lt(0,y) ∧ Le(y,h))) → InjectivePrefix(mb,mc,h) → (∀ x. ∀ y. Lt(x,h) → BetaAt(mb,mc,x,S y) → BetaAt(rb,rc,x,y)) → Sum(b,c,h,X) → Sum(mb,mc,h,M) → X = MEvery 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
11 occurrences
In local proof propositions
6 occurrences
Exact expanded native-PA statement
forall b c mb mc rb rc h X M. (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 fp_i_ges_magnitude_injective fp_j_ges_magnitude_injective fp_value_ges_magnitude_injective. (exists fp_gap_ges_magnitude_injective_i. fp_gap_ges_magnitude_injective_i + S fp_i_ges_magnitude_injective = h) -> (exists fp_gap_ges_magnitude_injective_j. fp_gap_ges_magnitude_injective_j + S fp_j_ges_magnitude_injective = h) -> (((exists ff_h_ges_magnitude_injective_left. ff_h_ges_magnitude_injective_left + S (fp_value_ges_magnitude_injective) = S ((S (fp_i_ges_magnitude_injective)) * mc)) /\ exists ff_q_ges_magnitude_injective_left. mb = ff_q_ges_magnitude_injective_left * S ((S (fp_i_ges_magnitude_injective)) * mc) + (fp_value_ges_magnitude_injective))) -> (((exists ff_h_ges_magnitude_injective_right. ff_h_ges_magnitude_injective_right + S (fp_value_ges_magnitude_injective) = S ((S (fp_j_ges_magnitude_injective)) * mc)) /\ exists ff_q_ges_magnitude_injective_right. mb = ff_q_ges_magnitude_injective_right * S ((S (fp_j_ges_magnitude_injective)) * mc) + (fp_value_ges_magnitude_injective))) -> fp_i_ges_magnitude_injective = fp_j_ges_magnitude_injective) -> (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)))) -> (exists ff_u_ges_half_sum ff_v_ges_half_sum. ((((exists ff_h_ges_half_sum_start. ff_h_ges_half_sum_start + S (0) = S ((S (0)) * ff_v_ges_half_sum)) /\ exists ff_q_ges_half_sum_start. ff_u_ges_half_sum = ff_q_ges_half_sum_start * S ((S (0)) * ff_v_ges_half_sum) + (0))) /\ ((((exists ff_h_ges_half_sum_terminal. ff_h_ges_half_sum_terminal + S (X) = S ((S (h)) * ff_v_ges_half_sum)) /\ exists ff_q_ges_half_sum_terminal. ff_u_ges_half_sum = ff_q_ges_half_sum_terminal * S ((S (h)) * ff_v_ges_half_sum) + (X))) /\ forall ff_i_ges_half_sum. (exists ff_lt_ges_half_sum_bound. ff_lt_ges_half_sum_bound + S ff_i_ges_half_sum = h) -> exists ff_a_ges_half_sum ff_r_ges_half_sum ff_s_ges_half_sum. ((((exists ff_h_ges_half_sum_summand. ff_h_ges_half_sum_summand + S (ff_a_ges_half_sum) = S ((S (ff_i_ges_half_sum)) * c)) /\ exists ff_q_ges_half_sum_summand. b = ff_q_ges_half_sum_summand * S ((S (ff_i_ges_half_sum)) * c) + (ff_a_ges_half_sum))) /\ ((((exists ff_h_ges_half_sum_partial. ff_h_ges_half_sum_partial + S (ff_r_ges_half_sum) = S ((S (ff_i_ges_half_sum)) * ff_v_ges_half_sum)) /\ exists ff_q_ges_half_sum_partial. ff_u_ges_half_sum = ff_q_ges_half_sum_partial * S ((S (ff_i_ges_half_sum)) * ff_v_ges_half_sum) + (ff_r_ges_half_sum))) /\ ((((exists ff_h_ges_half_sum_successor. ff_h_ges_half_sum_successor + S (ff_s_ges_half_sum) = S ((S (S ff_i_ges_half_sum)) * ff_v_ges_half_sum)) /\ exists ff_q_ges_half_sum_successor. ff_u_ges_half_sum = ff_q_ges_half_sum_successor * S ((S (S ff_i_ges_half_sum)) * ff_v_ges_half_sum) + (ff_s_ges_half_sum))) /\ ff_s_ges_half_sum = ff_r_ges_half_sum + ff_a_ges_half_sum)))))) -> (exists ff_u_ges_magnitude_sum ff_v_ges_magnitude_sum. ((((exists ff_h_ges_magnitude_sum_start. ff_h_ges_magnitude_sum_start + S (0) = S ((S (0)) * ff_v_ges_magnitude_sum)) /\ exists ff_q_ges_magnitude_sum_start. ff_u_ges_magnitude_sum = ff_q_ges_magnitude_sum_start * S ((S (0)) * ff_v_ges_magnitude_sum) + (0))) /\ ((((exists ff_h_ges_magnitude_sum_terminal. ff_h_ges_magnitude_sum_terminal + S (M) = S ((S (h)) * ff_v_ges_magnitude_sum)) /\ exists ff_q_ges_magnitude_sum_terminal. ff_u_ges_magnitude_sum = ff_q_ges_magnitude_sum_terminal * S ((S (h)) * ff_v_ges_magnitude_sum) + (M))) /\ forall ff_i_ges_magnitude_sum. (exists ff_lt_ges_magnitude_sum_bound. ff_lt_ges_magnitude_sum_bound + S ff_i_ges_magnitude_sum = h) -> exists ff_a_ges_magnitude_sum ff_r_ges_magnitude_sum ff_s_ges_magnitude_sum. ((((exists ff_h_ges_magnitude_sum_summand. ff_h_ges_magnitude_sum_summand + S (ff_a_ges_magnitude_sum) = S ((S (ff_i_ges_magnitude_sum)) * mc)) /\ exists ff_q_ges_magnitude_sum_summand. mb = ff_q_ges_magnitude_sum_summand * S ((S (ff_i_ges_magnitude_sum)) * mc) + (ff_a_ges_magnitude_sum))) /\ ((((exists ff_h_ges_magnitude_sum_partial. ff_h_ges_magnitude_sum_partial + S (ff_r_ges_magnitude_sum) = S ((S (ff_i_ges_magnitude_sum)) * ff_v_ges_magnitude_sum)) /\ exists ff_q_ges_magnitude_sum_partial. ff_u_ges_magnitude_sum = ff_q_ges_magnitude_sum_partial * S ((S (ff_i_ges_magnitude_sum)) * ff_v_ges_magnitude_sum) + (ff_r_ges_magnitude_sum))) /\ ((((exists ff_h_ges_magnitude_sum_successor. ff_h_ges_magnitude_sum_successor + S (ff_s_ges_magnitude_sum) = S ((S (S ff_i_ges_magnitude_sum)) * ff_v_ges_magnitude_sum)) /\ exists ff_q_ges_magnitude_sum_successor. ff_u_ges_magnitude_sum = ff_q_ges_magnitude_sum_successor * S ((S (S ff_i_ges_magnitude_sum)) * ff_v_ges_magnitude_sum) + (ff_s_ges_magnitude_sum))) /\ ff_s_ges_magnitude_sum = ff_r_ges_magnitude_sum + ff_a_ges_magnitude_sum)))))) -> X = MProof neighborhood
Direct theorem prerequisites
PA007S beta_magnitude_predecessor_recode_bounded PA007U beta_magnitude_predecessor_recode_injective PA00CS beta_magnitude_predecessor_recode_aligned_half_range PA00CX beta_sum_permutation_invariantDirect 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–15
03Establish hboundedL16–24
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta magnitude predecessor recode bounded.
- L16
have hbounded : BoundedPrefix(rb,rc,h)Definitions: BoundedPrefix(rb,rc,h)Original native command in the exact edition - L17
specialize beta_magnitude_predecessor_recode_bounded mb - L18
specialize beta_magnitude_predecessor_recode_bounded mc - L19
specialize beta_magnitude_predecessor_recode_bounded rb - L20
specialize beta_magnitude_predecessor_recode_bounded rc - L21
specialize beta_magnitude_predecessor_recode_bounded h - L22
apply beta_magnitude_predecessor_recode_bounded - L23
exact hrange - L24
exact hrecode
04Establish hrecode_injectiveL25–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta magnitude predecessor recode injective.
- L25
have hrecode_injective : InjectivePrefix(rb,rc,h)Definitions: InjectivePrefix(rb,rc,h)Original native command in the exact edition - L26
specialize beta_magnitude_predecessor_recode_injective mb - L27
specialize beta_magnitude_predecessor_recode_injective mc - L28
specialize beta_magnitude_predecessor_recode_injective rb - L29
specialize beta_magnitude_predecessor_recode_injective rc - L30
specialize beta_magnitude_predecessor_recode_injective h - L31
apply beta_magnitude_predecessor_recode_injective - L32
exact hrange - L33
exact hinjective - L34
exact hrecode
05Establish halignedL35–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta magnitude predecessor recode aligned half range.
- L35
have haligned : ∀ fpr_i_ges_alignment. ∀ fpr_j_ges_alignment. ∀ fpr_x_ges_alignment. Lt(fpr_i_ges_alignment,h) → BetaAt(rb,rc,fpr_i_ges_alignment,fpr_j_ges_alignment) → BetaAt(b,c,fpr_j_ges_alignment,fpr_x_ges_alignment) → BetaAt(mb,mc,fpr_i_ges_alignment,fpr_x_ges_alignment)Definitions: Lt(fpr_i_ges_alignment,h)BetaAt(rb,rc,fpr_i_ges_alignment,fpr_j_ges_alignment)BetaAt(b,c,fpr_j_ges_alignment,fpr_x_ges_alignment)BetaAt(mb,mc,fpr_i_ges_alignment,fpr_x_ges_alignment)Original native command in the exact edition - L36
specialize beta_magnitude_predecessor_recode_aligned_half_range b - L37
specialize beta_magnitude_predecessor_recode_aligned_half_range c - L38
specialize beta_magnitude_predecessor_recode_aligned_half_range mb - L39
specialize beta_magnitude_predecessor_recode_aligned_half_range mc - L40
specialize beta_magnitude_predecessor_recode_aligned_half_range rb - L41
specialize beta_magnitude_predecessor_recode_aligned_half_range rc - L42
specialize beta_magnitude_predecessor_recode_aligned_half_range h - L43
apply beta_magnitude_predecessor_recode_aligned_half_range - L44
exact hhalf
06Use earlier factsL45–54
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L45
exact hrange - L46
exact hrecode - L47
specialize beta_sum_permutation_invariant h - L48
specialize beta_sum_permutation_invariant rb - L49
specialize beta_sum_permutation_invariant rc - L50
specialize beta_sum_permutation_invariant b - L51
specialize beta_sum_permutation_invariant c - L52
specialize beta_sum_permutation_invariant mb - L53
specialize beta_sum_permutation_invariant mc - L54
specialize beta_sum_permutation_invariant X
Original defined command ledger · 61 lines
- 0001
intro b - 0002
intro c - 0003
intro mb - 0004
intro mc - 0005
intro rb - 0006
intro rc - 0007
intro h - 0008
intro X - 0009
intro M - 0010
intro hhalf - 0011
intro hrange - 0012
intro hinjective - 0013
intro hrecode - 0014
intro hhalf_sum - 0015
intro hmagnitude_sum - 0016
have hbounded : BoundedPrefix(rb,rc,h)Exact native replay line
have hbounded : forall fp_i_ges_recode_bounded. (exists fp_gap_ges_recode_bounded_index. fp_gap_ges_recode_bounded_index + S fp_i_ges_recode_bounded = h) -> exists fp_value_ges_recode_bounded. ((((exists ff_h_ges_recode_bounded_entry. ff_h_ges_recode_bounded_entry + S (fp_value_ges_recode_bounded) = S ((S (fp_i_ges_recode_bounded)) * rc)) /\ exists ff_q_ges_recode_bounded_entry. rb = ff_q_ges_recode_bounded_entry * S ((S (fp_i_ges_recode_bounded)) * rc) + (fp_value_ges_recode_bounded))) /\ (exists fp_gap_ges_recode_bounded_value. fp_gap_ges_recode_bounded_value + S fp_value_ges_recode_bounded = h)) - 0017
specialize beta_magnitude_predecessor_recode_bounded mb - 0018
specialize beta_magnitude_predecessor_recode_bounded mc - 0019
specialize beta_magnitude_predecessor_recode_bounded rb - 0020
specialize beta_magnitude_predecessor_recode_bounded rc - 0021
specialize beta_magnitude_predecessor_recode_bounded h - 0022
apply beta_magnitude_predecessor_recode_bounded - 0023
exact hrange - 0024
exact hrecode - 0025
have hrecode_injective : InjectivePrefix(rb,rc,h)Exact native replay line
have hrecode_injective : forall fp_i_ges_recode_injective fp_j_ges_recode_injective fp_value_ges_recode_injective. (exists fp_gap_ges_recode_injective_i. fp_gap_ges_recode_injective_i + S fp_i_ges_recode_injective = h) -> (exists fp_gap_ges_recode_injective_j. fp_gap_ges_recode_injective_j + S fp_j_ges_recode_injective = h) -> (((exists ff_h_ges_recode_injective_left. ff_h_ges_recode_injective_left + S (fp_value_ges_recode_injective) = S ((S (fp_i_ges_recode_injective)) * rc)) /\ exists ff_q_ges_recode_injective_left. rb = ff_q_ges_recode_injective_left * S ((S (fp_i_ges_recode_injective)) * rc) + (fp_value_ges_recode_injective))) -> (((exists ff_h_ges_recode_injective_right. ff_h_ges_recode_injective_right + S (fp_value_ges_recode_injective) = S ((S (fp_j_ges_recode_injective)) * rc)) /\ exists ff_q_ges_recode_injective_right. rb = ff_q_ges_recode_injective_right * S ((S (fp_j_ges_recode_injective)) * rc) + (fp_value_ges_recode_injective))) -> fp_i_ges_recode_injective = fp_j_ges_recode_injective - 0026
specialize beta_magnitude_predecessor_recode_injective mb - 0027
specialize beta_magnitude_predecessor_recode_injective mc - 0028
specialize beta_magnitude_predecessor_recode_injective rb - 0029
specialize beta_magnitude_predecessor_recode_injective rc - 0030
specialize beta_magnitude_predecessor_recode_injective h - 0031
apply beta_magnitude_predecessor_recode_injective - 0032
exact hrange - 0033
exact hinjective - 0034
exact hrecode - 0035
have haligned : ∀ fpr_i_ges_alignment. ∀ fpr_j_ges_alignment. ∀ fpr_x_ges_alignment. Lt(fpr_i_ges_alignment,h) → BetaAt(rb,rc,fpr_i_ges_alignment,fpr_j_ges_alignment) → BetaAt(b,c,fpr_j_ges_alignment,fpr_x_ges_alignment) → BetaAt(mb,mc,fpr_i_ges_alignment,fpr_x_ges_alignment)Exact native replay line
have haligned : 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))) - 0036
specialize beta_magnitude_predecessor_recode_aligned_half_range b - 0037
specialize beta_magnitude_predecessor_recode_aligned_half_range c - 0038
specialize beta_magnitude_predecessor_recode_aligned_half_range mb - 0039
specialize beta_magnitude_predecessor_recode_aligned_half_range mc - 0040
specialize beta_magnitude_predecessor_recode_aligned_half_range rb - 0041
specialize beta_magnitude_predecessor_recode_aligned_half_range rc - 0042
specialize beta_magnitude_predecessor_recode_aligned_half_range h - 0043
apply beta_magnitude_predecessor_recode_aligned_half_range - 0044
exact hhalf - 0045
exact hrange - 0046
exact hrecode - 0047
specialize beta_sum_permutation_invariant h - 0048
specialize beta_sum_permutation_invariant rb - 0049
specialize beta_sum_permutation_invariant rc - 0050
specialize beta_sum_permutation_invariant b - 0051
specialize beta_sum_permutation_invariant c - 0052
specialize beta_sum_permutation_invariant mb - 0053
specialize beta_sum_permutation_invariant mc - 0054
specialize beta_sum_permutation_invariant X - 0055
specialize beta_sum_permutation_invariant M - 0056
apply beta_sum_permutation_invariant - 0057
exact hbounded - 0058
exact hrecode_injective - 0059
exact haligned - 0060
exact hhalf_sum - 0061
exact hmagnitude_sum