Exact expanded PA statement
forall p e a r q. ((~(p = 1) /\ forall frm_prime_left_bpd_prime frm_prime_right_bpd_prime. p = frm_prime_left_bpd_prime * frm_prime_right_bpd_prime -> frm_prime_left_bpd_prime = 1 \/ frm_prime_right_bpd_prime = 1)) -> (exists ff_b_bpd_cancel_prefix ff_c_bpd_cancel_prefix. ((forall ff_i_bpd_cancel_prefix_repeat. (exists ff_lt_bpd_cancel_prefix_repeat_bound. ff_lt_bpd_cancel_prefix_repeat_bound + S ff_i_bpd_cancel_prefix_repeat = e) -> (((exists ff_h_bpd_cancel_prefix_repeat_decoded. ff_h_bpd_cancel_prefix_repeat_decoded + S (p) = S ((S (ff_i_bpd_cancel_prefix_repeat)) * ff_c_bpd_cancel_prefix)) /\ exists ff_q_bpd_cancel_prefix_repeat_decoded. ff_b_bpd_cancel_prefix = ff_q_bpd_cancel_prefix_repeat_decoded * S ((S (ff_i_bpd_cancel_prefix_repeat)) * ff_c_bpd_cancel_prefix) + (p)))) /\ (exists ff_u_bpd_cancel_prefix_product ff_v_bpd_cancel_prefix_product. ((((exists ff_h_bpd_cancel_prefix_product_start. ff_h_bpd_cancel_prefix_product_start + S (1) = S ((S (0)) * ff_v_bpd_cancel_prefix_product)) /\ exists ff_q_bpd_cancel_prefix_product_start. ff_u_bpd_cancel_prefix_product = ff_q_bpd_cancel_prefix_product_start * S ((S (0)) * ff_v_bpd_cancel_prefix_product) + (1))) /\ ((((exists ff_h_bpd_cancel_prefix_product_terminal. ff_h_bpd_cancel_prefix_product_terminal + S (r) = S ((S (e)) * ff_v_bpd_cancel_prefix_product)) /\ exists ff_q_bpd_cancel_prefix_product_terminal. ff_u_bpd_cancel_prefix_product = ff_q_bpd_cancel_prefix_product_terminal * S ((S (e)) * ff_v_bpd_cancel_prefix_product) + (r))) /\ forall ff_i_bpd_cancel_prefix_product. (exists ff_lt_bpd_cancel_prefix_product_bound. ff_lt_bpd_cancel_prefix_product_bound + S ff_i_bpd_cancel_prefix_product = e) -> exists ff_p_bpd_cancel_prefix_product ff_r_bpd_cancel_prefix_product ff_s_bpd_cancel_prefix_product. ((((exists ff_h_bpd_cancel_prefix_product_factor. ff_h_bpd_cancel_prefix_product_factor + S (ff_p_bpd_cancel_prefix_product) = S ((S (ff_i_bpd_cancel_prefix_product)) * ff_c_bpd_cancel_prefix)) /\ exists ff_q_bpd_cancel_prefix_product_factor. ff_b_bpd_cancel_prefix = ff_q_bpd_cancel_prefix_product_factor * S ((S (ff_i_bpd_cancel_prefix_product)) * ff_c_bpd_cancel_prefix) + (ff_p_bpd_cancel_prefix_product))) /\ ((((exists ff_h_bpd_cancel_prefix_product_partial. ff_h_bpd_cancel_prefix_product_partial + S (ff_r_bpd_cancel_prefix_product) = S ((S (ff_i_bpd_cancel_prefix_product)) * ff_v_bpd_cancel_prefix_product)) /\ exists ff_q_bpd_cancel_prefix_product_partial. ff_u_bpd_cancel_prefix_product = ff_q_bpd_cancel_prefix_product_partial * S ((S (ff_i_bpd_cancel_prefix_product)) * ff_v_bpd_cancel_prefix_product) + (ff_r_bpd_cancel_prefix_product))) /\ ((((exists ff_h_bpd_cancel_prefix_product_successor. ff_h_bpd_cancel_prefix_product_successor + S (ff_s_bpd_cancel_prefix_product) = S ((S (S ff_i_bpd_cancel_prefix_product)) * ff_v_bpd_cancel_prefix_product)) /\ exists ff_q_bpd_cancel_prefix_product_successor. ff_u_bpd_cancel_prefix_product = ff_q_bpd_cancel_prefix_product_successor * S ((S (S ff_i_bpd_cancel_prefix_product)) * ff_v_bpd_cancel_prefix_product) + (ff_s_bpd_cancel_prefix_product))) /\ ff_s_bpd_cancel_prefix_product = ff_r_bpd_cancel_prefix_product * ff_p_bpd_cancel_prefix_product)))))))) -> a = r * q -> (exists bpvi_result_cancel_successor. ((exists bpvi_b_cancel_successor_power bpvi_c_cancel_successor_power. ((forall bpvi_i_cancel_successor_power. (exists bpvi_repeat_gap_cancel_successor_power. bpvi_repeat_gap_cancel_successor_power + S bpvi_i_cancel_successor_power = S e) -> (((exists bpvi_h_cancel_successor_power_repeat. bpvi_h_cancel_successor_power_repeat + S (p) = S ((S (bpvi_i_cancel_successor_power)) * bpvi_c_cancel_successor_power)) /\ exists bpvi_q_cancel_successor_power_repeat. bpvi_b_cancel_successor_power = bpvi_q_cancel_successor_power_repeat * S ((S (bpvi_i_cancel_successor_power)) * bpvi_c_cancel_successor_power) + (p)))) /\ (exists bpvi_u_cancel_successor_power bpvi_v_cancel_successor_power. ((((exists bpvi_h_cancel_successor_power_start. bpvi_h_cancel_successor_power_start + S (1) = S ((S (0)) * bpvi_v_cancel_successor_power)) /\ exists bpvi_q_cancel_successor_power_start. bpvi_u_cancel_successor_power = bpvi_q_cancel_successor_power_start * S ((S (0)) * bpvi_v_cancel_successor_power) + (1))) /\ ((((exists bpvi_h_cancel_successor_power_terminal. bpvi_h_cancel_successor_power_terminal + S (bpvi_result_cancel_successor) = S ((S (S e)) * bpvi_v_cancel_successor_power)) /\ exists bpvi_q_cancel_successor_power_terminal. bpvi_u_cancel_successor_power = bpvi_q_cancel_successor_power_terminal * S ((S (S e)) * bpvi_v_cancel_successor_power) + (bpvi_result_cancel_successor))) /\ forall bpvi_j_cancel_successor_power. (exists bpvi_product_gap_cancel_successor_power. bpvi_product_gap_cancel_successor_power + S bpvi_j_cancel_successor_power = S e) -> exists bpvi_factor_cancel_successor_power bpvi_partial_cancel_successor_power bpvi_successor_cancel_successor_power. ((((exists bpvi_h_cancel_successor_power_factor. bpvi_h_cancel_successor_power_factor + S (bpvi_factor_cancel_successor_power) = S ((S (bpvi_j_cancel_successor_power)) * bpvi_c_cancel_successor_power)) /\ exists bpvi_q_cancel_successor_power_factor. bpvi_b_cancel_successor_power = bpvi_q_cancel_successor_power_factor * S ((S (bpvi_j_cancel_successor_power)) * bpvi_c_cancel_successor_power) + (bpvi_factor_cancel_successor_power))) /\ ((((exists bpvi_h_cancel_successor_power_partial. bpvi_h_cancel_successor_power_partial + S (bpvi_partial_cancel_successor_power) = S ((S (bpvi_j_cancel_successor_power)) * bpvi_v_cancel_successor_power)) /\ exists bpvi_q_cancel_successor_power_partial. bpvi_u_cancel_successor_power = bpvi_q_cancel_successor_power_partial * S ((S (bpvi_j_cancel_successor_power)) * bpvi_v_cancel_successor_power) + (bpvi_partial_cancel_successor_power))) /\ ((((exists bpvi_h_cancel_successor_power_successor. bpvi_h_cancel_successor_power_successor + S (bpvi_successor_cancel_successor_power) = S ((S (S bpvi_j_cancel_successor_power)) * bpvi_v_cancel_successor_power)) /\ exists bpvi_q_cancel_successor_power_successor. bpvi_u_cancel_successor_power = bpvi_q_cancel_successor_power_successor * S ((S (S bpvi_j_cancel_successor_power)) * bpvi_v_cancel_successor_power) + (bpvi_successor_cancel_successor_power))) /\ bpvi_successor_cancel_successor_power = bpvi_partial_cancel_successor_power * bpvi_factor_cancel_successor_power)))))))) /\ exists bpvi_divisor_factor_cancel_successor. a = bpvi_result_cancel_successor * bpvi_divisor_factor_cancel_successor)) -> (exists bpd_factor_cancel_cofactor_result. q = (p) * bpd_factor_cancel_cofactor_result)Structural proof guide
A successor power divisor cancels to a prime divisor of the exact cofactor.
Direct prerequisites: prime_nonzero, one_le_of_ne_zero, pow_nonzero_of_one_le, pow_successor_pair_mul, mul_left_cancel_nonzero, mul_assoc. The authored body proceeds by case analysis (3), intermediate claims (5).
Proof neighborhood
Direct dependencies
BT003G prime_nonzero BT0010 one_le_of_ne_zero BT00Q1 pow_nonzero_of_one_le BT0095 pow_successor_pair_mul BT0022 mul_left_cancel_nonzero BT0008 mul_assocDirect 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 e - 0003
intro a - 0004
intro r - 0005
intro q - 0006
intro hp - 0007
intro hr - 0008
intro harq - 0009
intro hsuccessor - 0010
cases hsuccessor - 0011
cases hsuccessor_witness - 0012
cases hsuccessor_witness_right - 0013
have hp0 : ~(p = 0) - 0014
intro hpzero - 0015
specialize prime_nonzero p - 0016
apply prime_nonzero - 0017
exact hp - 0018
exact hpzero - 0019
have hp1 : exists k. k + 1 = p - 0020
specialize one_le_of_ne_zero p - 0021
apply one_le_of_ne_zero - 0022
exact hp0 - 0023
have hr0 : ~(r = 0) - 0024
intro hrzero - 0025
specialize pow_nonzero_of_one_le p - 0026
specialize pow_nonzero_of_one_le e - 0027
specialize pow_nonzero_of_one_le r - 0028
apply pow_nonzero_of_one_le - 0029
exact hp1 - 0030
exact hr - 0031
exact hrzero - 0032
have hsuccessor_value : x = r * p - 0033
specialize pow_successor_pair_mul p - 0034
specialize pow_successor_pair_mul e - 0035
specialize pow_successor_pair_mul (S e) - 0036
specialize pow_successor_pair_mul r - 0037
specialize pow_successor_pair_mul x - 0038
apply pow_successor_pair_mul - 0039
refl - 0040
exact hr - 0041
exact hsuccessor_witness_left - 0042
have hcancel : r * q = r * (p * x1) - 0043
trans a - 0044
symm - 0045
exact harq - 0046
trans x * x1 - 0047
exact hsuccessor_witness_right_witness - 0048
trans (r * p) * x1 - 0049
congr - 0050
exact hsuccessor_value - 0051
refl - 0052
apply mul_assoc - 0053
exists x1 - 0054
specialize mul_left_cancel_nonzero r - 0055
specialize mul_left_cancel_nonzero q - 0056
specialize mul_left_cancel_nonzero (p * x1) - 0057
apply mul_left_cancel_nonzero - 0058
exact hr0 - 0059
exact hcancel