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
∀ m. ∀ z. Primorial(m,z) → ∃ x. z = S xEvery purple notation token opens its conservative definition. Expanding the displayed statement recovers the exact first-order Peano-arithmetic formula checked by the unchanged kernel.
Definitions used by this theorem
In the theorem statement
1 occurrences
In local proof propositions
3 occurrences
Exact expanded native-PA statement
forall m z. (exists bpr_code_bp_positive_source bpr_scale_bp_positive_source. ((forall bpr_index_bp_positive_source_mask. (exists bpr_gap_bp_positive_source_mask_bound. bpr_gap_bp_positive_source_mask_bound + S (bpr_index_bp_positive_source_mask) = m) -> exists bpr_value_bp_positive_source_mask. ((((exists bpr_height_bp_positive_source_mask_decoded. bpr_height_bp_positive_source_mask_decoded + S (bpr_value_bp_positive_source_mask) = S ((S (bpr_index_bp_positive_source_mask)) * bpr_scale_bp_positive_source)) /\ exists bpr_quotient_bp_positive_source_mask_decoded. bpr_code_bp_positive_source = bpr_quotient_bp_positive_source_mask_decoded * S ((S (bpr_index_bp_positive_source_mask)) * bpr_scale_bp_positive_source) + (bpr_value_bp_positive_source_mask))) /\ (((((~(S (bpr_index_bp_positive_source_mask) = 1) /\ forall bpr_left_bp_positive_source_mask_choice_prime bpr_right_bp_positive_source_mask_choice_prime. S (bpr_index_bp_positive_source_mask) = bpr_left_bp_positive_source_mask_choice_prime * bpr_right_bp_positive_source_mask_choice_prime -> bpr_left_bp_positive_source_mask_choice_prime = 1 \/ bpr_right_bp_positive_source_mask_choice_prime = 1)) /\ bpr_value_bp_positive_source_mask = S (bpr_index_bp_positive_source_mask)) \/ (~((~(S (bpr_index_bp_positive_source_mask) = 1) /\ forall bpr_left_bp_positive_source_mask_choice_prime bpr_right_bp_positive_source_mask_choice_prime. S (bpr_index_bp_positive_source_mask) = bpr_left_bp_positive_source_mask_choice_prime * bpr_right_bp_positive_source_mask_choice_prime -> bpr_left_bp_positive_source_mask_choice_prime = 1 \/ bpr_right_bp_positive_source_mask_choice_prime = 1)) /\ bpr_value_bp_positive_source_mask = 1))))) /\ (exists ff_u_bp_positive_source_product ff_v_bp_positive_source_product. ((((exists ff_h_bp_positive_source_product_start. ff_h_bp_positive_source_product_start + S (1) = S ((S (0)) * ff_v_bp_positive_source_product)) /\ exists ff_q_bp_positive_source_product_start. ff_u_bp_positive_source_product = ff_q_bp_positive_source_product_start * S ((S (0)) * ff_v_bp_positive_source_product) + (1))) /\ ((((exists ff_h_bp_positive_source_product_terminal. ff_h_bp_positive_source_product_terminal + S (z) = S ((S (m)) * ff_v_bp_positive_source_product)) /\ exists ff_q_bp_positive_source_product_terminal. ff_u_bp_positive_source_product = ff_q_bp_positive_source_product_terminal * S ((S (m)) * ff_v_bp_positive_source_product) + (z))) /\ forall ff_i_bp_positive_source_product. (exists ff_lt_bp_positive_source_product_bound. ff_lt_bp_positive_source_product_bound + S ff_i_bp_positive_source_product = m) -> exists ff_p_bp_positive_source_product ff_r_bp_positive_source_product ff_s_bp_positive_source_product. ((((exists ff_h_bp_positive_source_product_factor. ff_h_bp_positive_source_product_factor + S (ff_p_bp_positive_source_product) = S ((S (ff_i_bp_positive_source_product)) * bpr_scale_bp_positive_source)) /\ exists ff_q_bp_positive_source_product_factor. bpr_code_bp_positive_source = ff_q_bp_positive_source_product_factor * S ((S (ff_i_bp_positive_source_product)) * bpr_scale_bp_positive_source) + (ff_p_bp_positive_source_product))) /\ ((((exists ff_h_bp_positive_source_product_partial. ff_h_bp_positive_source_product_partial + S (ff_r_bp_positive_source_product) = S ((S (ff_i_bp_positive_source_product)) * ff_v_bp_positive_source_product)) /\ exists ff_q_bp_positive_source_product_partial. ff_u_bp_positive_source_product = ff_q_bp_positive_source_product_partial * S ((S (ff_i_bp_positive_source_product)) * ff_v_bp_positive_source_product) + (ff_r_bp_positive_source_product))) /\ ((((exists ff_h_bp_positive_source_product_successor. ff_h_bp_positive_source_product_successor + S (ff_s_bp_positive_source_product) = S ((S (S ff_i_bp_positive_source_product)) * ff_v_bp_positive_source_product)) /\ exists ff_q_bp_positive_source_product_successor. ff_u_bp_positive_source_product = ff_q_bp_positive_source_product_successor * S ((S (S ff_i_bp_positive_source_product)) * ff_v_bp_positive_source_product) + (ff_s_bp_positive_source_product))) /\ ff_s_bp_positive_source_product = ff_r_bp_positive_source_product * ff_p_bp_positive_source_product)))))))) -> exists r. z = S rProof neighborhood
Direct theorem prerequisites
Direct theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. Every changed line has an exact-AST conservative-expansion receipt; the kernel still receives the immutable original tactic script.
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)
01Induction on mL1–3
02Establish hzL4–6
03Construct an explicit witnessL7–7
Supply the displayed value, then prove that it has the required property.
- L7
exists 0
04Calculate and transport equalitiesL8–8
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L8
trans 1
05Use earlier factsL9–9
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L9
exact hz
06Calculate and transport equalitiesL10–10
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L10
refl
07Fix variables and assumptionsL11–12
08Establish hdecompositionL13–15
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply primorial succ decompose.
- L13
have hdecomposition : ∃ p. ∃ r. (Prime(S m) ∧ p = S m ∨ ¬Prime(S m) ∧ p = 1) ∧ (Primorial(m,r) ∧ z = r · p)Definitions: Prime(S m)Primorial(m,r)Original native command in the exact edition - L14
apply primorial_succ_decompose - L15
exact hprimorial
09Separate the logical casesL16–19
10Establish hpreviousL20–22
11Separate the logical casesL23–25
12Construct an explicit witnessL26–26
Supply the displayed value, then prove that it has the required property.
- L26
exists x2 * S m + m
13Calculate and transport equalitiesL27–27
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L27
trans x1 * x
14Use earlier factsL28–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
exact hdecomposition_witness_witness_right_right
15Calculate and transport equalitiesL29–31
16Use earlier factsL32–33
17Separate the logical casesL34–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L34
cases hdecomposition_witness_witness_left_right
18Construct an explicit witnessL35–35
Supply the displayed value, then prove that it has the required property.
- L35
exists x2 * 1 + 0
19Calculate and transport equalitiesL36–36
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L36
trans x1 * x
20Use earlier factsL37–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
exact hdecomposition_witness_witness_right_right
21Calculate and transport equalitiesL38–40
Original defined command ledger · 42 lines
- 0001
induction m - 0002
intro z - 0003
intro hprimorial - 0004
have hz : z = 1 - 0005
apply primorial_zero - 0006
exact hprimorial - 0007
exists 0 - 0008
trans 1 - 0009
exact hz - 0010
refl - 0011
intro z - 0012
intro hprimorial - 0013
have hdecomposition : ∃ p. ∃ r. (Prime(S m) ∧ p = S m ∨ ¬Prime(S m) ∧ p = 1) ∧ (Primorial(m,r) ∧ z = r · p)Exact native replay line
have hdecomposition : 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) - 0014
apply primorial_succ_decompose - 0015
exact hprimorial - 0016
cases hdecomposition - 0017
cases hdecomposition_witness - 0018
cases hdecomposition_witness_witness - 0019
cases hdecomposition_witness_witness_right - 0020
have hprevious : exists t. x1 = S t - 0021
apply IH - 0022
exact hdecomposition_witness_witness_right_left - 0023
cases hprevious - 0024
cases hdecomposition_witness_witness_left - 0025
cases hdecomposition_witness_witness_left_left - 0026
exists x2 * S m + m - 0027
trans x1 * x - 0028
exact hdecomposition_witness_witness_right_right - 0029
rewrite hprevious_witness - 0030
rewrite hdecomposition_witness_witness_left_left_right - 0031
trans x2 * S m + S m - 0032
apply mul_succ_left - 0033
apply PA4 - 0034
cases hdecomposition_witness_witness_left_right - 0035
exists x2 * 1 + 0 - 0036
trans x1 * x - 0037
exact hdecomposition_witness_witness_right_right - 0038
rewrite hprevious_witness - 0039
rewrite hdecomposition_witness_witness_left_right_right - 0040
trans x2 * 1 + 1 - 0041
apply mul_succ_left - 0042
apply PA4