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.
Exact expanded PA statement
forall b c a l n. (forall ff_i_repeatsum_repeat. (exists ff_lt_repeatsum_repeat_bound. ff_lt_repeatsum_repeat_bound + S ff_i_repeatsum_repeat = l) -> (((exists ff_h_repeatsum_repeat_decoded. ff_h_repeatsum_repeat_decoded + S (a) = S ((S (ff_i_repeatsum_repeat)) * c)) /\ exists ff_q_repeatsum_repeat_decoded. b = ff_q_repeatsum_repeat_decoded * S ((S (ff_i_repeatsum_repeat)) * c) + (a)))) -> (exists ff_u_repeatsum_sum ff_v_repeatsum_sum. ((((exists ff_h_repeatsum_sum_start. ff_h_repeatsum_sum_start + S (0) = S ((S (0)) * ff_v_repeatsum_sum)) /\ exists ff_q_repeatsum_sum_start. ff_u_repeatsum_sum = ff_q_repeatsum_sum_start * S ((S (0)) * ff_v_repeatsum_sum) + (0))) /\ ((((exists ff_h_repeatsum_sum_terminal. ff_h_repeatsum_sum_terminal + S (n) = S ((S (l)) * ff_v_repeatsum_sum)) /\ exists ff_q_repeatsum_sum_terminal. ff_u_repeatsum_sum = ff_q_repeatsum_sum_terminal * S ((S (l)) * ff_v_repeatsum_sum) + (n))) /\ forall ff_i_repeatsum_sum. (exists ff_lt_repeatsum_sum_bound. ff_lt_repeatsum_sum_bound + S ff_i_repeatsum_sum = l) -> exists ff_a_repeatsum_sum ff_r_repeatsum_sum ff_s_repeatsum_sum. ((((exists ff_h_repeatsum_sum_summand. ff_h_repeatsum_sum_summand + S (ff_a_repeatsum_sum) = S ((S (ff_i_repeatsum_sum)) * c)) /\ exists ff_q_repeatsum_sum_summand. b = ff_q_repeatsum_sum_summand * S ((S (ff_i_repeatsum_sum)) * c) + (ff_a_repeatsum_sum))) /\ ((((exists ff_h_repeatsum_sum_partial. ff_h_repeatsum_sum_partial + S (ff_r_repeatsum_sum) = S ((S (ff_i_repeatsum_sum)) * ff_v_repeatsum_sum)) /\ exists ff_q_repeatsum_sum_partial. ff_u_repeatsum_sum = ff_q_repeatsum_sum_partial * S ((S (ff_i_repeatsum_sum)) * ff_v_repeatsum_sum) + (ff_r_repeatsum_sum))) /\ ((((exists ff_h_repeatsum_sum_successor. ff_h_repeatsum_sum_successor + S (ff_s_repeatsum_sum) = S ((S (S ff_i_repeatsum_sum)) * ff_v_repeatsum_sum)) /\ exists ff_q_repeatsum_sum_successor. ff_u_repeatsum_sum = ff_q_repeatsum_sum_successor * S ((S (S ff_i_repeatsum_sum)) * ff_v_repeatsum_sum) + (ff_s_repeatsum_sum))) /\ ff_s_repeatsum_sum = ff_r_repeatsum_sum + ff_a_repeatsum_sum)))))) -> n = l * aStructural proof guide
Generated structural guide
A constant beta prefix has exact relational sum length times value.
Use the direct prerequisites beta_sum_zero, beta_sum_succ_decompose, le_succ, le_refl, beta_repeat_entry_eq, mul_zero_left, mul_succ_left as previously established PA formulas.
The proof proceeds by structural induction (1), case analysis (4), intermediate claims (5), equality transport (4).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA0047 beta_sum_zero PA003Y beta_sum_succ_decompose PA002O le_succ PA001A le_refl PA004C beta_repeat_entry_eq PA000D mul_zero_left PA000G mul_succ_leftDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v25 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
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 (7)
01Fix variables and assumptionsL1–3
02Induction on lL4–7
03Establish hnL8–17
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum zero.
04Fix variables and assumptionsL18–20
05Establish hdecompL21–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum succ decompose.
06Separate the logical casesL28–31
07Establish hprefix_repeatL32–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hrepeat.
- L32
have hprefix_repeat : forall ff_i_repeatsum_prefix_repeat. (exists ff_lt_repeatsum_prefix_repeat_bound. ff_lt_repeatsum_prefix_repeat_bound + S ff_i_repeatsum_prefix_repeat = l) -> (((exists ff_h_repeatsum_prefix_repeat_decoded. ff_h_repeatsum_prefix_repeat_decoded + S (a) = S ((S (ff_i_repeatsum_prefix_repeat)) * c)) /\ exists ff_q_repeatsum_prefix_repeat_decoded. b = ff_q_repeatsum_prefix_repeat_decoded * S ((S (ff_i_repeatsum_prefix_repeat)) * c) + (a))) - L33
intro i - L34
intro hi - L35
specialize hrepeat i - L36
apply hrepeat - L37
specialize le_succ (S i) - L38
specialize le_succ l - L39
apply le_succ - L40
exact hi
08Establish hprefixL41–45
09Establish hlastL46–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta repeat entry eq.
- L46
have hlast : x = a - L47
specialize beta_repeat_entry_eq b - L48
specialize beta_repeat_entry_eq c - L49
specialize beta_repeat_entry_eq a - L50
specialize beta_repeat_entry_eq (S l) - L51
specialize beta_repeat_entry_eq l - L52
specialize beta_repeat_entry_eq x - L53
apply beta_repeat_entry_eq - L54
exact hrepeat - L55
specialize le_refl (S l)
10Use earlier factsL56–57
11Calculate and transport equalitiesL58–60
12Use earlier factsL61–62
13Calculate and transport equalitiesL63–63
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L63
symm
14Use earlier factsL64–64
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L64
exact mul_succ_left
Original exact command ledger · 64 lines
- 0001
intro b - 0002
intro c - 0003
intro a - 0004
induction l - 0005
intro n - 0006
intro hrepeat - 0007
intro hsum - 0008
have hn : n = 0 - 0009
specialize beta_sum_zero b - 0010
specialize beta_sum_zero c - 0011
specialize beta_sum_zero n - 0012
apply beta_sum_zero - 0013
exact hsum - 0014
rewrite hn - 0015
symm - 0016
specialize mul_zero_left a - 0017
exact mul_zero_left - 0018
intro n - 0019
intro hrepeat - 0020
intro hsum - 0021
have hdecomp : exists a r. (((exists ff_h_repeatsum_decomp_entry. ff_h_repeatsum_decomp_entry + S (a) = S ((S (l)) * c)) /\ exists ff_q_repeatsum_decomp_entry. b = ff_q_repeatsum_decomp_entry * S ((S (l)) * c) + (a))) /\ ((exists ff_u_repeatsum_decomp_prefix ff_v_repeatsum_decomp_prefix. ((((exists ff_h_repeatsum_decomp_prefix_start. ff_h_repeatsum_decomp_prefix_start + S (0) = S ((S (0)) * ff_v_repeatsum_decomp_prefix)) /\ exists ff_q_repeatsum_decomp_prefix_start. ff_u_repeatsum_decomp_prefix = ff_q_repeatsum_decomp_prefix_start * S ((S (0)) * ff_v_repeatsum_decomp_prefix) + (0))) /\ ((((exists ff_h_repeatsum_decomp_prefix_terminal. ff_h_repeatsum_decomp_prefix_terminal + S (r) = S ((S (l)) * ff_v_repeatsum_decomp_prefix)) /\ exists ff_q_repeatsum_decomp_prefix_terminal. ff_u_repeatsum_decomp_prefix = ff_q_repeatsum_decomp_prefix_terminal * S ((S (l)) * ff_v_repeatsum_decomp_prefix) + (r))) /\ forall ff_i_repeatsum_decomp_prefix. (exists ff_lt_repeatsum_decomp_prefix_bound. ff_lt_repeatsum_decomp_prefix_bound + S ff_i_repeatsum_decomp_prefix = l) -> exists ff_a_repeatsum_decomp_prefix ff_r_repeatsum_decomp_prefix ff_s_repeatsum_decomp_prefix. ((((exists ff_h_repeatsum_decomp_prefix_summand. ff_h_repeatsum_decomp_prefix_summand + S (ff_a_repeatsum_decomp_prefix) = S ((S (ff_i_repeatsum_decomp_prefix)) * c)) /\ exists ff_q_repeatsum_decomp_prefix_summand. b = ff_q_repeatsum_decomp_prefix_summand * S ((S (ff_i_repeatsum_decomp_prefix)) * c) + (ff_a_repeatsum_decomp_prefix))) /\ ((((exists ff_h_repeatsum_decomp_prefix_partial. ff_h_repeatsum_decomp_prefix_partial + S (ff_r_repeatsum_decomp_prefix) = S ((S (ff_i_repeatsum_decomp_prefix)) * ff_v_repeatsum_decomp_prefix)) /\ exists ff_q_repeatsum_decomp_prefix_partial. ff_u_repeatsum_decomp_prefix = ff_q_repeatsum_decomp_prefix_partial * S ((S (ff_i_repeatsum_decomp_prefix)) * ff_v_repeatsum_decomp_prefix) + (ff_r_repeatsum_decomp_prefix))) /\ ((((exists ff_h_repeatsum_decomp_prefix_successor. ff_h_repeatsum_decomp_prefix_successor + S (ff_s_repeatsum_decomp_prefix) = S ((S (S ff_i_repeatsum_decomp_prefix)) * ff_v_repeatsum_decomp_prefix)) /\ exists ff_q_repeatsum_decomp_prefix_successor. ff_u_repeatsum_decomp_prefix = ff_q_repeatsum_decomp_prefix_successor * S ((S (S ff_i_repeatsum_decomp_prefix)) * ff_v_repeatsum_decomp_prefix) + (ff_s_repeatsum_decomp_prefix))) /\ ff_s_repeatsum_decomp_prefix = ff_r_repeatsum_decomp_prefix + ff_a_repeatsum_decomp_prefix)))))) /\ n = r + a) - 0022
specialize beta_sum_succ_decompose b - 0023
specialize beta_sum_succ_decompose c - 0024
specialize beta_sum_succ_decompose l - 0025
specialize beta_sum_succ_decompose n - 0026
apply beta_sum_succ_decompose - 0027
exact hsum - 0028
cases hdecomp - 0029
cases hdecomp_witness - 0030
cases hdecomp_witness_witness - 0031
cases hdecomp_witness_witness_right - 0032
have hprefix_repeat : forall ff_i_repeatsum_prefix_repeat. (exists ff_lt_repeatsum_prefix_repeat_bound. ff_lt_repeatsum_prefix_repeat_bound + S ff_i_repeatsum_prefix_repeat = l) -> (((exists ff_h_repeatsum_prefix_repeat_decoded. ff_h_repeatsum_prefix_repeat_decoded + S (a) = S ((S (ff_i_repeatsum_prefix_repeat)) * c)) /\ exists ff_q_repeatsum_prefix_repeat_decoded. b = ff_q_repeatsum_prefix_repeat_decoded * S ((S (ff_i_repeatsum_prefix_repeat)) * c) + (a))) - 0033
intro i - 0034
intro hi - 0035
specialize hrepeat i - 0036
apply hrepeat - 0037
specialize le_succ (S i) - 0038
specialize le_succ l - 0039
apply le_succ - 0040
exact hi - 0041
have hprefix : x1 = l * a - 0042
specialize IH x1 - 0043
apply IH - 0044
exact hprefix_repeat - 0045
exact hdecomp_witness_witness_right_left - 0046
have hlast : x = a - 0047
specialize beta_repeat_entry_eq b - 0048
specialize beta_repeat_entry_eq c - 0049
specialize beta_repeat_entry_eq a - 0050
specialize beta_repeat_entry_eq (S l) - 0051
specialize beta_repeat_entry_eq l - 0052
specialize beta_repeat_entry_eq x - 0053
apply beta_repeat_entry_eq - 0054
exact hrepeat - 0055
specialize le_refl (S l) - 0056
exact le_refl - 0057
exact hdecomp_witness_witness_left - 0058
rewrite hdecomp_witness_witness_right_right - 0059
rewrite hprefix - 0060
rewrite hlast - 0061
specialize mul_succ_left l - 0062
specialize mul_succ_left a - 0063
symm - 0064
exact mul_succ_left