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 l. exists n. (exists ff_u_x ff_v_x. ((((exists ff_h_x_start. ff_h_x_start + S (0) = S ((S (0)) * ff_v_x)) /\ exists ff_q_x_start. ff_u_x = ff_q_x_start * S ((S (0)) * ff_v_x) + (0))) /\ ((((exists ff_h_x_terminal. ff_h_x_terminal + S (n) = S ((S (l)) * ff_v_x)) /\ exists ff_q_x_terminal. ff_u_x = ff_q_x_terminal * S ((S (l)) * ff_v_x) + (n))) /\ forall ff_i_x. (exists ff_lt_x_bound. ff_lt_x_bound + S ff_i_x = l) -> exists ff_a_x ff_r_x ff_s_x. ((((exists ff_h_x_summand. ff_h_x_summand + S (ff_a_x) = S ((S (ff_i_x)) * c)) /\ exists ff_q_x_summand. b = ff_q_x_summand * S ((S (ff_i_x)) * c) + (ff_a_x))) /\ ((((exists ff_h_x_partial. ff_h_x_partial + S (ff_r_x) = S ((S (ff_i_x)) * ff_v_x)) /\ exists ff_q_x_partial. ff_u_x = ff_q_x_partial * S ((S (ff_i_x)) * ff_v_x) + (ff_r_x))) /\ ((((exists ff_h_x_successor. ff_h_x_successor + S (ff_s_x) = S ((S (S ff_i_x)) * ff_v_x)) /\ exists ff_q_x_successor. ff_u_x = ff_q_x_successor * S ((S (S ff_i_x)) * ff_v_x) + (ff_s_x))) /\ ff_s_x = ff_r_x + ff_a_x))))))Structural proof guide
Generated structural guide
Every decoded beta prefix has a relational finite sum.
Use the direct prerequisites beta_prefix_sum_trace_exists, beta_at_exists as previously established PA formulas.
The proof proceeds by case analysis (4), intermediate claims (2).
Referenced ingredients
Proof neighborhood
Direct dependencies
Direct dependents
PA003I bit_count_exists PA00C1 prime_scaled_half_quotient_sum_exists PA00CX beta_sum_permutation_invariant PA00D6 gauss_eisenstein_sign_count_mod_quotient_sum PA00DM distinct_odd_prime_half_rectangle_total_exists PA00EJ eisenstein_transposed_column_count_total_exists PA00EL beta_repeat_sum_exists_exact PA00FC eisenstein_fubini_universal PA00FF distinct_odd_prime_eisenstein_quotient_sum_identityFormal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Stable checked-use theorem is independently kernel-checked when replayed.
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 (2)
01Fix variables and assumptionsL1–3
02Establish htraceL4–8
Establish this local claim before using it. It is not an additional assumption.
03Separate the logical casesL9–11
04Establish hterminalL12–16
Establish this local claim before using it. It is not an additional assumption.
05Separate the logical casesL17–17
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L17
cases hterminal
06Construct an explicit witnessL18–20
07Separate the logical casesL21–21
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L21
split
08Use earlier factsL22–22
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L22
exact htrace_witness_witness_left
09Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
split
Original exact command ledger · 25 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
have htrace : exists fs_u_exists_trace fs_v_exists_trace. ((((exists fs_h_exists_trace_start. fs_h_exists_trace_start + S (0) = S ((S (0)) * fs_v_exists_trace)) /\ exists fs_q_exists_trace_start. fs_u_exists_trace = fs_q_exists_trace_start * S ((S (0)) * fs_v_exists_trace) + (0))) /\ forall fs_i_exists_trace_steps. (exists fs_lt_exists_trace_steps_bound. fs_lt_exists_trace_steps_bound + S fs_i_exists_trace_steps = l) -> exists fs_a_exists_trace_steps fs_r_exists_trace_steps fs_s_exists_trace_steps. ((((exists fs_h_exists_trace_steps_summand. fs_h_exists_trace_steps_summand + S (fs_a_exists_trace_steps) = S ((S (fs_i_exists_trace_steps)) * c)) /\ exists fs_q_exists_trace_steps_summand. b = fs_q_exists_trace_steps_summand * S ((S (fs_i_exists_trace_steps)) * c) + (fs_a_exists_trace_steps))) /\ ((((exists fs_h_exists_trace_steps_partial. fs_h_exists_trace_steps_partial + S (fs_r_exists_trace_steps) = S ((S (fs_i_exists_trace_steps)) * fs_v_exists_trace)) /\ exists fs_q_exists_trace_steps_partial. fs_u_exists_trace = fs_q_exists_trace_steps_partial * S ((S (fs_i_exists_trace_steps)) * fs_v_exists_trace) + (fs_r_exists_trace_steps))) /\ ((((exists fs_h_exists_trace_steps_successor. fs_h_exists_trace_steps_successor + S (fs_s_exists_trace_steps) = S ((S (S fs_i_exists_trace_steps)) * fs_v_exists_trace)) /\ exists fs_q_exists_trace_steps_successor. fs_u_exists_trace = fs_q_exists_trace_steps_successor * S ((S (S fs_i_exists_trace_steps)) * fs_v_exists_trace) + (fs_s_exists_trace_steps))) /\ fs_s_exists_trace_steps = fs_r_exists_trace_steps + fs_a_exists_trace_steps)))) - 0005
specialize beta_prefix_sum_trace_exists b - 0006
specialize beta_prefix_sum_trace_exists c - 0007
specialize beta_prefix_sum_trace_exists l - 0008
exact beta_prefix_sum_trace_exists - 0009
cases htrace - 0010
cases htrace_witness - 0011
cases htrace_witness_witness - 0012
have hterminal : exists n. ((exists fs_h_sum_terminal. fs_h_sum_terminal + S (n) = S ((S (l)) * x1)) /\ exists fs_q_sum_terminal. x = fs_q_sum_terminal * S ((S (l)) * x1) + (n)) - 0013
specialize beta_at_exists x - 0014
specialize beta_at_exists x1 - 0015
specialize beta_at_exists l - 0016
exact beta_at_exists - 0017
cases hterminal - 0018
exists x2 - 0019
exists x - 0020
exists x1 - 0021
split - 0022
exact htrace_witness_witness_left - 0023
split - 0024
exact hterminal_witness - 0025
exact htrace_witness_witness_right