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. ∀ sb. ∀ sc. ∀ tb. ∀ tc. ∀ l. ∀ m. ∀ s. (∀ x. ∀ y. ∀ z. ∀ n. Lt(x,l) → BetaAt(mb,mc,x,y) → BetaAt(sb,sc,x,z) → BetaAt(tb,tc,x,n) → n = y · z) → BetaAt(mb,mc,l,m) → BetaAt(sb,sc,l,s) → ∃ x. ∃ y. ∀ z. ∀ n. ∀ k. ∀ i. Lt(z,S l) → BetaAt(mb,mc,z,n) → BetaAt(sb,sc,z,k) → BetaAt(x,y,z,i) → i = n · kEvery 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
4 occurrences
Exact expanded native-PA statement
forall mb mc sb sc tb tc l m s. (forall fpmp_index_recode_before fpmp_left_recode_before fpmp_right_recode_before fpmp_target_recode_before. (exists fpmp_gap_recode_before. fpmp_gap_recode_before + S fpmp_index_recode_before = l) -> (((exists ff_h_fpmp_recode_before_left. ff_h_fpmp_recode_before_left + S (fpmp_left_recode_before) = S ((S (fpmp_index_recode_before)) * mc)) /\ exists ff_q_fpmp_recode_before_left. mb = ff_q_fpmp_recode_before_left * S ((S (fpmp_index_recode_before)) * mc) + (fpmp_left_recode_before))) -> (((exists ff_h_fpmp_recode_before_right. ff_h_fpmp_recode_before_right + S (fpmp_right_recode_before) = S ((S (fpmp_index_recode_before)) * sc)) /\ exists ff_q_fpmp_recode_before_right. sb = ff_q_fpmp_recode_before_right * S ((S (fpmp_index_recode_before)) * sc) + (fpmp_right_recode_before))) -> (((exists ff_h_fpmp_recode_before_target. ff_h_fpmp_recode_before_target + S (fpmp_target_recode_before) = S ((S (fpmp_index_recode_before)) * tc)) /\ exists ff_q_fpmp_recode_before_target. tb = ff_q_fpmp_recode_before_target * S ((S (fpmp_index_recode_before)) * tc) + (fpmp_target_recode_before))) -> fpmp_target_recode_before = fpmp_left_recode_before * fpmp_right_recode_before) -> (((exists ff_h_recode_left_last. ff_h_recode_left_last + S (m) = S ((S (l)) * mc)) /\ exists ff_q_recode_left_last. mb = ff_q_recode_left_last * S ((S (l)) * mc) + (m))) -> (((exists ff_h_recode_right_last. ff_h_recode_right_last + S (s) = S ((S (l)) * sc)) /\ exists ff_q_recode_right_last. sb = ff_q_recode_right_last * S ((S (l)) * sc) + (s))) -> exists z d. (forall fpmp_index_recode_after fpmp_left_recode_after fpmp_right_recode_after fpmp_target_recode_after. (exists fpmp_gap_recode_after. fpmp_gap_recode_after + S fpmp_index_recode_after = S l) -> (((exists ff_h_fpmp_recode_after_left. ff_h_fpmp_recode_after_left + S (fpmp_left_recode_after) = S ((S (fpmp_index_recode_after)) * mc)) /\ exists ff_q_fpmp_recode_after_left. mb = ff_q_fpmp_recode_after_left * S ((S (fpmp_index_recode_after)) * mc) + (fpmp_left_recode_after))) -> (((exists ff_h_fpmp_recode_after_right. ff_h_fpmp_recode_after_right + S (fpmp_right_recode_after) = S ((S (fpmp_index_recode_after)) * sc)) /\ exists ff_q_fpmp_recode_after_right. sb = ff_q_fpmp_recode_after_right * S ((S (fpmp_index_recode_after)) * sc) + (fpmp_right_recode_after))) -> (((exists ff_h_fpmp_recode_after_target. ff_h_fpmp_recode_after_target + S (fpmp_target_recode_after) = S ((S (fpmp_index_recode_after)) * d)) /\ exists ff_q_fpmp_recode_after_target. z = ff_q_fpmp_recode_after_target * S ((S (fpmp_index_recode_after)) * d) + (fpmp_target_recode_after))) -> fpmp_target_recode_after = fpmp_left_recode_after * fpmp_right_recode_after)Proof neighborhood
Direct theorem prerequisites
PA002X beta_prefix_extend PA003D finite_lt_succ_eq_or_lt PA0029 beta_at_exists PA002F beta_at_uniqueDirect 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–12
03Use earlier factsL13–16
04Separate the logical casesL17–19
05Construct an explicit witnessL20–21
06Fix variables and assumptionsL22–29
07Establish hsplitL30–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
08Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
cases hsplit
09Calculate and transport equalitiesL36–41
10Establish hmaL42–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
11Establish hsbL51–59
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
12Establish happendedL60–61
Establish this local claim before using it. It is not an additional assumption.
- L60
have happended : BetaAt(x,x1,l,m · s)Definitions: BetaAt(x,x1,l,m · s)Original native command in the exact edition - L61
exact beta_prefix_extend_witness_witness_left
13Establish ht_productL62–71
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
14Use earlier factsL72–72
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L72
exact ht_product
15Calculate and transport equalitiesL73–73
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L73
congr
16Use earlier factsL74–75
17Establish hold_existsL76–80
Establish this local claim before using it. It is not an additional assumption.
- L76
have hold_exists : ∃ u. BetaAt(tb,tc,i,u)Definitions: BetaAt(tb,tc,i,u)Original native command in the exact edition - L77
specialize beta_at_exists tb - L78
specialize beta_at_exists tc - L79
specialize beta_at_exists i - L80
exact beta_at_exists
18Separate the logical casesL81–81
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L81
cases hold_exists
19Establish hnew_oldL82–87
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix extend witness witness right.
- L82
have hnew_old : BetaAt(x,x1,i,x2)Definitions: BetaAt(x,x1,i,x2)Original native command in the exact edition - L83
specialize beta_prefix_extend_witness_witness_right i - L84
specialize beta_prefix_extend_witness_witness_right x2 - L85
apply beta_prefix_extend_witness_witness_right - L86
exact hsplit_right - L87
exact hold_exists_witness
20Establish htxL88–96
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
21Establish hold_productL97–106
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply haligned.
22Calculate and transport equalitiesL107–107
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L107
trans x2
Original defined command ledger · 109 lines
- 0001
intro mb - 0002
intro mc - 0003
intro sb - 0004
intro sc - 0005
intro tb - 0006
intro tc - 0007
intro l - 0008
intro m - 0009
intro s - 0010
intro haligned - 0011
intro hm_last - 0012
intro hs_last - 0013
specialize beta_prefix_extend l - 0014
specialize beta_prefix_extend tb - 0015
specialize beta_prefix_extend tc - 0016
specialize beta_prefix_extend (m * s) - 0017
cases beta_prefix_extend - 0018
cases beta_prefix_extend_witness - 0019
cases beta_prefix_extend_witness_witness - 0020
exists x - 0021
exists x1 - 0022
intro i - 0023
intro a - 0024
intro b - 0025
intro t - 0026
intro hi - 0027
intro ha - 0028
intro hb - 0029
intro ht - 0030
have hsplit : i = l ∨ Lt(i,l)Exact native replay line
have hsplit : i = l \/ exists gap. gap + S i = l - 0031
specialize finite_lt_succ_eq_or_lt l - 0032
specialize finite_lt_succ_eq_or_lt i - 0033
apply finite_lt_succ_eq_or_lt - 0034
exact hi - 0035
cases hsplit - 0036
rewrite hsplit_left at ha - 0037
rewrite hsplit_left at ha - 0038
rewrite hsplit_left at hb - 0039
rewrite hsplit_left at hb - 0040
rewrite hsplit_left at ht - 0041
rewrite hsplit_left at ht - 0042
have hma : m = a - 0043
specialize beta_at_unique mb - 0044
specialize beta_at_unique mc - 0045
specialize beta_at_unique l - 0046
specialize beta_at_unique m - 0047
specialize beta_at_unique a - 0048
apply beta_at_unique - 0049
exact hm_last - 0050
exact ha - 0051
have hsb : s = b - 0052
specialize beta_at_unique sb - 0053
specialize beta_at_unique sc - 0054
specialize beta_at_unique l - 0055
specialize beta_at_unique s - 0056
specialize beta_at_unique b - 0057
apply beta_at_unique - 0058
exact hs_last - 0059
exact hb - 0060
have happended : BetaAt(x,x1,l,m · s)Exact native replay line
have happended : ((exists fpmr_height_recode_appended_product. fpmr_height_recode_appended_product + S (m * s) = S ((S (l)) * x1)) /\ exists fpmr_quotient_recode_appended_product. x = fpmr_quotient_recode_appended_product * S ((S (l)) * x1) + (m * s)) - 0061
exact beta_prefix_extend_witness_witness_left - 0062
have ht_product : t = m * s - 0063
specialize beta_at_unique x - 0064
specialize beta_at_unique x1 - 0065
specialize beta_at_unique l - 0066
specialize beta_at_unique t - 0067
specialize beta_at_unique (m * s) - 0068
apply beta_at_unique - 0069
exact ht - 0070
exact happended - 0071
trans m * s - 0072
exact ht_product - 0073
congr - 0074
exact hma - 0075
exact hsb - 0076
have hold_exists : ∃ u. BetaAt(tb,tc,i,u)Exact native replay line
have hold_exists : exists u. (((exists ff_h_recode_old_target_exists. ff_h_recode_old_target_exists + S (u) = S ((S (i)) * tc)) /\ exists ff_q_recode_old_target_exists. tb = ff_q_recode_old_target_exists * S ((S (i)) * tc) + (u))) - 0077
specialize beta_at_exists tb - 0078
specialize beta_at_exists tc - 0079
specialize beta_at_exists i - 0080
exact beta_at_exists - 0081
cases hold_exists - 0082
have hnew_old : BetaAt(x,x1,i,x2)Exact native replay line
have hnew_old : ((exists ff_h_recode_new_old_target_entry. ff_h_recode_new_old_target_entry + S (x2) = S ((S (i)) * x1)) /\ exists ff_q_recode_new_old_target_entry. x = ff_q_recode_new_old_target_entry * S ((S (i)) * x1) + (x2)) - 0083
specialize beta_prefix_extend_witness_witness_right i - 0084
specialize beta_prefix_extend_witness_witness_right x2 - 0085
apply beta_prefix_extend_witness_witness_right - 0086
exact hsplit_right - 0087
exact hold_exists_witness - 0088
have htx : t = x2 - 0089
specialize beta_at_unique x - 0090
specialize beta_at_unique x1 - 0091
specialize beta_at_unique i - 0092
specialize beta_at_unique t - 0093
specialize beta_at_unique x2 - 0094
apply beta_at_unique - 0095
exact ht - 0096
exact hnew_old - 0097
have hold_product : x2 = a * b - 0098
specialize haligned i - 0099
specialize haligned a - 0100
specialize haligned b - 0101
specialize haligned x2 - 0102
apply haligned - 0103
exact hsplit_right - 0104
exact ha - 0105
exact hb - 0106
exact hold_exists_witness - 0107
trans x2 - 0108
exact htx - 0109
exact hold_product