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 first-order arithmetic statement
forall b c l n q. (exists ff_u_ftsf_pair_product ff_v_ftsf_pair_product. ((((exists ff_h_ftsf_pair_product_start. ff_h_ftsf_pair_product_start + S (1) = S ((S (0)) * ff_v_ftsf_pair_product)) /\ exists ff_q_ftsf_pair_product_start. ff_u_ftsf_pair_product = ff_q_ftsf_pair_product_start * S ((S (0)) * ff_v_ftsf_pair_product) + (1))) /\ ((((exists ff_h_ftsf_pair_product_terminal. ff_h_ftsf_pair_product_terminal + S (n) = S ((S (S S l)) * ff_v_ftsf_pair_product)) /\ exists ff_q_ftsf_pair_product_terminal. ff_u_ftsf_pair_product = ff_q_ftsf_pair_product_terminal * S ((S (S S l)) * ff_v_ftsf_pair_product) + (n))) /\ forall ff_i_ftsf_pair_product. (exists ff_lt_ftsf_pair_product_bound. ff_lt_ftsf_pair_product_bound + S ff_i_ftsf_pair_product = S S l) -> exists ff_p_ftsf_pair_product ff_r_ftsf_pair_product ff_s_ftsf_pair_product. ((((exists ff_h_ftsf_pair_product_factor. ff_h_ftsf_pair_product_factor + S (ff_p_ftsf_pair_product) = S ((S (ff_i_ftsf_pair_product)) * c)) /\ exists ff_q_ftsf_pair_product_factor. b = ff_q_ftsf_pair_product_factor * S ((S (ff_i_ftsf_pair_product)) * c) + (ff_p_ftsf_pair_product))) /\ ((((exists ff_h_ftsf_pair_product_partial. ff_h_ftsf_pair_product_partial + S (ff_r_ftsf_pair_product) = S ((S (ff_i_ftsf_pair_product)) * ff_v_ftsf_pair_product)) /\ exists ff_q_ftsf_pair_product_partial. ff_u_ftsf_pair_product = ff_q_ftsf_pair_product_partial * S ((S (ff_i_ftsf_pair_product)) * ff_v_ftsf_pair_product) + (ff_r_ftsf_pair_product))) /\ ((((exists ff_h_ftsf_pair_product_successor. ff_h_ftsf_pair_product_successor + S (ff_s_ftsf_pair_product) = S ((S (S ff_i_ftsf_pair_product)) * ff_v_ftsf_pair_product)) /\ exists ff_q_ftsf_pair_product_successor. ff_u_ftsf_pair_product = ff_q_ftsf_pair_product_successor * S ((S (S ff_i_ftsf_pair_product)) * ff_v_ftsf_pair_product) + (ff_s_ftsf_pair_product))) /\ ff_s_ftsf_pair_product = ff_r_ftsf_pair_product * ff_p_ftsf_pair_product)))))) -> (((exists ff_h_ftsf_pair_first. ff_h_ftsf_pair_first + S (q) = S ((S (l)) * c)) /\ exists ff_q_ftsf_pair_first. b = ff_q_ftsf_pair_first * S ((S (l)) * c) + (q))) -> (((exists ff_h_ftsf_pair_second. ff_h_ftsf_pair_second + S (q) = S ((S (S l)) * c)) /\ exists ff_q_ftsf_pair_second. b = ff_q_ftsf_pair_second * S ((S (S l)) * c) + (q))) -> exists r. ((exists ff_u_ftsf_pair_local ff_v_ftsf_pair_local. ((((exists ff_h_ftsf_pair_local_start. ff_h_ftsf_pair_local_start + S (1) = S ((S (0)) * ff_v_ftsf_pair_local)) /\ exists ff_q_ftsf_pair_local_start. ff_u_ftsf_pair_local = ff_q_ftsf_pair_local_start * S ((S (0)) * ff_v_ftsf_pair_local) + (1))) /\ ((((exists ff_h_ftsf_pair_local_terminal. ff_h_ftsf_pair_local_terminal + S (r) = S ((S (l)) * ff_v_ftsf_pair_local)) /\ exists ff_q_ftsf_pair_local_terminal. ff_u_ftsf_pair_local = ff_q_ftsf_pair_local_terminal * S ((S (l)) * ff_v_ftsf_pair_local) + (r))) /\ forall ff_i_ftsf_pair_local. (exists ff_lt_ftsf_pair_local_bound. ff_lt_ftsf_pair_local_bound + S ff_i_ftsf_pair_local = l) -> exists ff_p_ftsf_pair_local ff_r_ftsf_pair_local ff_s_ftsf_pair_local. ((((exists ff_h_ftsf_pair_local_factor. ff_h_ftsf_pair_local_factor + S (ff_p_ftsf_pair_local) = S ((S (ff_i_ftsf_pair_local)) * c)) /\ exists ff_q_ftsf_pair_local_factor. b = ff_q_ftsf_pair_local_factor * S ((S (ff_i_ftsf_pair_local)) * c) + (ff_p_ftsf_pair_local))) /\ ((((exists ff_h_ftsf_pair_local_partial. ff_h_ftsf_pair_local_partial + S (ff_r_ftsf_pair_local) = S ((S (ff_i_ftsf_pair_local)) * ff_v_ftsf_pair_local)) /\ exists ff_q_ftsf_pair_local_partial. ff_u_ftsf_pair_local = ff_q_ftsf_pair_local_partial * S ((S (ff_i_ftsf_pair_local)) * ff_v_ftsf_pair_local) + (ff_r_ftsf_pair_local))) /\ ((((exists ff_h_ftsf_pair_local_successor. ff_h_ftsf_pair_local_successor + S (ff_s_ftsf_pair_local) = S ((S (S ff_i_ftsf_pair_local)) * ff_v_ftsf_pair_local)) /\ exists ff_q_ftsf_pair_local_successor. ff_u_ftsf_pair_local = ff_q_ftsf_pair_local_successor * S ((S (S ff_i_ftsf_pair_local)) * ff_v_ftsf_pair_local) + (ff_s_ftsf_pair_local))) /\ ff_s_ftsf_pair_local = ff_r_ftsf_pair_local * ff_p_ftsf_pair_local)))))) /\ n = r * (q * q))Constructive proof overview
Generated structural guide
Two equal adjacent decoded suffix factors collapse constructively to one explicit square times the shorter beta-coded prefix product.
The unchanged tactic script uses 3 declared prerequisites and contains 60 exact native proof lines.
dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged
Proof neighborhood
Direct dependencies
beta_product_succ_decompose Stable theorem; checked-use authorized beta_at_unique Stable theorem; checked-use authorized mul_assoc Stable theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This dependency-curried candidate body does not grant checked theorem use or Stable membership.
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.
01Fix variables and assumptionsL1–8
02Establish houterL9–15
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta product succ decompose.
03Separate the logical casesL16–19
04Establish hinnerL20–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta product succ decompose.
05Separate the logical casesL27–30
06Establish hlast_equalL31–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
07Establish hfirst_equalL40–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
08Construct an explicit witnessL49–49
Supply the displayed value, then prove that it has the required property.
- L49
exists x3
09Separate the logical casesL50–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L50
split
10Use earlier factsL51–51
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L51
exact hinner_witness_witness_right_left
11Calculate and transport equalitiesL52–52
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L52
trans x1 * x
12Use earlier factsL53–53
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L53
exact houter_witness_witness_right_right
13Calculate and transport equalitiesL54–55
14Use earlier factsL56–56
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L56
exact hinner_witness_witness_right_right
15Calculate and transport equalitiesL57–59
16Use earlier factsL60–60
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L60
apply mul_assoc
Original exact command ledger · 60 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro n - 0005
intro q - 0006
intro hproduct - 0007
intro hfirst - 0008
intro hsecond - 0009
have houter : exists a t. ((((exists ff_h_ftsf_pair_outer. ff_h_ftsf_pair_outer + S (a) = S ((S (S l)) * c)) /\ exists ff_q_ftsf_pair_outer. b = ff_q_ftsf_pair_outer * S ((S (S l)) * c) + (a))) /\ ((exists ff_u_ftsf_pair_outer_product ff_v_ftsf_pair_outer_product. ((((exists ff_h_ftsf_pair_outer_product_start. ff_h_ftsf_pair_outer_product_start + S (1) = S ((S (0)) * ff_v_ftsf_pair_outer_product)) /\ exists ff_q_ftsf_pair_outer_product_start. ff_u_ftsf_pair_outer_product = ff_q_ftsf_pair_outer_product_start * S ((S (0)) * ff_v_ftsf_pair_outer_product) + (1))) /\ ((((exists ff_h_ftsf_pair_outer_product_terminal. ff_h_ftsf_pair_outer_product_terminal + S (t) = S ((S (S l)) * ff_v_ftsf_pair_outer_product)) /\ exists ff_q_ftsf_pair_outer_product_terminal. ff_u_ftsf_pair_outer_product = ff_q_ftsf_pair_outer_product_terminal * S ((S (S l)) * ff_v_ftsf_pair_outer_product) + (t))) /\ forall ff_i_ftsf_pair_outer_product. (exists ff_lt_ftsf_pair_outer_product_bound. ff_lt_ftsf_pair_outer_product_bound + S ff_i_ftsf_pair_outer_product = S l) -> exists ff_p_ftsf_pair_outer_product ff_r_ftsf_pair_outer_product ff_s_ftsf_pair_outer_product. ((((exists ff_h_ftsf_pair_outer_product_factor. ff_h_ftsf_pair_outer_product_factor + S (ff_p_ftsf_pair_outer_product) = S ((S (ff_i_ftsf_pair_outer_product)) * c)) /\ exists ff_q_ftsf_pair_outer_product_factor. b = ff_q_ftsf_pair_outer_product_factor * S ((S (ff_i_ftsf_pair_outer_product)) * c) + (ff_p_ftsf_pair_outer_product))) /\ ((((exists ff_h_ftsf_pair_outer_product_partial. ff_h_ftsf_pair_outer_product_partial + S (ff_r_ftsf_pair_outer_product) = S ((S (ff_i_ftsf_pair_outer_product)) * ff_v_ftsf_pair_outer_product)) /\ exists ff_q_ftsf_pair_outer_product_partial. ff_u_ftsf_pair_outer_product = ff_q_ftsf_pair_outer_product_partial * S ((S (ff_i_ftsf_pair_outer_product)) * ff_v_ftsf_pair_outer_product) + (ff_r_ftsf_pair_outer_product))) /\ ((((exists ff_h_ftsf_pair_outer_product_successor. ff_h_ftsf_pair_outer_product_successor + S (ff_s_ftsf_pair_outer_product) = S ((S (S ff_i_ftsf_pair_outer_product)) * ff_v_ftsf_pair_outer_product)) /\ exists ff_q_ftsf_pair_outer_product_successor. ff_u_ftsf_pair_outer_product = ff_q_ftsf_pair_outer_product_successor * S ((S (S ff_i_ftsf_pair_outer_product)) * ff_v_ftsf_pair_outer_product) + (ff_s_ftsf_pair_outer_product))) /\ ff_s_ftsf_pair_outer_product = ff_r_ftsf_pair_outer_product * ff_p_ftsf_pair_outer_product)))))) /\ n = t * a)) - 0010
specialize beta_product_succ_decompose b - 0011
specialize beta_product_succ_decompose c - 0012
specialize beta_product_succ_decompose (S l) - 0013
specialize beta_product_succ_decompose n - 0014
apply beta_product_succ_decompose - 0015
exact hproduct - 0016
cases houter - 0017
cases houter_witness - 0018
cases houter_witness_witness - 0019
cases houter_witness_witness_right - 0020
have hinner : exists a r. ((((exists ff_h_ftsf_pair_inner. ff_h_ftsf_pair_inner + S (a) = S ((S (l)) * c)) /\ exists ff_q_ftsf_pair_inner. b = ff_q_ftsf_pair_inner * S ((S (l)) * c) + (a))) /\ ((exists ff_u_ftsf_pair_inner_product ff_v_ftsf_pair_inner_product. ((((exists ff_h_ftsf_pair_inner_product_start. ff_h_ftsf_pair_inner_product_start + S (1) = S ((S (0)) * ff_v_ftsf_pair_inner_product)) /\ exists ff_q_ftsf_pair_inner_product_start. ff_u_ftsf_pair_inner_product = ff_q_ftsf_pair_inner_product_start * S ((S (0)) * ff_v_ftsf_pair_inner_product) + (1))) /\ ((((exists ff_h_ftsf_pair_inner_product_terminal. ff_h_ftsf_pair_inner_product_terminal + S (r) = S ((S (l)) * ff_v_ftsf_pair_inner_product)) /\ exists ff_q_ftsf_pair_inner_product_terminal. ff_u_ftsf_pair_inner_product = ff_q_ftsf_pair_inner_product_terminal * S ((S (l)) * ff_v_ftsf_pair_inner_product) + (r))) /\ forall ff_i_ftsf_pair_inner_product. (exists ff_lt_ftsf_pair_inner_product_bound. ff_lt_ftsf_pair_inner_product_bound + S ff_i_ftsf_pair_inner_product = l) -> exists ff_p_ftsf_pair_inner_product ff_r_ftsf_pair_inner_product ff_s_ftsf_pair_inner_product. ((((exists ff_h_ftsf_pair_inner_product_factor. ff_h_ftsf_pair_inner_product_factor + S (ff_p_ftsf_pair_inner_product) = S ((S (ff_i_ftsf_pair_inner_product)) * c)) /\ exists ff_q_ftsf_pair_inner_product_factor. b = ff_q_ftsf_pair_inner_product_factor * S ((S (ff_i_ftsf_pair_inner_product)) * c) + (ff_p_ftsf_pair_inner_product))) /\ ((((exists ff_h_ftsf_pair_inner_product_partial. ff_h_ftsf_pair_inner_product_partial + S (ff_r_ftsf_pair_inner_product) = S ((S (ff_i_ftsf_pair_inner_product)) * ff_v_ftsf_pair_inner_product)) /\ exists ff_q_ftsf_pair_inner_product_partial. ff_u_ftsf_pair_inner_product = ff_q_ftsf_pair_inner_product_partial * S ((S (ff_i_ftsf_pair_inner_product)) * ff_v_ftsf_pair_inner_product) + (ff_r_ftsf_pair_inner_product))) /\ ((((exists ff_h_ftsf_pair_inner_product_successor. ff_h_ftsf_pair_inner_product_successor + S (ff_s_ftsf_pair_inner_product) = S ((S (S ff_i_ftsf_pair_inner_product)) * ff_v_ftsf_pair_inner_product)) /\ exists ff_q_ftsf_pair_inner_product_successor. ff_u_ftsf_pair_inner_product = ff_q_ftsf_pair_inner_product_successor * S ((S (S ff_i_ftsf_pair_inner_product)) * ff_v_ftsf_pair_inner_product) + (ff_s_ftsf_pair_inner_product))) /\ ff_s_ftsf_pair_inner_product = ff_r_ftsf_pair_inner_product * ff_p_ftsf_pair_inner_product)))))) /\ x1 = r * a)) - 0021
specialize beta_product_succ_decompose b - 0022
specialize beta_product_succ_decompose c - 0023
specialize beta_product_succ_decompose l - 0024
specialize beta_product_succ_decompose x1 - 0025
apply beta_product_succ_decompose - 0026
exact houter_witness_witness_right_left - 0027
cases hinner - 0028
cases hinner_witness - 0029
cases hinner_witness_witness - 0030
cases hinner_witness_witness_right - 0031
have hlast_equal : x = q - 0032
specialize beta_at_unique b - 0033
specialize beta_at_unique c - 0034
specialize beta_at_unique (S l) - 0035
specialize beta_at_unique x - 0036
specialize beta_at_unique q - 0037
apply beta_at_unique - 0038
exact houter_witness_witness_left - 0039
exact hsecond - 0040
have hfirst_equal : x2 = q - 0041
specialize beta_at_unique b - 0042
specialize beta_at_unique c - 0043
specialize beta_at_unique l - 0044
specialize beta_at_unique x2 - 0045
specialize beta_at_unique q - 0046
apply beta_at_unique - 0047
exact hinner_witness_witness_left - 0048
exact hfirst - 0049
exists x3 - 0050
split - 0051
exact hinner_witness_witness_right_left - 0052
trans x1 * x - 0053
exact houter_witness_witness_right_right - 0054
trans (x3 * x2) * x - 0055
congr - 0056
exact hinner_witness_witness_right_right - 0057
refl - 0058
rewrite hfirst_equal - 0059
rewrite hlast_equal - 0060
apply mul_assoc