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 m z. (exists bpr_code_bp_succ_source bpr_scale_bp_succ_source. ((forall bpr_index_bp_succ_source_mask. (exists bpr_gap_bp_succ_source_mask_bound. bpr_gap_bp_succ_source_mask_bound + S (bpr_index_bp_succ_source_mask) = S m) -> exists bpr_value_bp_succ_source_mask. ((((exists bpr_height_bp_succ_source_mask_decoded. bpr_height_bp_succ_source_mask_decoded + S (bpr_value_bp_succ_source_mask) = S ((S (bpr_index_bp_succ_source_mask)) * bpr_scale_bp_succ_source)) /\ exists bpr_quotient_bp_succ_source_mask_decoded. bpr_code_bp_succ_source = bpr_quotient_bp_succ_source_mask_decoded * S ((S (bpr_index_bp_succ_source_mask)) * bpr_scale_bp_succ_source) + (bpr_value_bp_succ_source_mask))) /\ (((((~(S (bpr_index_bp_succ_source_mask) = 1) /\ forall bpr_left_bp_succ_source_mask_choice_prime bpr_right_bp_succ_source_mask_choice_prime. S (bpr_index_bp_succ_source_mask) = bpr_left_bp_succ_source_mask_choice_prime * bpr_right_bp_succ_source_mask_choice_prime -> bpr_left_bp_succ_source_mask_choice_prime = 1 \/ bpr_right_bp_succ_source_mask_choice_prime = 1)) /\ bpr_value_bp_succ_source_mask = S (bpr_index_bp_succ_source_mask)) \/ (~((~(S (bpr_index_bp_succ_source_mask) = 1) /\ forall bpr_left_bp_succ_source_mask_choice_prime bpr_right_bp_succ_source_mask_choice_prime. S (bpr_index_bp_succ_source_mask) = bpr_left_bp_succ_source_mask_choice_prime * bpr_right_bp_succ_source_mask_choice_prime -> bpr_left_bp_succ_source_mask_choice_prime = 1 \/ bpr_right_bp_succ_source_mask_choice_prime = 1)) /\ bpr_value_bp_succ_source_mask = 1))))) /\ (exists ff_u_bp_succ_source_product ff_v_bp_succ_source_product. ((((exists ff_h_bp_succ_source_product_start. ff_h_bp_succ_source_product_start + S (1) = S ((S (0)) * ff_v_bp_succ_source_product)) /\ exists ff_q_bp_succ_source_product_start. ff_u_bp_succ_source_product = ff_q_bp_succ_source_product_start * S ((S (0)) * ff_v_bp_succ_source_product) + (1))) /\ ((((exists ff_h_bp_succ_source_product_terminal. ff_h_bp_succ_source_product_terminal + S (z) = S ((S (S m)) * ff_v_bp_succ_source_product)) /\ exists ff_q_bp_succ_source_product_terminal. ff_u_bp_succ_source_product = ff_q_bp_succ_source_product_terminal * S ((S (S m)) * ff_v_bp_succ_source_product) + (z))) /\ forall ff_i_bp_succ_source_product. (exists ff_lt_bp_succ_source_product_bound. ff_lt_bp_succ_source_product_bound + S ff_i_bp_succ_source_product = S m) -> exists ff_p_bp_succ_source_product ff_r_bp_succ_source_product ff_s_bp_succ_source_product. ((((exists ff_h_bp_succ_source_product_factor. ff_h_bp_succ_source_product_factor + S (ff_p_bp_succ_source_product) = S ((S (ff_i_bp_succ_source_product)) * bpr_scale_bp_succ_source)) /\ exists ff_q_bp_succ_source_product_factor. bpr_code_bp_succ_source = ff_q_bp_succ_source_product_factor * S ((S (ff_i_bp_succ_source_product)) * bpr_scale_bp_succ_source) + (ff_p_bp_succ_source_product))) /\ ((((exists ff_h_bp_succ_source_product_partial. ff_h_bp_succ_source_product_partial + S (ff_r_bp_succ_source_product) = S ((S (ff_i_bp_succ_source_product)) * ff_v_bp_succ_source_product)) /\ exists ff_q_bp_succ_source_product_partial. ff_u_bp_succ_source_product = ff_q_bp_succ_source_product_partial * S ((S (ff_i_bp_succ_source_product)) * ff_v_bp_succ_source_product) + (ff_r_bp_succ_source_product))) /\ ((((exists ff_h_bp_succ_source_product_successor. ff_h_bp_succ_source_product_successor + S (ff_s_bp_succ_source_product) = S ((S (S ff_i_bp_succ_source_product)) * ff_v_bp_succ_source_product)) /\ exists ff_q_bp_succ_source_product_successor. ff_u_bp_succ_source_product = ff_q_bp_succ_source_product_successor * S ((S (S ff_i_bp_succ_source_product)) * ff_v_bp_succ_source_product) + (ff_s_bp_succ_source_product))) /\ ff_s_bp_succ_source_product = ff_r_bp_succ_source_product * ff_p_bp_succ_source_product)))))))) -> (exists p r. (((((~(S (m) = 1) /\ forall bpr_left_bp_succ_factor_prime bpr_right_bp_succ_factor_prime. S (m) = bpr_left_bp_succ_factor_prime * bpr_right_bp_succ_factor_prime -> bpr_left_bp_succ_factor_prime = 1 \/ bpr_right_bp_succ_factor_prime = 1)) /\ p = S (m)) \/ (~((~(S (m) = 1) /\ forall bpr_left_bp_succ_factor_prime bpr_right_bp_succ_factor_prime. S (m) = bpr_left_bp_succ_factor_prime * bpr_right_bp_succ_factor_prime -> bpr_left_bp_succ_factor_prime = 1 \/ bpr_right_bp_succ_factor_prime = 1)) /\ p = 1))) /\ ((exists bpr_code_bp_succ_predecessor bpr_scale_bp_succ_predecessor. ((forall bpr_index_bp_succ_predecessor_mask. (exists bpr_gap_bp_succ_predecessor_mask_bound. bpr_gap_bp_succ_predecessor_mask_bound + S (bpr_index_bp_succ_predecessor_mask) = m) -> exists bpr_value_bp_succ_predecessor_mask. ((((exists bpr_height_bp_succ_predecessor_mask_decoded. bpr_height_bp_succ_predecessor_mask_decoded + S (bpr_value_bp_succ_predecessor_mask) = S ((S (bpr_index_bp_succ_predecessor_mask)) * bpr_scale_bp_succ_predecessor)) /\ exists bpr_quotient_bp_succ_predecessor_mask_decoded. bpr_code_bp_succ_predecessor = bpr_quotient_bp_succ_predecessor_mask_decoded * S ((S (bpr_index_bp_succ_predecessor_mask)) * bpr_scale_bp_succ_predecessor) + (bpr_value_bp_succ_predecessor_mask))) /\ (((((~(S (bpr_index_bp_succ_predecessor_mask) = 1) /\ forall bpr_left_bp_succ_predecessor_mask_choice_prime bpr_right_bp_succ_predecessor_mask_choice_prime. S (bpr_index_bp_succ_predecessor_mask) = bpr_left_bp_succ_predecessor_mask_choice_prime * bpr_right_bp_succ_predecessor_mask_choice_prime -> bpr_left_bp_succ_predecessor_mask_choice_prime = 1 \/ bpr_right_bp_succ_predecessor_mask_choice_prime = 1)) /\ bpr_value_bp_succ_predecessor_mask = S (bpr_index_bp_succ_predecessor_mask)) \/ (~((~(S (bpr_index_bp_succ_predecessor_mask) = 1) /\ forall bpr_left_bp_succ_predecessor_mask_choice_prime bpr_right_bp_succ_predecessor_mask_choice_prime. S (bpr_index_bp_succ_predecessor_mask) = bpr_left_bp_succ_predecessor_mask_choice_prime * bpr_right_bp_succ_predecessor_mask_choice_prime -> bpr_left_bp_succ_predecessor_mask_choice_prime = 1 \/ bpr_right_bp_succ_predecessor_mask_choice_prime = 1)) /\ bpr_value_bp_succ_predecessor_mask = 1))))) /\ (exists ff_u_bp_succ_predecessor_product ff_v_bp_succ_predecessor_product. ((((exists ff_h_bp_succ_predecessor_product_start. ff_h_bp_succ_predecessor_product_start + S (1) = S ((S (0)) * ff_v_bp_succ_predecessor_product)) /\ exists ff_q_bp_succ_predecessor_product_start. ff_u_bp_succ_predecessor_product = ff_q_bp_succ_predecessor_product_start * S ((S (0)) * ff_v_bp_succ_predecessor_product) + (1))) /\ ((((exists ff_h_bp_succ_predecessor_product_terminal. ff_h_bp_succ_predecessor_product_terminal + S (r) = S ((S (m)) * ff_v_bp_succ_predecessor_product)) /\ exists ff_q_bp_succ_predecessor_product_terminal. ff_u_bp_succ_predecessor_product = ff_q_bp_succ_predecessor_product_terminal * S ((S (m)) * ff_v_bp_succ_predecessor_product) + (r))) /\ forall ff_i_bp_succ_predecessor_product. (exists ff_lt_bp_succ_predecessor_product_bound. ff_lt_bp_succ_predecessor_product_bound + S ff_i_bp_succ_predecessor_product = m) -> exists ff_p_bp_succ_predecessor_product ff_r_bp_succ_predecessor_product ff_s_bp_succ_predecessor_product. ((((exists ff_h_bp_succ_predecessor_product_factor. ff_h_bp_succ_predecessor_product_factor + S (ff_p_bp_succ_predecessor_product) = S ((S (ff_i_bp_succ_predecessor_product)) * bpr_scale_bp_succ_predecessor)) /\ exists ff_q_bp_succ_predecessor_product_factor. bpr_code_bp_succ_predecessor = ff_q_bp_succ_predecessor_product_factor * S ((S (ff_i_bp_succ_predecessor_product)) * bpr_scale_bp_succ_predecessor) + (ff_p_bp_succ_predecessor_product))) /\ ((((exists ff_h_bp_succ_predecessor_product_partial. ff_h_bp_succ_predecessor_product_partial + S (ff_r_bp_succ_predecessor_product) = S ((S (ff_i_bp_succ_predecessor_product)) * ff_v_bp_succ_predecessor_product)) /\ exists ff_q_bp_succ_predecessor_product_partial. ff_u_bp_succ_predecessor_product = ff_q_bp_succ_predecessor_product_partial * S ((S (ff_i_bp_succ_predecessor_product)) * ff_v_bp_succ_predecessor_product) + (ff_r_bp_succ_predecessor_product))) /\ ((((exists ff_h_bp_succ_predecessor_product_successor. ff_h_bp_succ_predecessor_product_successor + S (ff_s_bp_succ_predecessor_product) = S ((S (S ff_i_bp_succ_predecessor_product)) * ff_v_bp_succ_predecessor_product)) /\ exists ff_q_bp_succ_predecessor_product_successor. ff_u_bp_succ_predecessor_product = ff_q_bp_succ_predecessor_product_successor * S ((S (S ff_i_bp_succ_predecessor_product)) * ff_v_bp_succ_predecessor_product) + (ff_s_bp_succ_predecessor_product))) /\ ff_s_bp_succ_predecessor_product = ff_r_bp_succ_predecessor_product * ff_p_bp_succ_predecessor_product)))))))) /\ z = r * p))Structural proof guide
A successor primorial splits into its previous value and selector.
Direct prerequisites: beta_product_succ_decompose, beta_at_unique, le_refl, le_succ. The authored body proceeds by case analysis (9), intermediate claims (3), equality transport (1).
Proof neighborhood
Direct dependencies
Direct dependents
Formal native tactic body
Dependencies are hypotheses of the historical Alpha-v12 body receipt. The complete historical Alpha-v18 proof bundle independently checks every dependency; current Alpha v25 preserves that checked theorem use without changing 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.
Named ingredients (4)
01Fix variables and assumptionsL1–3
02Separate the logical casesL4–6
03Establish hdecompositionL7–9
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta product succ decompose.
04Separate the logical casesL10–13
05Establish hterminalL14–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprimorial witness witness left.
06Separate the logical casesL17–18
07Establish hfactorL19–22
08Construct an explicit witnessL23–24
09Separate the logical casesL25–25
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L25
split
10Use earlier factsL26–26
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L26
exact hterminal_witness_right
11Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
split
12Construct an explicit witnessL28–29
13Separate the logical casesL30–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
split
14Fix variables and assumptionsL31–32
15Use earlier factsL33–36
16Calculate and transport equalitiesL37–37
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L37
trans x3 * x2
17Use earlier factsL38–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
exact hdecomposition_witness_witness_right_right
Original exact command ledger · 40 lines
- 0001
intro m - 0002
intro z - 0003
intro hprimorial - 0004
cases hprimorial - 0005
cases hprimorial_witness - 0006
cases hprimorial_witness_witness - 0007
have hdecomposition : exists p r. (((exists bpr_height_bp_succ_last_factor. bpr_height_bp_succ_last_factor + S (p) = S ((S (m)) * x1)) /\ exists bpr_quotient_bp_succ_last_factor. x = bpr_quotient_bp_succ_last_factor * S ((S (m)) * x1) + (p))) /\ ((exists ff_u_bp_succ_prefix_product ff_v_bp_succ_prefix_product. ((((exists ff_h_bp_succ_prefix_product_start. ff_h_bp_succ_prefix_product_start + S (1) = S ((S (0)) * ff_v_bp_succ_prefix_product)) /\ exists ff_q_bp_succ_prefix_product_start. ff_u_bp_succ_prefix_product = ff_q_bp_succ_prefix_product_start * S ((S (0)) * ff_v_bp_succ_prefix_product) + (1))) /\ ((((exists ff_h_bp_succ_prefix_product_terminal. ff_h_bp_succ_prefix_product_terminal + S (r) = S ((S (m)) * ff_v_bp_succ_prefix_product)) /\ exists ff_q_bp_succ_prefix_product_terminal. ff_u_bp_succ_prefix_product = ff_q_bp_succ_prefix_product_terminal * S ((S (m)) * ff_v_bp_succ_prefix_product) + (r))) /\ forall ff_i_bp_succ_prefix_product. (exists ff_lt_bp_succ_prefix_product_bound. ff_lt_bp_succ_prefix_product_bound + S ff_i_bp_succ_prefix_product = m) -> exists ff_p_bp_succ_prefix_product ff_r_bp_succ_prefix_product ff_s_bp_succ_prefix_product. ((((exists ff_h_bp_succ_prefix_product_factor. ff_h_bp_succ_prefix_product_factor + S (ff_p_bp_succ_prefix_product) = S ((S (ff_i_bp_succ_prefix_product)) * x1)) /\ exists ff_q_bp_succ_prefix_product_factor. x = ff_q_bp_succ_prefix_product_factor * S ((S (ff_i_bp_succ_prefix_product)) * x1) + (ff_p_bp_succ_prefix_product))) /\ ((((exists ff_h_bp_succ_prefix_product_partial. ff_h_bp_succ_prefix_product_partial + S (ff_r_bp_succ_prefix_product) = S ((S (ff_i_bp_succ_prefix_product)) * ff_v_bp_succ_prefix_product)) /\ exists ff_q_bp_succ_prefix_product_partial. ff_u_bp_succ_prefix_product = ff_q_bp_succ_prefix_product_partial * S ((S (ff_i_bp_succ_prefix_product)) * ff_v_bp_succ_prefix_product) + (ff_r_bp_succ_prefix_product))) /\ ((((exists ff_h_bp_succ_prefix_product_successor. ff_h_bp_succ_prefix_product_successor + S (ff_s_bp_succ_prefix_product) = S ((S (S ff_i_bp_succ_prefix_product)) * ff_v_bp_succ_prefix_product)) /\ exists ff_q_bp_succ_prefix_product_successor. ff_u_bp_succ_prefix_product = ff_q_bp_succ_prefix_product_successor * S ((S (S ff_i_bp_succ_prefix_product)) * ff_v_bp_succ_prefix_product) + (ff_s_bp_succ_prefix_product))) /\ ff_s_bp_succ_prefix_product = ff_r_bp_succ_prefix_product * ff_p_bp_succ_prefix_product)))))) /\ z = r * p) - 0008
apply beta_product_succ_decompose - 0009
exact hprimorial_witness_witness_right - 0010
cases hdecomposition - 0011
cases hdecomposition_witness - 0012
cases hdecomposition_witness_witness - 0013
cases hdecomposition_witness_witness_right - 0014
have hterminal : exists a. ((((exists bpr_height_bp_succ_mask_terminal. bpr_height_bp_succ_mask_terminal + S (a) = S ((S (m)) * x1)) /\ exists bpr_quotient_bp_succ_mask_terminal. x = bpr_quotient_bp_succ_mask_terminal * S ((S (m)) * x1) + (a))) /\ (((((~(S (m) = 1) /\ forall bpr_left_bp_succ_mask_choice_prime bpr_right_bp_succ_mask_choice_prime. S (m) = bpr_left_bp_succ_mask_choice_prime * bpr_right_bp_succ_mask_choice_prime -> bpr_left_bp_succ_mask_choice_prime = 1 \/ bpr_right_bp_succ_mask_choice_prime = 1)) /\ a = S (m)) \/ (~((~(S (m) = 1) /\ forall bpr_left_bp_succ_mask_choice_prime bpr_right_bp_succ_mask_choice_prime. S (m) = bpr_left_bp_succ_mask_choice_prime * bpr_right_bp_succ_mask_choice_prime -> bpr_left_bp_succ_mask_choice_prime = 1 \/ bpr_right_bp_succ_mask_choice_prime = 1)) /\ a = 1)))) - 0015
apply hprimorial_witness_witness_left - 0016
apply le_refl - 0017
cases hterminal - 0018
cases hterminal_witness - 0019
have hfactor : x2 = x4 - 0020
apply beta_at_unique - 0021
exact hdecomposition_witness_witness_left - 0022
exact hterminal_witness_left - 0023
exists x4 - 0024
exists x3 - 0025
split - 0026
exact hterminal_witness_right - 0027
split - 0028
exists x - 0029
exists x1 - 0030
split - 0031
intro i - 0032
intro hi - 0033
apply hprimorial_witness_witness_left - 0034
apply le_succ - 0035
exact hi - 0036
exact hdecomposition_witness_witness_right_left - 0037
trans x3 * x2 - 0038
exact hdecomposition_witness_witness_right_right - 0039
rewrite hfactor - 0040
refl