Exact expanded PA statement
forall p n F. ((~(p = 1) /\ forall bpr_left_bfpdol_prime bpr_right_bfpdol_prime. p = bpr_left_bfpdol_prime * bpr_right_bfpdol_prime -> bpr_left_bfpdol_prime = 1 \/ bpr_right_bfpdol_prime = 1)) -> (exists bpr_le_gap_bfpdol_bound. bpr_le_gap_bfpdol_bound + (p) = (n)) -> (exists ff_b_bfpdol_source ff_c_bfpdol_source. ((forall ff_i_bfpdol_source_range. (exists ff_lt_bfpdol_source_range_bound. ff_lt_bfpdol_source_range_bound + S ff_i_bfpdol_source_range = n) -> (((exists ff_h_bfpdol_source_range_decoded. ff_h_bfpdol_source_range_decoded + S (1 + ff_i_bfpdol_source_range) = S ((S (ff_i_bfpdol_source_range)) * ff_c_bfpdol_source)) /\ exists ff_q_bfpdol_source_range_decoded. ff_b_bfpdol_source = ff_q_bfpdol_source_range_decoded * S ((S (ff_i_bfpdol_source_range)) * ff_c_bfpdol_source) + (1 + ff_i_bfpdol_source_range)))) /\ (exists ff_u_bfpdol_source_product ff_v_bfpdol_source_product. ((((exists ff_h_bfpdol_source_product_start. ff_h_bfpdol_source_product_start + S (1) = S ((S (0)) * ff_v_bfpdol_source_product)) /\ exists ff_q_bfpdol_source_product_start. ff_u_bfpdol_source_product = ff_q_bfpdol_source_product_start * S ((S (0)) * ff_v_bfpdol_source_product) + (1))) /\ ((((exists ff_h_bfpdol_source_product_terminal. ff_h_bfpdol_source_product_terminal + S (F) = S ((S (n)) * ff_v_bfpdol_source_product)) /\ exists ff_q_bfpdol_source_product_terminal. ff_u_bfpdol_source_product = ff_q_bfpdol_source_product_terminal * S ((S (n)) * ff_v_bfpdol_source_product) + (F))) /\ forall ff_i_bfpdol_source_product. (exists ff_lt_bfpdol_source_product_bound. ff_lt_bfpdol_source_product_bound + S ff_i_bfpdol_source_product = n) -> exists ff_p_bfpdol_source_product ff_r_bfpdol_source_product ff_s_bfpdol_source_product. ((((exists ff_h_bfpdol_source_product_factor. ff_h_bfpdol_source_product_factor + S (ff_p_bfpdol_source_product) = S ((S (ff_i_bfpdol_source_product)) * ff_c_bfpdol_source)) /\ exists ff_q_bfpdol_source_product_factor. ff_b_bfpdol_source = ff_q_bfpdol_source_product_factor * S ((S (ff_i_bfpdol_source_product)) * ff_c_bfpdol_source) + (ff_p_bfpdol_source_product))) /\ ((((exists ff_h_bfpdol_source_product_partial. ff_h_bfpdol_source_product_partial + S (ff_r_bfpdol_source_product) = S ((S (ff_i_bfpdol_source_product)) * ff_v_bfpdol_source_product)) /\ exists ff_q_bfpdol_source_product_partial. ff_u_bfpdol_source_product = ff_q_bfpdol_source_product_partial * S ((S (ff_i_bfpdol_source_product)) * ff_v_bfpdol_source_product) + (ff_r_bfpdol_source_product))) /\ ((((exists ff_h_bfpdol_source_product_successor. ff_h_bfpdol_source_product_successor + S (ff_s_bfpdol_source_product) = S ((S (S ff_i_bfpdol_source_product)) * ff_v_bfpdol_source_product)) /\ exists ff_q_bfpdol_source_product_successor. ff_u_bfpdol_source_product = ff_q_bfpdol_source_product_successor * S ((S (S ff_i_bfpdol_source_product)) * ff_v_bfpdol_source_product) + (ff_s_bfpdol_source_product))) /\ ff_s_bfpdol_source_product = ff_r_bfpdol_source_product * ff_p_bfpdol_source_product)))))))) -> (exists bpr_quotient_bfpdol_result. F = (p) * bpr_quotient_bfpdol_result)Structural proof guide
Every prime at most n divides the relational factorial n!.
Direct prerequisites: prime_is_succ_succ, beta_factor_divides_product, add_succ_left, zero_add. The authored body proceeds by case analysis (5), intermediate claims (3), equality transport (2).
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 p - 0002
intro n - 0003
intro F - 0004
intro hp - 0005
intro hle - 0006
intro hfactorial - 0007
have hshape : exists k. p = S (S k) - 0008
apply prime_is_succ_succ - 0009
exact hp - 0010
cases hshape - 0011
rewrite hshape_witness at hle - 0012
cases hfactorial - 0013
cases hfactorial_witness - 0014
cases hfactorial_witness_witness - 0015
have hentry : ((exists bpr_height_bfpdol_entry. bpr_height_bfpdol_entry + S (1 + S x) = S ((S (S x)) * x2)) /\ exists bpr_quotient_bfpdol_entry. x1 = bpr_quotient_bfpdol_entry * S ((S (S x)) * x2) + (1 + S x)) - 0016
apply hfactorial_witness_witness_left - 0017
exact hle - 0018
have hraw : exists q. F = (1 + S x) * q - 0019
specialize beta_factor_divides_product x1 - 0020
specialize beta_factor_divides_product x2 - 0021
specialize beta_factor_divides_product n - 0022
specialize beta_factor_divides_product F - 0023
specialize beta_factor_divides_product (S x) - 0024
specialize beta_factor_divides_product (1 + S x) - 0025
apply beta_factor_divides_product - 0026
exact hle - 0027
exact hentry - 0028
exact hfactorial_witness_witness_right - 0029
cases hraw - 0030
exists x3 - 0031
rewrite hshape_witness - 0032
trans (1 + S x) * x3 - 0033
exact hraw_witness - 0034
congr - 0035
trans S (1 + x) - 0036
apply PA4 - 0037
congr - 0038
trans S (0 + x) - 0039
specialize add_succ_left 0 - 0040
specialize add_succ_left x - 0041
apply add_succ_left - 0042
congr - 0043
apply zero_add - 0044
refl