BT00QL

power_divides_add_mul

Alpha body-checked ยท checked-use disabled

Multiplying power divisors adds their exponents.

Exact expanded PA statement

forall p e f s a b. s = e + f -> (exists bpv_result_add_mul_left. ((exists ff_b_add_mul_left_power ff_c_add_mul_left_power. ((forall ff_i_add_mul_left_power_repeat. (exists ff_lt_add_mul_left_power_repeat_bound. ff_lt_add_mul_left_power_repeat_bound + S ff_i_add_mul_left_power_repeat = e) -> (((exists ff_h_add_mul_left_power_repeat_decoded. ff_h_add_mul_left_power_repeat_decoded + S (p) = S ((S (ff_i_add_mul_left_power_repeat)) * ff_c_add_mul_left_power)) /\ exists ff_q_add_mul_left_power_repeat_decoded. ff_b_add_mul_left_power = ff_q_add_mul_left_power_repeat_decoded * S ((S (ff_i_add_mul_left_power_repeat)) * ff_c_add_mul_left_power) + (p)))) /\ (exists ff_u_add_mul_left_power_product ff_v_add_mul_left_power_product. ((((exists ff_h_add_mul_left_power_product_start. ff_h_add_mul_left_power_product_start + S (1) = S ((S (0)) * ff_v_add_mul_left_power_product)) /\ exists ff_q_add_mul_left_power_product_start. ff_u_add_mul_left_power_product = ff_q_add_mul_left_power_product_start * S ((S (0)) * ff_v_add_mul_left_power_product) + (1))) /\ ((((exists ff_h_add_mul_left_power_product_terminal. ff_h_add_mul_left_power_product_terminal + S (bpv_result_add_mul_left) = S ((S (e)) * ff_v_add_mul_left_power_product)) /\ exists ff_q_add_mul_left_power_product_terminal. ff_u_add_mul_left_power_product = ff_q_add_mul_left_power_product_terminal * S ((S (e)) * ff_v_add_mul_left_power_product) + (bpv_result_add_mul_left))) /\ forall ff_i_add_mul_left_power_product. (exists ff_lt_add_mul_left_power_product_bound. ff_lt_add_mul_left_power_product_bound + S ff_i_add_mul_left_power_product = e) -> exists ff_p_add_mul_left_power_product ff_r_add_mul_left_power_product ff_s_add_mul_left_power_product. ((((exists ff_h_add_mul_left_power_product_factor. ff_h_add_mul_left_power_product_factor + S (ff_p_add_mul_left_power_product) = S ((S (ff_i_add_mul_left_power_product)) * ff_c_add_mul_left_power)) /\ exists ff_q_add_mul_left_power_product_factor. ff_b_add_mul_left_power = ff_q_add_mul_left_power_product_factor * S ((S (ff_i_add_mul_left_power_product)) * ff_c_add_mul_left_power) + (ff_p_add_mul_left_power_product))) /\ ((((exists ff_h_add_mul_left_power_product_partial. ff_h_add_mul_left_power_product_partial + S (ff_r_add_mul_left_power_product) = S ((S (ff_i_add_mul_left_power_product)) * ff_v_add_mul_left_power_product)) /\ exists ff_q_add_mul_left_power_product_partial. ff_u_add_mul_left_power_product = ff_q_add_mul_left_power_product_partial * S ((S (ff_i_add_mul_left_power_product)) * ff_v_add_mul_left_power_product) + (ff_r_add_mul_left_power_product))) /\ ((((exists ff_h_add_mul_left_power_product_successor. ff_h_add_mul_left_power_product_successor + S (ff_s_add_mul_left_power_product) = S ((S (S ff_i_add_mul_left_power_product)) * ff_v_add_mul_left_power_product)) /\ exists ff_q_add_mul_left_power_product_successor. ff_u_add_mul_left_power_product = ff_q_add_mul_left_power_product_successor * S ((S (S ff_i_add_mul_left_power_product)) * ff_v_add_mul_left_power_product) + (ff_s_add_mul_left_power_product))) /\ ff_s_add_mul_left_power_product = ff_r_add_mul_left_power_product * ff_p_add_mul_left_power_product)))))))) /\ (exists bpv_factor_add_mul_left_divides. a = bpv_result_add_mul_left * bpv_factor_add_mul_left_divides))) -> (exists bpv_result_add_mul_right. ((exists ff_b_add_mul_right_power ff_c_add_mul_right_power. ((forall ff_i_add_mul_right_power_repeat. (exists ff_lt_add_mul_right_power_repeat_bound. ff_lt_add_mul_right_power_repeat_bound + S ff_i_add_mul_right_power_repeat = f) -> (((exists ff_h_add_mul_right_power_repeat_decoded. ff_h_add_mul_right_power_repeat_decoded + S (p) = S ((S (ff_i_add_mul_right_power_repeat)) * ff_c_add_mul_right_power)) /\ exists ff_q_add_mul_right_power_repeat_decoded. ff_b_add_mul_right_power = ff_q_add_mul_right_power_repeat_decoded * S ((S (ff_i_add_mul_right_power_repeat)) * ff_c_add_mul_right_power) + (p)))) /\ (exists ff_u_add_mul_right_power_product ff_v_add_mul_right_power_product. ((((exists ff_h_add_mul_right_power_product_start. ff_h_add_mul_right_power_product_start + S (1) = S ((S (0)) * ff_v_add_mul_right_power_product)) /\ exists ff_q_add_mul_right_power_product_start. ff_u_add_mul_right_power_product = ff_q_add_mul_right_power_product_start * S ((S (0)) * ff_v_add_mul_right_power_product) + (1))) /\ ((((exists ff_h_add_mul_right_power_product_terminal. ff_h_add_mul_right_power_product_terminal + S (bpv_result_add_mul_right) = S ((S (f)) * ff_v_add_mul_right_power_product)) /\ exists ff_q_add_mul_right_power_product_terminal. ff_u_add_mul_right_power_product = ff_q_add_mul_right_power_product_terminal * S ((S (f)) * ff_v_add_mul_right_power_product) + (bpv_result_add_mul_right))) /\ forall ff_i_add_mul_right_power_product. (exists ff_lt_add_mul_right_power_product_bound. ff_lt_add_mul_right_power_product_bound + S ff_i_add_mul_right_power_product = f) -> exists ff_p_add_mul_right_power_product ff_r_add_mul_right_power_product ff_s_add_mul_right_power_product. ((((exists ff_h_add_mul_right_power_product_factor. ff_h_add_mul_right_power_product_factor + S (ff_p_add_mul_right_power_product) = S ((S (ff_i_add_mul_right_power_product)) * ff_c_add_mul_right_power)) /\ exists ff_q_add_mul_right_power_product_factor. ff_b_add_mul_right_power = ff_q_add_mul_right_power_product_factor * S ((S (ff_i_add_mul_right_power_product)) * ff_c_add_mul_right_power) + (ff_p_add_mul_right_power_product))) /\ ((((exists ff_h_add_mul_right_power_product_partial. ff_h_add_mul_right_power_product_partial + S (ff_r_add_mul_right_power_product) = S ((S (ff_i_add_mul_right_power_product)) * ff_v_add_mul_right_power_product)) /\ exists ff_q_add_mul_right_power_product_partial. ff_u_add_mul_right_power_product = ff_q_add_mul_right_power_product_partial * S ((S (ff_i_add_mul_right_power_product)) * ff_v_add_mul_right_power_product) + (ff_r_add_mul_right_power_product))) /\ ((((exists ff_h_add_mul_right_power_product_successor. ff_h_add_mul_right_power_product_successor + S (ff_s_add_mul_right_power_product) = S ((S (S ff_i_add_mul_right_power_product)) * ff_v_add_mul_right_power_product)) /\ exists ff_q_add_mul_right_power_product_successor. ff_u_add_mul_right_power_product = ff_q_add_mul_right_power_product_successor * S ((S (S ff_i_add_mul_right_power_product)) * ff_v_add_mul_right_power_product) + (ff_s_add_mul_right_power_product))) /\ ff_s_add_mul_right_power_product = ff_r_add_mul_right_power_product * ff_p_add_mul_right_power_product)))))))) /\ (exists bpv_factor_add_mul_right_divides. b = bpv_result_add_mul_right * bpv_factor_add_mul_right_divides))) -> (exists bpvi_result_add_mul_result. ((exists bpvi_b_add_mul_result_power bpvi_c_add_mul_result_power. ((forall bpvi_i_add_mul_result_power. (exists bpvi_repeat_gap_add_mul_result_power. bpvi_repeat_gap_add_mul_result_power + S bpvi_i_add_mul_result_power = s) -> (((exists bpvi_h_add_mul_result_power_repeat. bpvi_h_add_mul_result_power_repeat + S (p) = S ((S (bpvi_i_add_mul_result_power)) * bpvi_c_add_mul_result_power)) /\ exists bpvi_q_add_mul_result_power_repeat. bpvi_b_add_mul_result_power = bpvi_q_add_mul_result_power_repeat * S ((S (bpvi_i_add_mul_result_power)) * bpvi_c_add_mul_result_power) + (p)))) /\ (exists bpvi_u_add_mul_result_power bpvi_v_add_mul_result_power. ((((exists bpvi_h_add_mul_result_power_start. bpvi_h_add_mul_result_power_start + S (1) = S ((S (0)) * bpvi_v_add_mul_result_power)) /\ exists bpvi_q_add_mul_result_power_start. bpvi_u_add_mul_result_power = bpvi_q_add_mul_result_power_start * S ((S (0)) * bpvi_v_add_mul_result_power) + (1))) /\ ((((exists bpvi_h_add_mul_result_power_terminal. bpvi_h_add_mul_result_power_terminal + S (bpvi_result_add_mul_result) = S ((S (s)) * bpvi_v_add_mul_result_power)) /\ exists bpvi_q_add_mul_result_power_terminal. bpvi_u_add_mul_result_power = bpvi_q_add_mul_result_power_terminal * S ((S (s)) * bpvi_v_add_mul_result_power) + (bpvi_result_add_mul_result))) /\ forall bpvi_j_add_mul_result_power. (exists bpvi_product_gap_add_mul_result_power. bpvi_product_gap_add_mul_result_power + S bpvi_j_add_mul_result_power = s) -> exists bpvi_factor_add_mul_result_power bpvi_partial_add_mul_result_power bpvi_successor_add_mul_result_power. ((((exists bpvi_h_add_mul_result_power_factor. bpvi_h_add_mul_result_power_factor + S (bpvi_factor_add_mul_result_power) = S ((S (bpvi_j_add_mul_result_power)) * bpvi_c_add_mul_result_power)) /\ exists bpvi_q_add_mul_result_power_factor. bpvi_b_add_mul_result_power = bpvi_q_add_mul_result_power_factor * S ((S (bpvi_j_add_mul_result_power)) * bpvi_c_add_mul_result_power) + (bpvi_factor_add_mul_result_power))) /\ ((((exists bpvi_h_add_mul_result_power_partial. bpvi_h_add_mul_result_power_partial + S (bpvi_partial_add_mul_result_power) = S ((S (bpvi_j_add_mul_result_power)) * bpvi_v_add_mul_result_power)) /\ exists bpvi_q_add_mul_result_power_partial. bpvi_u_add_mul_result_power = bpvi_q_add_mul_result_power_partial * S ((S (bpvi_j_add_mul_result_power)) * bpvi_v_add_mul_result_power) + (bpvi_partial_add_mul_result_power))) /\ ((((exists bpvi_h_add_mul_result_power_successor. bpvi_h_add_mul_result_power_successor + S (bpvi_successor_add_mul_result_power) = S ((S (S bpvi_j_add_mul_result_power)) * bpvi_v_add_mul_result_power)) /\ exists bpvi_q_add_mul_result_power_successor. bpvi_u_add_mul_result_power = bpvi_q_add_mul_result_power_successor * S ((S (S bpvi_j_add_mul_result_power)) * bpvi_v_add_mul_result_power) + (bpvi_successor_add_mul_result_power))) /\ bpvi_successor_add_mul_result_power = bpvi_partial_add_mul_result_power * bpvi_factor_add_mul_result_power)))))))) /\ exists bpvi_divisor_factor_add_mul_result. a * b = bpvi_result_add_mul_result * bpvi_divisor_factor_add_mul_result))

Structural proof guide

Multiplying power divisors adds their exponents.

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

  1. 0001intro p
  2. 0002intro e
  3. 0003intro f
  4. 0004intro s
  5. 0005intro a
  6. 0006intro b
  7. 0007intro hsum
  8. 0008intro hleft
  9. 0009intro hright
  10. 0010cases hleft
  11. 0011cases hleft_witness
  12. 0012cases hleft_witness_right
  13. 0013cases hright
  14. 0014cases hright_witness
  15. 0015cases hright_witness_right
  16. 0016have htotal : exists r. (exists ff_b_bpd_add_mul_total_witness ff_c_bpd_add_mul_total_witness. ((forall ff_i_bpd_add_mul_total_witness_repeat. (exists ff_lt_bpd_add_mul_total_witness_repeat_bound. ff_lt_bpd_add_mul_total_witness_repeat_bound + S ff_i_bpd_add_mul_total_witness_repeat = s) -> (((exists ff_h_bpd_add_mul_total_witness_repeat_decoded. ff_h_bpd_add_mul_total_witness_repeat_decoded + S (p) = S ((S (ff_i_bpd_add_mul_total_witness_repeat)) * ff_c_bpd_add_mul_total_witness)) /\ exists ff_q_bpd_add_mul_total_witness_repeat_decoded. ff_b_bpd_add_mul_total_witness = ff_q_bpd_add_mul_total_witness_repeat_decoded * S ((S (ff_i_bpd_add_mul_total_witness_repeat)) * ff_c_bpd_add_mul_total_witness) + (p)))) /\ (exists ff_u_bpd_add_mul_total_witness_product ff_v_bpd_add_mul_total_witness_product. ((((exists ff_h_bpd_add_mul_total_witness_product_start. ff_h_bpd_add_mul_total_witness_product_start + S (1) = S ((S (0)) * ff_v_bpd_add_mul_total_witness_product)) /\ exists ff_q_bpd_add_mul_total_witness_product_start. ff_u_bpd_add_mul_total_witness_product = ff_q_bpd_add_mul_total_witness_product_start * S ((S (0)) * ff_v_bpd_add_mul_total_witness_product) + (1))) /\ ((((exists ff_h_bpd_add_mul_total_witness_product_terminal. ff_h_bpd_add_mul_total_witness_product_terminal + S (r) = S ((S (s)) * ff_v_bpd_add_mul_total_witness_product)) /\ exists ff_q_bpd_add_mul_total_witness_product_terminal. ff_u_bpd_add_mul_total_witness_product = ff_q_bpd_add_mul_total_witness_product_terminal * S ((S (s)) * ff_v_bpd_add_mul_total_witness_product) + (r))) /\ forall ff_i_bpd_add_mul_total_witness_product. (exists ff_lt_bpd_add_mul_total_witness_product_bound. ff_lt_bpd_add_mul_total_witness_product_bound + S ff_i_bpd_add_mul_total_witness_product = s) -> exists ff_p_bpd_add_mul_total_witness_product ff_r_bpd_add_mul_total_witness_product ff_s_bpd_add_mul_total_witness_product. ((((exists ff_h_bpd_add_mul_total_witness_product_factor. ff_h_bpd_add_mul_total_witness_product_factor + S (ff_p_bpd_add_mul_total_witness_product) = S ((S (ff_i_bpd_add_mul_total_witness_product)) * ff_c_bpd_add_mul_total_witness)) /\ exists ff_q_bpd_add_mul_total_witness_product_factor. ff_b_bpd_add_mul_total_witness = ff_q_bpd_add_mul_total_witness_product_factor * S ((S (ff_i_bpd_add_mul_total_witness_product)) * ff_c_bpd_add_mul_total_witness) + (ff_p_bpd_add_mul_total_witness_product))) /\ ((((exists ff_h_bpd_add_mul_total_witness_product_partial. ff_h_bpd_add_mul_total_witness_product_partial + S (ff_r_bpd_add_mul_total_witness_product) = S ((S (ff_i_bpd_add_mul_total_witness_product)) * ff_v_bpd_add_mul_total_witness_product)) /\ exists ff_q_bpd_add_mul_total_witness_product_partial. ff_u_bpd_add_mul_total_witness_product = ff_q_bpd_add_mul_total_witness_product_partial * S ((S (ff_i_bpd_add_mul_total_witness_product)) * ff_v_bpd_add_mul_total_witness_product) + (ff_r_bpd_add_mul_total_witness_product))) /\ ((((exists ff_h_bpd_add_mul_total_witness_product_successor. ff_h_bpd_add_mul_total_witness_product_successor + S (ff_s_bpd_add_mul_total_witness_product) = S ((S (S ff_i_bpd_add_mul_total_witness_product)) * ff_v_bpd_add_mul_total_witness_product)) /\ exists ff_q_bpd_add_mul_total_witness_product_successor. ff_u_bpd_add_mul_total_witness_product = ff_q_bpd_add_mul_total_witness_product_successor * S ((S (S ff_i_bpd_add_mul_total_witness_product)) * ff_v_bpd_add_mul_total_witness_product) + (ff_s_bpd_add_mul_total_witness_product))) /\ ff_s_bpd_add_mul_total_witness_product = ff_r_bpd_add_mul_total_witness_product * ff_p_bpd_add_mul_total_witness_product))))))))
  17. 0017specialize pow_exists p
  18. 0018specialize pow_exists s
  19. 0019exact pow_exists
  20. 0020cases htotal
  21. 0021have hpower_product : x4 = x * x2
  22. 0022specialize pow_add p
  23. 0023specialize pow_add e
  24. 0024specialize pow_add f
  25. 0025specialize pow_add s
  26. 0026specialize pow_add x
  27. 0027specialize pow_add x2
  28. 0028specialize pow_add x4
  29. 0029apply pow_add
  30. 0030exact hsum
  31. 0031exact hleft_witness_left
  32. 0032exact hright_witness_left
  33. 0033exact htotal_witness
  34. 0034exists x4
  35. 0035split
  36. 0036exact htotal_witness
  37. 0037exists x1 * x3
  38. 0038trans (x * x1) * (x2 * x3)
  39. 0039congr
  40. 0040exact hleft_witness_right_witness
  41. 0041exact hright_witness_right_witness
  42. 0042trans (x * x2) * (x1 * x3)
  43. 0043apply mul_shuffle_four
  44. 0044congr
  45. 0045symm
  46. 0046exact hpower_product
  47. 0047refl