BT00S1

power_quotient_prefix_transport

Alpha body-checked ยท checked-use disabled

Equivalent power-quotient prefixes transport decoded quotients pointwise.

Exact expanded PA statement

forall p n b c z d l. (forall bls_index_bls_transport_source. (exists bls_gap_bls_transport_source_bound. bls_gap_bls_transport_source_bound + S (bls_index_bls_transport_source) = (l)) -> exists bls_power_bls_transport_source bls_quotient_bls_transport_source bls_remainder_bls_transport_source. ((exists bpvi_b_bls_bls_transport_source_power bpvi_c_bls_bls_transport_source_power. ((forall bpvi_i_bls_bls_transport_source_power. (exists bpvi_repeat_gap_bls_bls_transport_source_power. bpvi_repeat_gap_bls_bls_transport_source_power + S bpvi_i_bls_bls_transport_source_power = S bls_index_bls_transport_source) -> (((exists bpvi_h_bls_bls_transport_source_power_repeat. bpvi_h_bls_bls_transport_source_power_repeat + S (p) = S ((S (bpvi_i_bls_bls_transport_source_power)) * bpvi_c_bls_bls_transport_source_power)) /\ exists bpvi_q_bls_bls_transport_source_power_repeat. bpvi_b_bls_bls_transport_source_power = bpvi_q_bls_bls_transport_source_power_repeat * S ((S (bpvi_i_bls_bls_transport_source_power)) * bpvi_c_bls_bls_transport_source_power) + (p)))) /\ (exists bpvi_u_bls_bls_transport_source_power bpvi_v_bls_bls_transport_source_power. ((((exists bpvi_h_bls_bls_transport_source_power_start. bpvi_h_bls_bls_transport_source_power_start + S (1) = S ((S (0)) * bpvi_v_bls_bls_transport_source_power)) /\ exists bpvi_q_bls_bls_transport_source_power_start. bpvi_u_bls_bls_transport_source_power = bpvi_q_bls_bls_transport_source_power_start * S ((S (0)) * bpvi_v_bls_bls_transport_source_power) + (1))) /\ ((((exists bpvi_h_bls_bls_transport_source_power_terminal. bpvi_h_bls_bls_transport_source_power_terminal + S (bls_power_bls_transport_source) = S ((S (S bls_index_bls_transport_source)) * bpvi_v_bls_bls_transport_source_power)) /\ exists bpvi_q_bls_bls_transport_source_power_terminal. bpvi_u_bls_bls_transport_source_power = bpvi_q_bls_bls_transport_source_power_terminal * S ((S (S bls_index_bls_transport_source)) * bpvi_v_bls_bls_transport_source_power) + (bls_power_bls_transport_source))) /\ forall bpvi_j_bls_bls_transport_source_power. (exists bpvi_product_gap_bls_bls_transport_source_power. bpvi_product_gap_bls_bls_transport_source_power + S bpvi_j_bls_bls_transport_source_power = S bls_index_bls_transport_source) -> exists bpvi_factor_bls_bls_transport_source_power bpvi_partial_bls_bls_transport_source_power bpvi_successor_bls_bls_transport_source_power. ((((exists bpvi_h_bls_bls_transport_source_power_factor. bpvi_h_bls_bls_transport_source_power_factor + S (bpvi_factor_bls_bls_transport_source_power) = S ((S (bpvi_j_bls_bls_transport_source_power)) * bpvi_c_bls_bls_transport_source_power)) /\ exists bpvi_q_bls_bls_transport_source_power_factor. bpvi_b_bls_bls_transport_source_power = bpvi_q_bls_bls_transport_source_power_factor * S ((S (bpvi_j_bls_bls_transport_source_power)) * bpvi_c_bls_bls_transport_source_power) + (bpvi_factor_bls_bls_transport_source_power))) /\ ((((exists bpvi_h_bls_bls_transport_source_power_partial. bpvi_h_bls_bls_transport_source_power_partial + S (bpvi_partial_bls_bls_transport_source_power) = S ((S (bpvi_j_bls_bls_transport_source_power)) * bpvi_v_bls_bls_transport_source_power)) /\ exists bpvi_q_bls_bls_transport_source_power_partial. bpvi_u_bls_bls_transport_source_power = bpvi_q_bls_bls_transport_source_power_partial * S ((S (bpvi_j_bls_bls_transport_source_power)) * bpvi_v_bls_bls_transport_source_power) + (bpvi_partial_bls_bls_transport_source_power))) /\ ((((exists bpvi_h_bls_bls_transport_source_power_successor. bpvi_h_bls_bls_transport_source_power_successor + S (bpvi_successor_bls_bls_transport_source_power) = S ((S (S bpvi_j_bls_bls_transport_source_power)) * bpvi_v_bls_bls_transport_source_power)) /\ exists bpvi_q_bls_bls_transport_source_power_successor. bpvi_u_bls_bls_transport_source_power = bpvi_q_bls_bls_transport_source_power_successor * S ((S (S bpvi_j_bls_bls_transport_source_power)) * bpvi_v_bls_bls_transport_source_power) + (bpvi_successor_bls_bls_transport_source_power))) /\ bpvi_successor_bls_bls_transport_source_power = bpvi_partial_bls_bls_transport_source_power * bpvi_factor_bls_bls_transport_source_power)))))))) /\ ((((exists ff_h_bls_bls_transport_source_quotient_entry. ff_h_bls_bls_transport_source_quotient_entry + S (bls_quotient_bls_transport_source) = S ((S (bls_index_bls_transport_source)) * c)) /\ exists ff_q_bls_bls_transport_source_quotient_entry. b = ff_q_bls_bls_transport_source_quotient_entry * S ((S (bls_index_bls_transport_source)) * c) + (bls_quotient_bls_transport_source))) /\ ((n = bls_power_bls_transport_source * bls_quotient_bls_transport_source + bls_remainder_bls_transport_source /\ exists bls_remainder_gap_bls_transport_source_division. bls_remainder_gap_bls_transport_source_division + S (bls_remainder_bls_transport_source) = bls_power_bls_transport_source))))) -> (forall bls_index_bls_transport_target. (exists bls_gap_bls_transport_target_bound. bls_gap_bls_transport_target_bound + S (bls_index_bls_transport_target) = (l)) -> exists bls_power_bls_transport_target bls_quotient_bls_transport_target bls_remainder_bls_transport_target. ((exists bpvi_b_bls_bls_transport_target_power bpvi_c_bls_bls_transport_target_power. ((forall bpvi_i_bls_bls_transport_target_power. (exists bpvi_repeat_gap_bls_bls_transport_target_power. bpvi_repeat_gap_bls_bls_transport_target_power + S bpvi_i_bls_bls_transport_target_power = S bls_index_bls_transport_target) -> (((exists bpvi_h_bls_bls_transport_target_power_repeat. bpvi_h_bls_bls_transport_target_power_repeat + S (p) = S ((S (bpvi_i_bls_bls_transport_target_power)) * bpvi_c_bls_bls_transport_target_power)) /\ exists bpvi_q_bls_bls_transport_target_power_repeat. bpvi_b_bls_bls_transport_target_power = bpvi_q_bls_bls_transport_target_power_repeat * S ((S (bpvi_i_bls_bls_transport_target_power)) * bpvi_c_bls_bls_transport_target_power) + (p)))) /\ (exists bpvi_u_bls_bls_transport_target_power bpvi_v_bls_bls_transport_target_power. ((((exists bpvi_h_bls_bls_transport_target_power_start. bpvi_h_bls_bls_transport_target_power_start + S (1) = S ((S (0)) * bpvi_v_bls_bls_transport_target_power)) /\ exists bpvi_q_bls_bls_transport_target_power_start. bpvi_u_bls_bls_transport_target_power = bpvi_q_bls_bls_transport_target_power_start * S ((S (0)) * bpvi_v_bls_bls_transport_target_power) + (1))) /\ ((((exists bpvi_h_bls_bls_transport_target_power_terminal. bpvi_h_bls_bls_transport_target_power_terminal + S (bls_power_bls_transport_target) = S ((S (S bls_index_bls_transport_target)) * bpvi_v_bls_bls_transport_target_power)) /\ exists bpvi_q_bls_bls_transport_target_power_terminal. bpvi_u_bls_bls_transport_target_power = bpvi_q_bls_bls_transport_target_power_terminal * S ((S (S bls_index_bls_transport_target)) * bpvi_v_bls_bls_transport_target_power) + (bls_power_bls_transport_target))) /\ forall bpvi_j_bls_bls_transport_target_power. (exists bpvi_product_gap_bls_bls_transport_target_power. bpvi_product_gap_bls_bls_transport_target_power + S bpvi_j_bls_bls_transport_target_power = S bls_index_bls_transport_target) -> exists bpvi_factor_bls_bls_transport_target_power bpvi_partial_bls_bls_transport_target_power bpvi_successor_bls_bls_transport_target_power. ((((exists bpvi_h_bls_bls_transport_target_power_factor. bpvi_h_bls_bls_transport_target_power_factor + S (bpvi_factor_bls_bls_transport_target_power) = S ((S (bpvi_j_bls_bls_transport_target_power)) * bpvi_c_bls_bls_transport_target_power)) /\ exists bpvi_q_bls_bls_transport_target_power_factor. bpvi_b_bls_bls_transport_target_power = bpvi_q_bls_bls_transport_target_power_factor * S ((S (bpvi_j_bls_bls_transport_target_power)) * bpvi_c_bls_bls_transport_target_power) + (bpvi_factor_bls_bls_transport_target_power))) /\ ((((exists bpvi_h_bls_bls_transport_target_power_partial. bpvi_h_bls_bls_transport_target_power_partial + S (bpvi_partial_bls_bls_transport_target_power) = S ((S (bpvi_j_bls_bls_transport_target_power)) * bpvi_v_bls_bls_transport_target_power)) /\ exists bpvi_q_bls_bls_transport_target_power_partial. bpvi_u_bls_bls_transport_target_power = bpvi_q_bls_bls_transport_target_power_partial * S ((S (bpvi_j_bls_bls_transport_target_power)) * bpvi_v_bls_bls_transport_target_power) + (bpvi_partial_bls_bls_transport_target_power))) /\ ((((exists bpvi_h_bls_bls_transport_target_power_successor. bpvi_h_bls_bls_transport_target_power_successor + S (bpvi_successor_bls_bls_transport_target_power) = S ((S (S bpvi_j_bls_bls_transport_target_power)) * bpvi_v_bls_bls_transport_target_power)) /\ exists bpvi_q_bls_bls_transport_target_power_successor. bpvi_u_bls_bls_transport_target_power = bpvi_q_bls_bls_transport_target_power_successor * S ((S (S bpvi_j_bls_bls_transport_target_power)) * bpvi_v_bls_bls_transport_target_power) + (bpvi_successor_bls_bls_transport_target_power))) /\ bpvi_successor_bls_bls_transport_target_power = bpvi_partial_bls_bls_transport_target_power * bpvi_factor_bls_bls_transport_target_power)))))))) /\ ((((exists ff_h_bls_bls_transport_target_quotient_entry. ff_h_bls_bls_transport_target_quotient_entry + S (bls_quotient_bls_transport_target) = S ((S (bls_index_bls_transport_target)) * d)) /\ exists ff_q_bls_bls_transport_target_quotient_entry. z = ff_q_bls_bls_transport_target_quotient_entry * S ((S (bls_index_bls_transport_target)) * d) + (bls_quotient_bls_transport_target))) /\ ((n = bls_power_bls_transport_target * bls_quotient_bls_transport_target + bls_remainder_bls_transport_target /\ exists bls_remainder_gap_bls_transport_target_division. bls_remainder_gap_bls_transport_target_division + S (bls_remainder_bls_transport_target) = bls_power_bls_transport_target))))) -> forall i q. (exists bls_gap_bls_transport_bound. bls_gap_bls_transport_bound + S (i) = (l)) -> (((exists ff_h_bls_transport_given. ff_h_bls_transport_given + S (q) = S ((S (i)) * c)) /\ exists ff_q_bls_transport_given. b = ff_q_bls_transport_given * S ((S (i)) * c) + (q))) -> (((exists ff_h_bls_transport_result. ff_h_bls_transport_result + S (q) = S ((S (i)) * d)) /\ exists ff_q_bls_transport_result. z = ff_q_bls_transport_result * S ((S (i)) * d) + (q)))

Structural proof guide

Equivalent power-quotient prefixes transport decoded quotients pointwise.

Direct prerequisites: beta_at_unique, pow_functional, division_remainder_unique. The authored body proceeds by case analysis (13), intermediate claims (6), equality transport (6).

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 n
  3. 0003intro b
  4. 0004intro c
  5. 0005intro z
  6. 0006intro d
  7. 0007intro l
  8. 0008intro hsource
  9. 0009intro htarget
  10. 0010intro i
  11. 0011intro q
  12. 0012intro hi
  13. 0013intro hq
  14. 0014have hs : exists D u r. ((exists bpvi_b_bls_transport_source_power bpvi_c_bls_transport_source_power. ((forall bpvi_i_bls_transport_source_power. (exists bpvi_repeat_gap_bls_transport_source_power. bpvi_repeat_gap_bls_transport_source_power + S bpvi_i_bls_transport_source_power = S i) -> (((exists bpvi_h_bls_transport_source_power_repeat. bpvi_h_bls_transport_source_power_repeat + S (p) = S ((S (bpvi_i_bls_transport_source_power)) * bpvi_c_bls_transport_source_power)) /\ exists bpvi_q_bls_transport_source_power_repeat. bpvi_b_bls_transport_source_power = bpvi_q_bls_transport_source_power_repeat * S ((S (bpvi_i_bls_transport_source_power)) * bpvi_c_bls_transport_source_power) + (p)))) /\ (exists bpvi_u_bls_transport_source_power bpvi_v_bls_transport_source_power. ((((exists bpvi_h_bls_transport_source_power_start. bpvi_h_bls_transport_source_power_start + S (1) = S ((S (0)) * bpvi_v_bls_transport_source_power)) /\ exists bpvi_q_bls_transport_source_power_start. bpvi_u_bls_transport_source_power = bpvi_q_bls_transport_source_power_start * S ((S (0)) * bpvi_v_bls_transport_source_power) + (1))) /\ ((((exists bpvi_h_bls_transport_source_power_terminal. bpvi_h_bls_transport_source_power_terminal + S (D) = S ((S (S i)) * bpvi_v_bls_transport_source_power)) /\ exists bpvi_q_bls_transport_source_power_terminal. bpvi_u_bls_transport_source_power = bpvi_q_bls_transport_source_power_terminal * S ((S (S i)) * bpvi_v_bls_transport_source_power) + (D))) /\ forall bpvi_j_bls_transport_source_power. (exists bpvi_product_gap_bls_transport_source_power. bpvi_product_gap_bls_transport_source_power + S bpvi_j_bls_transport_source_power = S i) -> exists bpvi_factor_bls_transport_source_power bpvi_partial_bls_transport_source_power bpvi_successor_bls_transport_source_power. ((((exists bpvi_h_bls_transport_source_power_factor. bpvi_h_bls_transport_source_power_factor + S (bpvi_factor_bls_transport_source_power) = S ((S (bpvi_j_bls_transport_source_power)) * bpvi_c_bls_transport_source_power)) /\ exists bpvi_q_bls_transport_source_power_factor. bpvi_b_bls_transport_source_power = bpvi_q_bls_transport_source_power_factor * S ((S (bpvi_j_bls_transport_source_power)) * bpvi_c_bls_transport_source_power) + (bpvi_factor_bls_transport_source_power))) /\ ((((exists bpvi_h_bls_transport_source_power_partial. bpvi_h_bls_transport_source_power_partial + S (bpvi_partial_bls_transport_source_power) = S ((S (bpvi_j_bls_transport_source_power)) * bpvi_v_bls_transport_source_power)) /\ exists bpvi_q_bls_transport_source_power_partial. bpvi_u_bls_transport_source_power = bpvi_q_bls_transport_source_power_partial * S ((S (bpvi_j_bls_transport_source_power)) * bpvi_v_bls_transport_source_power) + (bpvi_partial_bls_transport_source_power))) /\ ((((exists bpvi_h_bls_transport_source_power_successor. bpvi_h_bls_transport_source_power_successor + S (bpvi_successor_bls_transport_source_power) = S ((S (S bpvi_j_bls_transport_source_power)) * bpvi_v_bls_transport_source_power)) /\ exists bpvi_q_bls_transport_source_power_successor. bpvi_u_bls_transport_source_power = bpvi_q_bls_transport_source_power_successor * S ((S (S bpvi_j_bls_transport_source_power)) * bpvi_v_bls_transport_source_power) + (bpvi_successor_bls_transport_source_power))) /\ bpvi_successor_bls_transport_source_power = bpvi_partial_bls_transport_source_power * bpvi_factor_bls_transport_source_power)))))))) /\ ((((exists ff_h_bls_transport_source_stored. ff_h_bls_transport_source_stored + S (u) = S ((S (i)) * c)) /\ exists ff_q_bls_transport_source_stored. b = ff_q_bls_transport_source_stored * S ((S (i)) * c) + (u))) /\ ((n = D * u + r /\ exists bls_remainder_gap_bls_transport_source_division. bls_remainder_gap_bls_transport_source_division + S (r) = D))))
  15. 0015specialize hsource i
  16. 0016apply hsource
  17. 0017exact hi
  18. 0018have ht : exists E v s. ((exists bpvi_b_bls_transport_target_power bpvi_c_bls_transport_target_power. ((forall bpvi_i_bls_transport_target_power. (exists bpvi_repeat_gap_bls_transport_target_power. bpvi_repeat_gap_bls_transport_target_power + S bpvi_i_bls_transport_target_power = S i) -> (((exists bpvi_h_bls_transport_target_power_repeat. bpvi_h_bls_transport_target_power_repeat + S (p) = S ((S (bpvi_i_bls_transport_target_power)) * bpvi_c_bls_transport_target_power)) /\ exists bpvi_q_bls_transport_target_power_repeat. bpvi_b_bls_transport_target_power = bpvi_q_bls_transport_target_power_repeat * S ((S (bpvi_i_bls_transport_target_power)) * bpvi_c_bls_transport_target_power) + (p)))) /\ (exists bpvi_u_bls_transport_target_power bpvi_v_bls_transport_target_power. ((((exists bpvi_h_bls_transport_target_power_start. bpvi_h_bls_transport_target_power_start + S (1) = S ((S (0)) * bpvi_v_bls_transport_target_power)) /\ exists bpvi_q_bls_transport_target_power_start. bpvi_u_bls_transport_target_power = bpvi_q_bls_transport_target_power_start * S ((S (0)) * bpvi_v_bls_transport_target_power) + (1))) /\ ((((exists bpvi_h_bls_transport_target_power_terminal. bpvi_h_bls_transport_target_power_terminal + S (E) = S ((S (S i)) * bpvi_v_bls_transport_target_power)) /\ exists bpvi_q_bls_transport_target_power_terminal. bpvi_u_bls_transport_target_power = bpvi_q_bls_transport_target_power_terminal * S ((S (S i)) * bpvi_v_bls_transport_target_power) + (E))) /\ forall bpvi_j_bls_transport_target_power. (exists bpvi_product_gap_bls_transport_target_power. bpvi_product_gap_bls_transport_target_power + S bpvi_j_bls_transport_target_power = S i) -> exists bpvi_factor_bls_transport_target_power bpvi_partial_bls_transport_target_power bpvi_successor_bls_transport_target_power. ((((exists bpvi_h_bls_transport_target_power_factor. bpvi_h_bls_transport_target_power_factor + S (bpvi_factor_bls_transport_target_power) = S ((S (bpvi_j_bls_transport_target_power)) * bpvi_c_bls_transport_target_power)) /\ exists bpvi_q_bls_transport_target_power_factor. bpvi_b_bls_transport_target_power = bpvi_q_bls_transport_target_power_factor * S ((S (bpvi_j_bls_transport_target_power)) * bpvi_c_bls_transport_target_power) + (bpvi_factor_bls_transport_target_power))) /\ ((((exists bpvi_h_bls_transport_target_power_partial. bpvi_h_bls_transport_target_power_partial + S (bpvi_partial_bls_transport_target_power) = S ((S (bpvi_j_bls_transport_target_power)) * bpvi_v_bls_transport_target_power)) /\ exists bpvi_q_bls_transport_target_power_partial. bpvi_u_bls_transport_target_power = bpvi_q_bls_transport_target_power_partial * S ((S (bpvi_j_bls_transport_target_power)) * bpvi_v_bls_transport_target_power) + (bpvi_partial_bls_transport_target_power))) /\ ((((exists bpvi_h_bls_transport_target_power_successor. bpvi_h_bls_transport_target_power_successor + S (bpvi_successor_bls_transport_target_power) = S ((S (S bpvi_j_bls_transport_target_power)) * bpvi_v_bls_transport_target_power)) /\ exists bpvi_q_bls_transport_target_power_successor. bpvi_u_bls_transport_target_power = bpvi_q_bls_transport_target_power_successor * S ((S (S bpvi_j_bls_transport_target_power)) * bpvi_v_bls_transport_target_power) + (bpvi_successor_bls_transport_target_power))) /\ bpvi_successor_bls_transport_target_power = bpvi_partial_bls_transport_target_power * bpvi_factor_bls_transport_target_power)))))))) /\ ((((exists ff_h_bls_transport_target_stored. ff_h_bls_transport_target_stored + S (v) = S ((S (i)) * d)) /\ exists ff_q_bls_transport_target_stored. z = ff_q_bls_transport_target_stored * S ((S (i)) * d) + (v))) /\ ((n = E * v + s /\ exists bls_remainder_gap_bls_transport_target_division. bls_remainder_gap_bls_transport_target_division + S (s) = E))))
  19. 0019specialize htarget i
  20. 0020apply htarget
  21. 0021exact hi
  22. 0022cases hs
  23. 0023cases hs_witness
  24. 0024cases hs_witness_witness
  25. 0025cases hs_witness_witness_witness
  26. 0026cases hs_witness_witness_witness_right
  27. 0027cases hs_witness_witness_witness_right_right
  28. 0028cases ht
  29. 0029cases ht_witness
  30. 0030cases ht_witness_witness
  31. 0031cases ht_witness_witness_witness
  32. 0032cases ht_witness_witness_witness_right
  33. 0033cases ht_witness_witness_witness_right_right
  34. 0034have hD : x = x3
  35. 0035specialize pow_functional p
  36. 0036specialize pow_functional (S i)
  37. 0037specialize pow_functional x
  38. 0038specialize pow_functional x3
  39. 0039apply pow_functional
  40. 0040exact hs_witness_witness_witness_left
  41. 0041exact ht_witness_witness_witness_left
  42. 0042rewrite <- hD at ht_witness_witness_witness_right_right_left
  43. 0043rewrite <- hD at ht_witness_witness_witness_right_right_right
  44. 0044have hquotients : x1 = x4
  45. 0045specialize division_remainder_unique x
  46. 0046specialize division_remainder_unique n
  47. 0047specialize division_remainder_unique x1
  48. 0048specialize division_remainder_unique x2
  49. 0049specialize division_remainder_unique x4
  50. 0050specialize division_remainder_unique x5
  51. 0051have hdivision_unique : x1 = x4 /\ x2 = x5
  52. 0052apply division_remainder_unique
  53. 0053exact hs_witness_witness_witness_right_right_left
  54. 0054exact hs_witness_witness_witness_right_right_right
  55. 0055exact ht_witness_witness_witness_right_right_left
  56. 0056exact ht_witness_witness_witness_right_right_right
  57. 0057cases hdivision_unique
  58. 0058exact hdivision_unique_left
  59. 0059have hstored : x1 = q
  60. 0060specialize beta_at_unique b
  61. 0061specialize beta_at_unique c
  62. 0062specialize beta_at_unique i
  63. 0063specialize beta_at_unique x1
  64. 0064specialize beta_at_unique q
  65. 0065apply beta_at_unique
  66. 0066exact hs_witness_witness_witness_right_left
  67. 0067exact hq
  68. 0068rewrite <- hstored
  69. 0069rewrite hquotients
  70. 0070rewrite <- hstored
  71. 0071rewrite hquotients
  72. 0072exact ht_witness_witness_witness_right_left