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 m. (forall bpr_index_bpfpe_before. (exists bpr_gap_bpfpe_before_bound. bpr_gap_bpfpe_before_bound + S (bpr_index_bpfpe_before) = m) -> exists bpr_value_bpfpe_before. ((((exists bpr_height_bpfpe_before_decoded. bpr_height_bpfpe_before_decoded + S (bpr_value_bpfpe_before) = S ((S (bpr_index_bpfpe_before)) * c)) /\ exists bpr_quotient_bpfpe_before_decoded. b = bpr_quotient_bpfpe_before_decoded * S ((S (bpr_index_bpfpe_before)) * c) + (bpr_value_bpfpe_before))) /\ (((((~(S (bpr_index_bpfpe_before) = 1) /\ forall bpr_left_bpfpe_before_choice_prime bpr_right_bpfpe_before_choice_prime. S (bpr_index_bpfpe_before) = bpr_left_bpfpe_before_choice_prime * bpr_right_bpfpe_before_choice_prime -> bpr_left_bpfpe_before_choice_prime = 1 \/ bpr_right_bpfpe_before_choice_prime = 1)) /\ bpr_value_bpfpe_before = S (bpr_index_bpfpe_before)) \/ (~((~(S (bpr_index_bpfpe_before) = 1) /\ forall bpr_left_bpfpe_before_choice_prime bpr_right_bpfpe_before_choice_prime. S (bpr_index_bpfpe_before) = bpr_left_bpfpe_before_choice_prime * bpr_right_bpfpe_before_choice_prime -> bpr_left_bpfpe_before_choice_prime = 1 \/ bpr_right_bpfpe_before_choice_prime = 1)) /\ bpr_value_bpfpe_before = 1))))) -> exists d e. (forall bpr_index_bpfpe_after. (exists bpr_gap_bpfpe_after_bound. bpr_gap_bpfpe_after_bound + S (bpr_index_bpfpe_after) = S m) -> exists bpr_value_bpfpe_after. ((((exists bpr_height_bpfpe_after_decoded. bpr_height_bpfpe_after_decoded + S (bpr_value_bpfpe_after) = S ((S (bpr_index_bpfpe_after)) * e)) /\ exists bpr_quotient_bpfpe_after_decoded. d = bpr_quotient_bpfpe_after_decoded * S ((S (bpr_index_bpfpe_after)) * e) + (bpr_value_bpfpe_after))) /\ (((((~(S (bpr_index_bpfpe_after) = 1) /\ forall bpr_left_bpfpe_after_choice_prime bpr_right_bpfpe_after_choice_prime. S (bpr_index_bpfpe_after) = bpr_left_bpfpe_after_choice_prime * bpr_right_bpfpe_after_choice_prime -> bpr_left_bpfpe_after_choice_prime = 1 \/ bpr_right_bpfpe_after_choice_prime = 1)) /\ bpr_value_bpfpe_after = S (bpr_index_bpfpe_after)) \/ (~((~(S (bpr_index_bpfpe_after) = 1) /\ forall bpr_left_bpfpe_after_choice_prime bpr_right_bpfpe_after_choice_prime. S (bpr_index_bpfpe_after) = bpr_left_bpfpe_after_choice_prime * bpr_right_bpfpe_after_choice_prime -> bpr_left_bpfpe_after_choice_prime = 1 \/ bpr_right_bpfpe_after_choice_prime = 1)) /\ bpr_value_bpfpe_after = 1)))))Structural proof guide
Append one selector factor while preserving the previous prefix.
Direct prerequisites: primorial_factor_choice_exists, beta_prefix_extend, finite_lt_succ_eq_or_lt. The authored body proceeds by case analysis (7), intermediate claims (4), equality transport (7).
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 (3)
01Fix variables and assumptionsL1–4
02Establish hchoiceL5–6
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply primorial factor choice exists.
- L5
have hchoice : exists x. (((((~(S (m) = 1) /\ forall bpr_left_bpfpe_last_choice_prime bpr_right_bpfpe_last_choice_prime. S (m) = bpr_left_bpfpe_last_choice_prime * bpr_right_bpfpe_last_choice_prime -> bpr_left_bpfpe_last_choice_prime = 1 \/ bpr_right_bpfpe_last_choice_prime = 1)) /\ x = S (m)) \/ (~((~(S (m) = 1) /\ forall bpr_left_bpfpe_last_choice_prime bpr_right_bpfpe_last_choice_prime. S (m) = bpr_left_bpfpe_last_choice_prime * bpr_right_bpfpe_last_choice_prime -> bpr_left_bpfpe_last_choice_prime = 1 \/ bpr_right_bpfpe_last_choice_prime = 1)) /\ x = 1))) - L6
apply primorial_factor_choice_exists
03Separate the logical casesL7–7
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L7
cases hchoice
04Establish hextL8–9
05Separate the logical casesL10–12
06Construct an explicit witnessL13–14
07Fix variables and assumptionsL15–16
08Establish hsplitL17–19
09Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
cases hsplit
10Calculate and transport equalitiesL21–27
11Construct an explicit witnessL28–28
Supply the displayed value, then prove that it has the required property.
- L28
exists x
12Separate the logical casesL29–29
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L29
split
13Use earlier factsL30–31
14Establish holdL32–34
15Separate the logical casesL35–36
16Construct an explicit witnessL37–37
Supply the displayed value, then prove that it has the required property.
- L37
exists x3
17Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
split
Original exact command ledger · 42 lines
- 0001
intro b - 0002
intro c - 0003
intro m - 0004
intro hprefix - 0005
have hchoice : exists x. (((((~(S (m) = 1) /\ forall bpr_left_bpfpe_last_choice_prime bpr_right_bpfpe_last_choice_prime. S (m) = bpr_left_bpfpe_last_choice_prime * bpr_right_bpfpe_last_choice_prime -> bpr_left_bpfpe_last_choice_prime = 1 \/ bpr_right_bpfpe_last_choice_prime = 1)) /\ x = S (m)) \/ (~((~(S (m) = 1) /\ forall bpr_left_bpfpe_last_choice_prime bpr_right_bpfpe_last_choice_prime. S (m) = bpr_left_bpfpe_last_choice_prime * bpr_right_bpfpe_last_choice_prime -> bpr_left_bpfpe_last_choice_prime = 1 \/ bpr_right_bpfpe_last_choice_prime = 1)) /\ x = 1))) - 0006
apply primorial_factor_choice_exists - 0007
cases hchoice - 0008
have hext : exists d e. ((((exists bpr_height_bpfpe_append. bpr_height_bpfpe_append + S (x) = S ((S (m)) * e)) /\ exists bpr_quotient_bpfpe_append. d = bpr_quotient_bpfpe_append * S ((S (m)) * e) + (x))) /\ forall i a. (exists bpr_gap_bpfpe_old_bound. bpr_gap_bpfpe_old_bound + S (i) = m) -> (((exists bpr_height_bpfpe_old. bpr_height_bpfpe_old + S (a) = S ((S (i)) * c)) /\ exists bpr_quotient_bpfpe_old. b = bpr_quotient_bpfpe_old * S ((S (i)) * c) + (a))) -> (((exists bpr_height_bpfpe_new. bpr_height_bpfpe_new + S (a) = S ((S (i)) * e)) /\ exists bpr_quotient_bpfpe_new. d = bpr_quotient_bpfpe_new * S ((S (i)) * e) + (a)))) - 0009
apply beta_prefix_extend - 0010
cases hext - 0011
cases hext_witness - 0012
cases hext_witness_witness - 0013
exists x1 - 0014
exists x2 - 0015
intro i - 0016
intro hi - 0017
have hsplit : i = m \/ exists gap. gap + S i = m - 0018
apply finite_lt_succ_eq_or_lt - 0019
exact hi - 0020
cases hsplit - 0021
rewrite hsplit_left - 0022
rewrite hsplit_left - 0023
rewrite hsplit_left - 0024
rewrite hsplit_left - 0025
rewrite hsplit_left - 0026
rewrite hsplit_left - 0027
rewrite hsplit_left - 0028
exists x - 0029
split - 0030
exact hext_witness_witness_left - 0031
exact hchoice_witness - 0032
have hold : exists a. ((((exists bpr_height_bpfpe_hold_decoded. bpr_height_bpfpe_hold_decoded + S (a) = S ((S (i)) * c)) /\ exists bpr_quotient_bpfpe_hold_decoded. b = bpr_quotient_bpfpe_hold_decoded * S ((S (i)) * c) + (a))) /\ (((((~(S (i) = 1) /\ forall bpr_left_bpfpe_hold_choice_prime bpr_right_bpfpe_hold_choice_prime. S (i) = bpr_left_bpfpe_hold_choice_prime * bpr_right_bpfpe_hold_choice_prime -> bpr_left_bpfpe_hold_choice_prime = 1 \/ bpr_right_bpfpe_hold_choice_prime = 1)) /\ a = S (i)) \/ (~((~(S (i) = 1) /\ forall bpr_left_bpfpe_hold_choice_prime bpr_right_bpfpe_hold_choice_prime. S (i) = bpr_left_bpfpe_hold_choice_prime * bpr_right_bpfpe_hold_choice_prime -> bpr_left_bpfpe_hold_choice_prime = 1 \/ bpr_right_bpfpe_hold_choice_prime = 1)) /\ a = 1)))) - 0033
apply hprefix - 0034
exact hsplit_right - 0035
cases hold - 0036
cases hold_witness - 0037
exists x3 - 0038
split - 0039
apply hext_witness_witness_right - 0040
exact hsplit_right - 0041
exact hold_witness_left - 0042
exact hold_witness_right