BT00QM

power_divides_successor_of_cofactor

Alpha body-checked ยท checked-use disabled

Divisibility of a power cofactor by its base raises the exponent by one.

Exact expanded PA statement

forall p e a r q. (exists ff_b_bpd_successor_prefix ff_c_bpd_successor_prefix. ((forall ff_i_bpd_successor_prefix_repeat. (exists ff_lt_bpd_successor_prefix_repeat_bound. ff_lt_bpd_successor_prefix_repeat_bound + S ff_i_bpd_successor_prefix_repeat = e) -> (((exists ff_h_bpd_successor_prefix_repeat_decoded. ff_h_bpd_successor_prefix_repeat_decoded + S (p) = S ((S (ff_i_bpd_successor_prefix_repeat)) * ff_c_bpd_successor_prefix)) /\ exists ff_q_bpd_successor_prefix_repeat_decoded. ff_b_bpd_successor_prefix = ff_q_bpd_successor_prefix_repeat_decoded * S ((S (ff_i_bpd_successor_prefix_repeat)) * ff_c_bpd_successor_prefix) + (p)))) /\ (exists ff_u_bpd_successor_prefix_product ff_v_bpd_successor_prefix_product. ((((exists ff_h_bpd_successor_prefix_product_start. ff_h_bpd_successor_prefix_product_start + S (1) = S ((S (0)) * ff_v_bpd_successor_prefix_product)) /\ exists ff_q_bpd_successor_prefix_product_start. ff_u_bpd_successor_prefix_product = ff_q_bpd_successor_prefix_product_start * S ((S (0)) * ff_v_bpd_successor_prefix_product) + (1))) /\ ((((exists ff_h_bpd_successor_prefix_product_terminal. ff_h_bpd_successor_prefix_product_terminal + S (r) = S ((S (e)) * ff_v_bpd_successor_prefix_product)) /\ exists ff_q_bpd_successor_prefix_product_terminal. ff_u_bpd_successor_prefix_product = ff_q_bpd_successor_prefix_product_terminal * S ((S (e)) * ff_v_bpd_successor_prefix_product) + (r))) /\ forall ff_i_bpd_successor_prefix_product. (exists ff_lt_bpd_successor_prefix_product_bound. ff_lt_bpd_successor_prefix_product_bound + S ff_i_bpd_successor_prefix_product = e) -> exists ff_p_bpd_successor_prefix_product ff_r_bpd_successor_prefix_product ff_s_bpd_successor_prefix_product. ((((exists ff_h_bpd_successor_prefix_product_factor. ff_h_bpd_successor_prefix_product_factor + S (ff_p_bpd_successor_prefix_product) = S ((S (ff_i_bpd_successor_prefix_product)) * ff_c_bpd_successor_prefix)) /\ exists ff_q_bpd_successor_prefix_product_factor. ff_b_bpd_successor_prefix = ff_q_bpd_successor_prefix_product_factor * S ((S (ff_i_bpd_successor_prefix_product)) * ff_c_bpd_successor_prefix) + (ff_p_bpd_successor_prefix_product))) /\ ((((exists ff_h_bpd_successor_prefix_product_partial. ff_h_bpd_successor_prefix_product_partial + S (ff_r_bpd_successor_prefix_product) = S ((S (ff_i_bpd_successor_prefix_product)) * ff_v_bpd_successor_prefix_product)) /\ exists ff_q_bpd_successor_prefix_product_partial. ff_u_bpd_successor_prefix_product = ff_q_bpd_successor_prefix_product_partial * S ((S (ff_i_bpd_successor_prefix_product)) * ff_v_bpd_successor_prefix_product) + (ff_r_bpd_successor_prefix_product))) /\ ((((exists ff_h_bpd_successor_prefix_product_successor. ff_h_bpd_successor_prefix_product_successor + S (ff_s_bpd_successor_prefix_product) = S ((S (S ff_i_bpd_successor_prefix_product)) * ff_v_bpd_successor_prefix_product)) /\ exists ff_q_bpd_successor_prefix_product_successor. ff_u_bpd_successor_prefix_product = ff_q_bpd_successor_prefix_product_successor * S ((S (S ff_i_bpd_successor_prefix_product)) * ff_v_bpd_successor_prefix_product) + (ff_s_bpd_successor_prefix_product))) /\ ff_s_bpd_successor_prefix_product = ff_r_bpd_successor_prefix_product * ff_p_bpd_successor_prefix_product)))))))) -> a = r * q -> (exists bpd_factor_successor_cofactor. q = (p) * bpd_factor_successor_cofactor) -> (exists bpvi_result_successor_result. ((exists bpvi_b_successor_result_power bpvi_c_successor_result_power. ((forall bpvi_i_successor_result_power. (exists bpvi_repeat_gap_successor_result_power. bpvi_repeat_gap_successor_result_power + S bpvi_i_successor_result_power = S e) -> (((exists bpvi_h_successor_result_power_repeat. bpvi_h_successor_result_power_repeat + S (p) = S ((S (bpvi_i_successor_result_power)) * bpvi_c_successor_result_power)) /\ exists bpvi_q_successor_result_power_repeat. bpvi_b_successor_result_power = bpvi_q_successor_result_power_repeat * S ((S (bpvi_i_successor_result_power)) * bpvi_c_successor_result_power) + (p)))) /\ (exists bpvi_u_successor_result_power bpvi_v_successor_result_power. ((((exists bpvi_h_successor_result_power_start. bpvi_h_successor_result_power_start + S (1) = S ((S (0)) * bpvi_v_successor_result_power)) /\ exists bpvi_q_successor_result_power_start. bpvi_u_successor_result_power = bpvi_q_successor_result_power_start * S ((S (0)) * bpvi_v_successor_result_power) + (1))) /\ ((((exists bpvi_h_successor_result_power_terminal. bpvi_h_successor_result_power_terminal + S (bpvi_result_successor_result) = S ((S (S e)) * bpvi_v_successor_result_power)) /\ exists bpvi_q_successor_result_power_terminal. bpvi_u_successor_result_power = bpvi_q_successor_result_power_terminal * S ((S (S e)) * bpvi_v_successor_result_power) + (bpvi_result_successor_result))) /\ forall bpvi_j_successor_result_power. (exists bpvi_product_gap_successor_result_power. bpvi_product_gap_successor_result_power + S bpvi_j_successor_result_power = S e) -> exists bpvi_factor_successor_result_power bpvi_partial_successor_result_power bpvi_successor_successor_result_power. ((((exists bpvi_h_successor_result_power_factor. bpvi_h_successor_result_power_factor + S (bpvi_factor_successor_result_power) = S ((S (bpvi_j_successor_result_power)) * bpvi_c_successor_result_power)) /\ exists bpvi_q_successor_result_power_factor. bpvi_b_successor_result_power = bpvi_q_successor_result_power_factor * S ((S (bpvi_j_successor_result_power)) * bpvi_c_successor_result_power) + (bpvi_factor_successor_result_power))) /\ ((((exists bpvi_h_successor_result_power_partial. bpvi_h_successor_result_power_partial + S (bpvi_partial_successor_result_power) = S ((S (bpvi_j_successor_result_power)) * bpvi_v_successor_result_power)) /\ exists bpvi_q_successor_result_power_partial. bpvi_u_successor_result_power = bpvi_q_successor_result_power_partial * S ((S (bpvi_j_successor_result_power)) * bpvi_v_successor_result_power) + (bpvi_partial_successor_result_power))) /\ ((((exists bpvi_h_successor_result_power_successor. bpvi_h_successor_result_power_successor + S (bpvi_successor_successor_result_power) = S ((S (S bpvi_j_successor_result_power)) * bpvi_v_successor_result_power)) /\ exists bpvi_q_successor_result_power_successor. bpvi_u_successor_result_power = bpvi_q_successor_result_power_successor * S ((S (S bpvi_j_successor_result_power)) * bpvi_v_successor_result_power) + (bpvi_successor_successor_result_power))) /\ bpvi_successor_successor_result_power = bpvi_partial_successor_result_power * bpvi_factor_successor_result_power)))))))) /\ exists bpvi_divisor_factor_successor_result. a = bpvi_result_successor_result * bpvi_divisor_factor_successor_result))

Structural proof guide

Divisibility of a power cofactor by its base raises the exponent by one.

Direct prerequisites: pow_exists, pow_successor_pair_mul, mul_assoc. The authored body proceeds by case analysis (2), intermediate claims (2), 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.

  1. 0001intro p
  2. 0002intro e
  3. 0003intro a
  4. 0004intro r
  5. 0005intro q
  6. 0006intro hr
  7. 0007intro ha
  8. 0008intro hq
  9. 0009cases hq
  10. 0010have hsuccessor : exists s. (exists bpvi_b_bpd_successor_witness bpvi_c_bpd_successor_witness. ((forall bpvi_i_bpd_successor_witness. (exists bpvi_repeat_gap_bpd_successor_witness. bpvi_repeat_gap_bpd_successor_witness + S bpvi_i_bpd_successor_witness = S e) -> (((exists bpvi_h_bpd_successor_witness_repeat. bpvi_h_bpd_successor_witness_repeat + S (p) = S ((S (bpvi_i_bpd_successor_witness)) * bpvi_c_bpd_successor_witness)) /\ exists bpvi_q_bpd_successor_witness_repeat. bpvi_b_bpd_successor_witness = bpvi_q_bpd_successor_witness_repeat * S ((S (bpvi_i_bpd_successor_witness)) * bpvi_c_bpd_successor_witness) + (p)))) /\ (exists bpvi_u_bpd_successor_witness bpvi_v_bpd_successor_witness. ((((exists bpvi_h_bpd_successor_witness_start. bpvi_h_bpd_successor_witness_start + S (1) = S ((S (0)) * bpvi_v_bpd_successor_witness)) /\ exists bpvi_q_bpd_successor_witness_start. bpvi_u_bpd_successor_witness = bpvi_q_bpd_successor_witness_start * S ((S (0)) * bpvi_v_bpd_successor_witness) + (1))) /\ ((((exists bpvi_h_bpd_successor_witness_terminal. bpvi_h_bpd_successor_witness_terminal + S (s) = S ((S (S e)) * bpvi_v_bpd_successor_witness)) /\ exists bpvi_q_bpd_successor_witness_terminal. bpvi_u_bpd_successor_witness = bpvi_q_bpd_successor_witness_terminal * S ((S (S e)) * bpvi_v_bpd_successor_witness) + (s))) /\ forall bpvi_j_bpd_successor_witness. (exists bpvi_product_gap_bpd_successor_witness. bpvi_product_gap_bpd_successor_witness + S bpvi_j_bpd_successor_witness = S e) -> exists bpvi_factor_bpd_successor_witness bpvi_partial_bpd_successor_witness bpvi_successor_bpd_successor_witness. ((((exists bpvi_h_bpd_successor_witness_factor. bpvi_h_bpd_successor_witness_factor + S (bpvi_factor_bpd_successor_witness) = S ((S (bpvi_j_bpd_successor_witness)) * bpvi_c_bpd_successor_witness)) /\ exists bpvi_q_bpd_successor_witness_factor. bpvi_b_bpd_successor_witness = bpvi_q_bpd_successor_witness_factor * S ((S (bpvi_j_bpd_successor_witness)) * bpvi_c_bpd_successor_witness) + (bpvi_factor_bpd_successor_witness))) /\ ((((exists bpvi_h_bpd_successor_witness_partial. bpvi_h_bpd_successor_witness_partial + S (bpvi_partial_bpd_successor_witness) = S ((S (bpvi_j_bpd_successor_witness)) * bpvi_v_bpd_successor_witness)) /\ exists bpvi_q_bpd_successor_witness_partial. bpvi_u_bpd_successor_witness = bpvi_q_bpd_successor_witness_partial * S ((S (bpvi_j_bpd_successor_witness)) * bpvi_v_bpd_successor_witness) + (bpvi_partial_bpd_successor_witness))) /\ ((((exists bpvi_h_bpd_successor_witness_successor. bpvi_h_bpd_successor_witness_successor + S (bpvi_successor_bpd_successor_witness) = S ((S (S bpvi_j_bpd_successor_witness)) * bpvi_v_bpd_successor_witness)) /\ exists bpvi_q_bpd_successor_witness_successor. bpvi_u_bpd_successor_witness = bpvi_q_bpd_successor_witness_successor * S ((S (S bpvi_j_bpd_successor_witness)) * bpvi_v_bpd_successor_witness) + (bpvi_successor_bpd_successor_witness))) /\ bpvi_successor_bpd_successor_witness = bpvi_partial_bpd_successor_witness * bpvi_factor_bpd_successor_witness))))))))
  11. 0011specialize pow_exists p
  12. 0012specialize pow_exists (S e)
  13. 0013exact pow_exists
  14. 0014cases hsuccessor
  15. 0015have hs : x1 = r * p
  16. 0016specialize pow_successor_pair_mul p
  17. 0017specialize pow_successor_pair_mul e
  18. 0018specialize pow_successor_pair_mul (S e)
  19. 0019specialize pow_successor_pair_mul r
  20. 0020specialize pow_successor_pair_mul x1
  21. 0021apply pow_successor_pair_mul
  22. 0022refl
  23. 0023exact hr
  24. 0024exact hsuccessor_witness
  25. 0025exists x1
  26. 0026split
  27. 0027exact hsuccessor_witness
  28. 0028exists x
  29. 0029trans r * q
  30. 0030exact ha
  31. 0031rewrite hq_witness
  32. 0032trans (r * p) * x
  33. 0033symm
  34. 0034apply mul_assoc
  35. 0035congr
  36. 0036symm
  37. 0037exact hs
  38. 0038refl