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 this body receipt. The focused endpoint audits separately check the complete empty-context certificates.
- 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