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. ∀ l. ∃ tb. ∃ tc. ∀ x. ∀ y. ∀ z. ∀ n. Lt(x,l) → BetaAt(mb,mc,x,y) → BetaAt(sb,sc,x,z) → BetaAt(tb,tc,x,n) → n = y · zEvery 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
4 occurrences
In local proof propositions
6 occurrences
Exact expanded native-PA statement
forall mb mc sb sc l. exists tb tc. (forall fpmp_index_recode_exists_result fpmp_left_recode_exists_result fpmp_right_recode_exists_result fpmp_target_recode_exists_result. (exists fpmp_gap_recode_exists_result. fpmp_gap_recode_exists_result + S fpmp_index_recode_exists_result = l) -> (((exists ff_h_fpmp_recode_exists_result_left. ff_h_fpmp_recode_exists_result_left + S (fpmp_left_recode_exists_result) = S ((S (fpmp_index_recode_exists_result)) * mc)) /\ exists ff_q_fpmp_recode_exists_result_left. mb = ff_q_fpmp_recode_exists_result_left * S ((S (fpmp_index_recode_exists_result)) * mc) + (fpmp_left_recode_exists_result))) -> (((exists ff_h_fpmp_recode_exists_result_right. ff_h_fpmp_recode_exists_result_right + S (fpmp_right_recode_exists_result) = S ((S (fpmp_index_recode_exists_result)) * sc)) /\ exists ff_q_fpmp_recode_exists_result_right. sb = ff_q_fpmp_recode_exists_result_right * S ((S (fpmp_index_recode_exists_result)) * sc) + (fpmp_right_recode_exists_result))) -> (((exists ff_h_fpmp_recode_exists_result_target. ff_h_fpmp_recode_exists_result_target + S (fpmp_target_recode_exists_result) = S ((S (fpmp_index_recode_exists_result)) * tc)) /\ exists ff_q_fpmp_recode_exists_result_target. tb = ff_q_fpmp_recode_exists_result_target * S ((S (fpmp_index_recode_exists_result)) * tc) + (fpmp_target_recode_exists_result))) -> fpmp_target_recode_exists_result = fpmp_left_recode_exists_result * fpmp_right_recode_exists_result)Proof neighborhood
Direct theorem prerequisites
PA0004 add_eq_zero_right PA0005 succ_ne_zero PA0029 beta_at_exists PA007K beta_pointwise_mul_prefix_extendDirect 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–4
02Induction on lL5–5
Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.
- L5
induction l
03Construct an explicit witnessL6–7
04Fix variables and assumptionsL8–15
05Separate the logical casesL16–17
06Establish hsiL18–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add eq zero right.
07Establish hpreviousL26–27
Establish this local claim before using it. It is not an additional assumption.
- L26
have hprevious : ∃ tb. ∃ tc. ∀ x. ∀ y. ∀ z. ∀ n. Lt(x,l) → BetaAt(mb,mc,x,y) → BetaAt(sb,sc,x,z) → BetaAt(tb,tc,x,n) → n = y · zDefinitions: Lt(x,l)BetaAt(mb,mc,x,y)BetaAt(sb,sc,x,z)BetaAt(tb,tc,x,n)Original native command in the exact edition - L27
exact IH
08Separate the logical casesL28–29
09Establish hleftL30–34
Establish this local claim before using it. It is not an additional assumption.
- L30
have hleft : ∃ m. BetaAt(mb,mc,l,m)Definitions: BetaAt(mb,mc,l,m)Original native command in the exact edition - L31
specialize beta_at_exists mb - L32
specialize beta_at_exists mc - L33
specialize beta_at_exists l - L34
exact beta_at_exists
10Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
cases hleft
11Establish hrightL36–40
Establish this local claim before using it. It is not an additional assumption.
- L36
have hright : ∃ s. BetaAt(sb,sc,l,s)Definitions: BetaAt(sb,sc,l,s)Original native command in the exact edition - L37
specialize beta_at_exists sb - L38
specialize beta_at_exists sc - L39
specialize beta_at_exists l - L40
exact beta_at_exists
12Separate the logical casesL41–41
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L41
cases hright
13Use earlier factsL42–51
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L42
specialize beta_pointwise_mul_prefix_extend mb - L43
specialize beta_pointwise_mul_prefix_extend mc - L44
specialize beta_pointwise_mul_prefix_extend sb - L45
specialize beta_pointwise_mul_prefix_extend sc - L46
specialize beta_pointwise_mul_prefix_extend x - L47
specialize beta_pointwise_mul_prefix_extend x1 - L48
specialize beta_pointwise_mul_prefix_extend l - L49
specialize beta_pointwise_mul_prefix_extend x2 - L50
specialize beta_pointwise_mul_prefix_extend x3 - L51
apply beta_pointwise_mul_prefix_extend
Original defined command ledger · 54 lines
- 0001
intro mb - 0002
intro mc - 0003
intro sb - 0004
intro sc - 0005
induction l - 0006
exists 0 - 0007
exists 0 - 0008
intro i - 0009
intro a - 0010
intro b - 0011
intro t - 0012
intro hi - 0013
intro ha - 0014
intro hb - 0015
intro ht - 0016
exfalso - 0017
cases hi - 0018
have hsi : S i = 0 - 0019
specialize add_eq_zero_right x - 0020
specialize add_eq_zero_right (S i) - 0021
apply add_eq_zero_right - 0022
exact hi_witness - 0023
specialize succ_ne_zero i - 0024
apply succ_ne_zero - 0025
exact hsi - 0026
have hprevious : ∃ tb. ∃ tc. ∀ x. ∀ y. ∀ z. ∀ n. Lt(x,l) → BetaAt(mb,mc,x,y) → BetaAt(sb,sc,x,z) → BetaAt(tb,tc,x,n) → n = y · zExact native replay line
have hprevious : exists tb tc. (forall fpmp_index_recode_exists_previous fpmp_left_recode_exists_previous fpmp_right_recode_exists_previous fpmp_target_recode_exists_previous. (exists fpmp_gap_recode_exists_previous. fpmp_gap_recode_exists_previous + S fpmp_index_recode_exists_previous = l) -> (((exists ff_h_fpmp_recode_exists_previous_left. ff_h_fpmp_recode_exists_previous_left + S (fpmp_left_recode_exists_previous) = S ((S (fpmp_index_recode_exists_previous)) * mc)) /\ exists ff_q_fpmp_recode_exists_previous_left. mb = ff_q_fpmp_recode_exists_previous_left * S ((S (fpmp_index_recode_exists_previous)) * mc) + (fpmp_left_recode_exists_previous))) -> (((exists ff_h_fpmp_recode_exists_previous_right. ff_h_fpmp_recode_exists_previous_right + S (fpmp_right_recode_exists_previous) = S ((S (fpmp_index_recode_exists_previous)) * sc)) /\ exists ff_q_fpmp_recode_exists_previous_right. sb = ff_q_fpmp_recode_exists_previous_right * S ((S (fpmp_index_recode_exists_previous)) * sc) + (fpmp_right_recode_exists_previous))) -> (((exists ff_h_fpmp_recode_exists_previous_target. ff_h_fpmp_recode_exists_previous_target + S (fpmp_target_recode_exists_previous) = S ((S (fpmp_index_recode_exists_previous)) * tc)) /\ exists ff_q_fpmp_recode_exists_previous_target. tb = ff_q_fpmp_recode_exists_previous_target * S ((S (fpmp_index_recode_exists_previous)) * tc) + (fpmp_target_recode_exists_previous))) -> fpmp_target_recode_exists_previous = fpmp_left_recode_exists_previous * fpmp_right_recode_exists_previous) - 0027
exact IH - 0028
cases hprevious - 0029
cases hprevious_witness - 0030
have hleft : ∃ m. BetaAt(mb,mc,l,m)Exact native replay line
have hleft : exists m. (((exists ff_h_recode_exists_left_last. ff_h_recode_exists_left_last + S (m) = S ((S (l)) * mc)) /\ exists ff_q_recode_exists_left_last. mb = ff_q_recode_exists_left_last * S ((S (l)) * mc) + (m))) - 0031
specialize beta_at_exists mb - 0032
specialize beta_at_exists mc - 0033
specialize beta_at_exists l - 0034
exact beta_at_exists - 0035
cases hleft - 0036
have hright : ∃ s. BetaAt(sb,sc,l,s)Exact native replay line
have hright : exists s. (((exists ff_h_recode_exists_right_last. ff_h_recode_exists_right_last + S (s) = S ((S (l)) * sc)) /\ exists ff_q_recode_exists_right_last. sb = ff_q_recode_exists_right_last * S ((S (l)) * sc) + (s))) - 0037
specialize beta_at_exists sb - 0038
specialize beta_at_exists sc - 0039
specialize beta_at_exists l - 0040
exact beta_at_exists - 0041
cases hright - 0042
specialize beta_pointwise_mul_prefix_extend mb - 0043
specialize beta_pointwise_mul_prefix_extend mc - 0044
specialize beta_pointwise_mul_prefix_extend sb - 0045
specialize beta_pointwise_mul_prefix_extend sc - 0046
specialize beta_pointwise_mul_prefix_extend x - 0047
specialize beta_pointwise_mul_prefix_extend x1 - 0048
specialize beta_pointwise_mul_prefix_extend l - 0049
specialize beta_pointwise_mul_prefix_extend x2 - 0050
specialize beta_pointwise_mul_prefix_extend x3 - 0051
apply beta_pointwise_mul_prefix_extend - 0052
exact hprevious_witness_witness - 0053
exact hleft_witness - 0054
exact hright_witness