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
∀ a. ∀ l. ∃ b. ∃ c. ∃ n. Repeat(b,c,a,l) ∧ (Sum(b,c,l,n) ∧ n = l · a)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
2 occurrences
In local proof propositions
2 occurrences
Exact expanded native-PA statement
forall a l. exists b c n. (forall ff_i_repeatsum_exists_repeat. (exists ff_lt_repeatsum_exists_repeat_bound. ff_lt_repeatsum_exists_repeat_bound + S ff_i_repeatsum_exists_repeat = l) -> (((exists ff_h_repeatsum_exists_repeat_decoded. ff_h_repeatsum_exists_repeat_decoded + S (a) = S ((S (ff_i_repeatsum_exists_repeat)) * c)) /\ exists ff_q_repeatsum_exists_repeat_decoded. b = ff_q_repeatsum_exists_repeat_decoded * S ((S (ff_i_repeatsum_exists_repeat)) * c) + (a)))) /\ ((exists ff_u_repeatsum_exists_sum ff_v_repeatsum_exists_sum. ((((exists ff_h_repeatsum_exists_sum_start. ff_h_repeatsum_exists_sum_start + S (0) = S ((S (0)) * ff_v_repeatsum_exists_sum)) /\ exists ff_q_repeatsum_exists_sum_start. ff_u_repeatsum_exists_sum = ff_q_repeatsum_exists_sum_start * S ((S (0)) * ff_v_repeatsum_exists_sum) + (0))) /\ ((((exists ff_h_repeatsum_exists_sum_terminal. ff_h_repeatsum_exists_sum_terminal + S (n) = S ((S (l)) * ff_v_repeatsum_exists_sum)) /\ exists ff_q_repeatsum_exists_sum_terminal. ff_u_repeatsum_exists_sum = ff_q_repeatsum_exists_sum_terminal * S ((S (l)) * ff_v_repeatsum_exists_sum) + (n))) /\ forall ff_i_repeatsum_exists_sum. (exists ff_lt_repeatsum_exists_sum_bound. ff_lt_repeatsum_exists_sum_bound + S ff_i_repeatsum_exists_sum = l) -> exists ff_a_repeatsum_exists_sum ff_r_repeatsum_exists_sum ff_s_repeatsum_exists_sum. ((((exists ff_h_repeatsum_exists_sum_summand. ff_h_repeatsum_exists_sum_summand + S (ff_a_repeatsum_exists_sum) = S ((S (ff_i_repeatsum_exists_sum)) * c)) /\ exists ff_q_repeatsum_exists_sum_summand. b = ff_q_repeatsum_exists_sum_summand * S ((S (ff_i_repeatsum_exists_sum)) * c) + (ff_a_repeatsum_exists_sum))) /\ ((((exists ff_h_repeatsum_exists_sum_partial. ff_h_repeatsum_exists_sum_partial + S (ff_r_repeatsum_exists_sum) = S ((S (ff_i_repeatsum_exists_sum)) * ff_v_repeatsum_exists_sum)) /\ exists ff_q_repeatsum_exists_sum_partial. ff_u_repeatsum_exists_sum = ff_q_repeatsum_exists_sum_partial * S ((S (ff_i_repeatsum_exists_sum)) * ff_v_repeatsum_exists_sum) + (ff_r_repeatsum_exists_sum))) /\ ((((exists ff_h_repeatsum_exists_sum_successor. ff_h_repeatsum_exists_sum_successor + S (ff_s_repeatsum_exists_sum) = S ((S (S ff_i_repeatsum_exists_sum)) * ff_v_repeatsum_exists_sum)) /\ exists ff_q_repeatsum_exists_sum_successor. ff_u_repeatsum_exists_sum = ff_q_repeatsum_exists_sum_successor * S ((S (S ff_i_repeatsum_exists_sum)) * ff_v_repeatsum_exists_sum) + (ff_s_repeatsum_exists_sum))) /\ ff_s_repeatsum_exists_sum = ff_r_repeatsum_exists_sum + ff_a_repeatsum_exists_sum)))))) /\ n = l * a)Proof neighborhood
Direct theorem prerequisites
Direct 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 (3)
01Fix variables and assumptionsL1–2
02Establish hrepeatL3–6
Establish this local claim before using it. It is not an additional assumption.
- L3
have hrepeat : ∃ b. ∃ c. Repeat(b,c,a,l)Definitions: Repeat(b,c,a,l)Original native command in the exact edition - L4
specialize beta_repeat_exists a - L5
specialize beta_repeat_exists l - L6
exact beta_repeat_exists
03Separate the logical casesL7–8
04Establish hsumL9–13
Establish this local claim before using it. It is not an additional assumption.
- L9
have hsum : ∃ n. Sum(x,x1,l,n)Definitions: Sum(x,x1,l,n)Original native command in the exact edition - L10
specialize beta_sum_exists x - L11
specialize beta_sum_exists x1 - L12
specialize beta_sum_exists l - L13
exact beta_sum_exists
05Separate the logical casesL14–14
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L14
cases hsum
06Establish hexactL15–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta repeat sum exact.
07Construct an explicit witnessL24–26
08Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
split
09Use earlier factsL28–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
exact hrepeat_witness_witness
10Separate the logical casesL29–29
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L29
split
Original defined command ledger · 31 lines
- 0001
intro a - 0002
intro l - 0003
have hrepeat : ∃ b. ∃ c. Repeat(b,c,a,l)Exact native replay line
have hrepeat : exists b c. (forall ff_i_repeatsum_exists_repeat. (exists ff_lt_repeatsum_exists_repeat_bound. ff_lt_repeatsum_exists_repeat_bound + S ff_i_repeatsum_exists_repeat = l) -> (((exists ff_h_repeatsum_exists_repeat_decoded. ff_h_repeatsum_exists_repeat_decoded + S (a) = S ((S (ff_i_repeatsum_exists_repeat)) * c)) /\ exists ff_q_repeatsum_exists_repeat_decoded. b = ff_q_repeatsum_exists_repeat_decoded * S ((S (ff_i_repeatsum_exists_repeat)) * c) + (a)))) - 0004
specialize beta_repeat_exists a - 0005
specialize beta_repeat_exists l - 0006
exact beta_repeat_exists - 0007
cases hrepeat - 0008
cases hrepeat_witness - 0009
have hsum : ∃ n. Sum(x,x1,l,n)Exact native replay line
have hsum : exists n. (exists ff_u_repeatsum_exists_trace ff_v_repeatsum_exists_trace. ((((exists ff_h_repeatsum_exists_trace_start. ff_h_repeatsum_exists_trace_start + S (0) = S ((S (0)) * ff_v_repeatsum_exists_trace)) /\ exists ff_q_repeatsum_exists_trace_start. ff_u_repeatsum_exists_trace = ff_q_repeatsum_exists_trace_start * S ((S (0)) * ff_v_repeatsum_exists_trace) + (0))) /\ ((((exists ff_h_repeatsum_exists_trace_terminal. ff_h_repeatsum_exists_trace_terminal + S (n) = S ((S (l)) * ff_v_repeatsum_exists_trace)) /\ exists ff_q_repeatsum_exists_trace_terminal. ff_u_repeatsum_exists_trace = ff_q_repeatsum_exists_trace_terminal * S ((S (l)) * ff_v_repeatsum_exists_trace) + (n))) /\ forall ff_i_repeatsum_exists_trace. (exists ff_lt_repeatsum_exists_trace_bound. ff_lt_repeatsum_exists_trace_bound + S ff_i_repeatsum_exists_trace = l) -> exists ff_a_repeatsum_exists_trace ff_r_repeatsum_exists_trace ff_s_repeatsum_exists_trace. ((((exists ff_h_repeatsum_exists_trace_summand. ff_h_repeatsum_exists_trace_summand + S (ff_a_repeatsum_exists_trace) = S ((S (ff_i_repeatsum_exists_trace)) * x1)) /\ exists ff_q_repeatsum_exists_trace_summand. x = ff_q_repeatsum_exists_trace_summand * S ((S (ff_i_repeatsum_exists_trace)) * x1) + (ff_a_repeatsum_exists_trace))) /\ ((((exists ff_h_repeatsum_exists_trace_partial. ff_h_repeatsum_exists_trace_partial + S (ff_r_repeatsum_exists_trace) = S ((S (ff_i_repeatsum_exists_trace)) * ff_v_repeatsum_exists_trace)) /\ exists ff_q_repeatsum_exists_trace_partial. ff_u_repeatsum_exists_trace = ff_q_repeatsum_exists_trace_partial * S ((S (ff_i_repeatsum_exists_trace)) * ff_v_repeatsum_exists_trace) + (ff_r_repeatsum_exists_trace))) /\ ((((exists ff_h_repeatsum_exists_trace_successor. ff_h_repeatsum_exists_trace_successor + S (ff_s_repeatsum_exists_trace) = S ((S (S ff_i_repeatsum_exists_trace)) * ff_v_repeatsum_exists_trace)) /\ exists ff_q_repeatsum_exists_trace_successor. ff_u_repeatsum_exists_trace = ff_q_repeatsum_exists_trace_successor * S ((S (S ff_i_repeatsum_exists_trace)) * ff_v_repeatsum_exists_trace) + (ff_s_repeatsum_exists_trace))) /\ ff_s_repeatsum_exists_trace = ff_r_repeatsum_exists_trace + ff_a_repeatsum_exists_trace)))))) - 0010
specialize beta_sum_exists x - 0011
specialize beta_sum_exists x1 - 0012
specialize beta_sum_exists l - 0013
exact beta_sum_exists - 0014
cases hsum - 0015
have hexact : x2 = l * a - 0016
specialize beta_repeat_sum_exact x - 0017
specialize beta_repeat_sum_exact x1 - 0018
specialize beta_repeat_sum_exact a - 0019
specialize beta_repeat_sum_exact l - 0020
specialize beta_repeat_sum_exact x2 - 0021
apply beta_repeat_sum_exact - 0022
exact hrepeat_witness_witness - 0023
exact hsum_witness - 0024
exists x - 0025
exists x1 - 0026
exists x2 - 0027
split - 0028
exact hrepeat_witness_witness - 0029
split - 0030
exact hsum_witness - 0031
exact hexact