BT00W3

pow_block_bound_from_total

Alpha body-checked ยท checked-use disabled

A supplied power bound remains true after a common block multiplier.

Exact expanded PA statement

forall a b d e m x y X Y. (forall bpt_a_hj32_block bpt_e_hj32_block. exists bpt_x_hj32_block. (exists ff_b_bpt_value_hj32_block ff_c_bpt_value_hj32_block. ((forall ff_i_bpt_value_hj32_block_repeat. (exists ff_lt_bpt_value_hj32_block_repeat_bound. ff_lt_bpt_value_hj32_block_repeat_bound + S ff_i_bpt_value_hj32_block_repeat = bpt_e_hj32_block) -> (((exists ff_h_bpt_value_hj32_block_repeat_decoded. ff_h_bpt_value_hj32_block_repeat_decoded + S (bpt_a_hj32_block) = S ((S (ff_i_bpt_value_hj32_block_repeat)) * ff_c_bpt_value_hj32_block)) /\ exists ff_q_bpt_value_hj32_block_repeat_decoded. ff_b_bpt_value_hj32_block = ff_q_bpt_value_hj32_block_repeat_decoded * S ((S (ff_i_bpt_value_hj32_block_repeat)) * ff_c_bpt_value_hj32_block) + (bpt_a_hj32_block)))) /\ (exists ff_u_bpt_value_hj32_block_product ff_v_bpt_value_hj32_block_product. ((((exists ff_h_bpt_value_hj32_block_product_start. ff_h_bpt_value_hj32_block_product_start + S (1) = S ((S (0)) * ff_v_bpt_value_hj32_block_product)) /\ exists ff_q_bpt_value_hj32_block_product_start. ff_u_bpt_value_hj32_block_product = ff_q_bpt_value_hj32_block_product_start * S ((S (0)) * ff_v_bpt_value_hj32_block_product) + (1))) /\ ((((exists ff_h_bpt_value_hj32_block_product_terminal. ff_h_bpt_value_hj32_block_product_terminal + S (bpt_x_hj32_block) = S ((S (bpt_e_hj32_block)) * ff_v_bpt_value_hj32_block_product)) /\ exists ff_q_bpt_value_hj32_block_product_terminal. ff_u_bpt_value_hj32_block_product = ff_q_bpt_value_hj32_block_product_terminal * S ((S (bpt_e_hj32_block)) * ff_v_bpt_value_hj32_block_product) + (bpt_x_hj32_block))) /\ forall ff_i_bpt_value_hj32_block_product. (exists ff_lt_bpt_value_hj32_block_product_bound. ff_lt_bpt_value_hj32_block_product_bound + S ff_i_bpt_value_hj32_block_product = bpt_e_hj32_block) -> exists ff_p_bpt_value_hj32_block_product ff_r_bpt_value_hj32_block_product ff_s_bpt_value_hj32_block_product. ((((exists ff_h_bpt_value_hj32_block_product_factor. ff_h_bpt_value_hj32_block_product_factor + S (ff_p_bpt_value_hj32_block_product) = S ((S (ff_i_bpt_value_hj32_block_product)) * ff_c_bpt_value_hj32_block)) /\ exists ff_q_bpt_value_hj32_block_product_factor. ff_b_bpt_value_hj32_block = ff_q_bpt_value_hj32_block_product_factor * S ((S (ff_i_bpt_value_hj32_block_product)) * ff_c_bpt_value_hj32_block) + (ff_p_bpt_value_hj32_block_product))) /\ ((((exists ff_h_bpt_value_hj32_block_product_partial. ff_h_bpt_value_hj32_block_product_partial + S (ff_r_bpt_value_hj32_block_product) = S ((S (ff_i_bpt_value_hj32_block_product)) * ff_v_bpt_value_hj32_block_product)) /\ exists ff_q_bpt_value_hj32_block_product_partial. ff_u_bpt_value_hj32_block_product = ff_q_bpt_value_hj32_block_product_partial * S ((S (ff_i_bpt_value_hj32_block_product)) * ff_v_bpt_value_hj32_block_product) + (ff_r_bpt_value_hj32_block_product))) /\ ((((exists ff_h_bpt_value_hj32_block_product_successor. ff_h_bpt_value_hj32_block_product_successor + S (ff_s_bpt_value_hj32_block_product) = S ((S (S ff_i_bpt_value_hj32_block_product)) * ff_v_bpt_value_hj32_block_product)) /\ exists ff_q_bpt_value_hj32_block_product_successor. ff_u_bpt_value_hj32_block_product = ff_q_bpt_value_hj32_block_product_successor * S ((S (S ff_i_bpt_value_hj32_block_product)) * ff_v_bpt_value_hj32_block_product) + (ff_s_bpt_value_hj32_block_product))) /\ ff_s_bpt_value_hj32_block_product = ff_r_bpt_value_hj32_block_product * ff_p_bpt_value_hj32_block_product))))))))) -> (exists pa_b_hj32_block_left_seed pa_c_hj32_block_left_seed. ((forall pa_i_hj32_block_left_seed_repeat. (exists pa_lt_hj32_block_left_seed_repeat_bound. pa_lt_hj32_block_left_seed_repeat_bound + S pa_i_hj32_block_left_seed_repeat = d) -> (((exists pa_h_hj32_block_left_seed_repeat_decoded. pa_h_hj32_block_left_seed_repeat_decoded + S (a) = S ((S (pa_i_hj32_block_left_seed_repeat)) * pa_c_hj32_block_left_seed)) /\ exists pa_q_hj32_block_left_seed_repeat_decoded. pa_b_hj32_block_left_seed = pa_q_hj32_block_left_seed_repeat_decoded * S ((S (pa_i_hj32_block_left_seed_repeat)) * pa_c_hj32_block_left_seed) + (a)))) /\ (exists pa_u_hj32_block_left_seed_product pa_v_hj32_block_left_seed_product. ((((exists pa_h_hj32_block_left_seed_product_start. pa_h_hj32_block_left_seed_product_start + S (1) = S ((S (0)) * pa_v_hj32_block_left_seed_product)) /\ exists pa_q_hj32_block_left_seed_product_start. pa_u_hj32_block_left_seed_product = pa_q_hj32_block_left_seed_product_start * S ((S (0)) * pa_v_hj32_block_left_seed_product) + (1))) /\ ((((exists pa_h_hj32_block_left_seed_product_terminal. pa_h_hj32_block_left_seed_product_terminal + S (x) = S ((S (d)) * pa_v_hj32_block_left_seed_product)) /\ exists pa_q_hj32_block_left_seed_product_terminal. pa_u_hj32_block_left_seed_product = pa_q_hj32_block_left_seed_product_terminal * S ((S (d)) * pa_v_hj32_block_left_seed_product) + (x))) /\ forall pa_i_hj32_block_left_seed_product. (exists pa_lt_hj32_block_left_seed_product_bound. pa_lt_hj32_block_left_seed_product_bound + S pa_i_hj32_block_left_seed_product = d) -> exists pa_p_hj32_block_left_seed_product pa_r_hj32_block_left_seed_product pa_s_hj32_block_left_seed_product. ((((exists pa_h_hj32_block_left_seed_product_factor. pa_h_hj32_block_left_seed_product_factor + S (pa_p_hj32_block_left_seed_product) = S ((S (pa_i_hj32_block_left_seed_product)) * pa_c_hj32_block_left_seed)) /\ exists pa_q_hj32_block_left_seed_product_factor. pa_b_hj32_block_left_seed = pa_q_hj32_block_left_seed_product_factor * S ((S (pa_i_hj32_block_left_seed_product)) * pa_c_hj32_block_left_seed) + (pa_p_hj32_block_left_seed_product))) /\ ((((exists pa_h_hj32_block_left_seed_product_partial. pa_h_hj32_block_left_seed_product_partial + S (pa_r_hj32_block_left_seed_product) = S ((S (pa_i_hj32_block_left_seed_product)) * pa_v_hj32_block_left_seed_product)) /\ exists pa_q_hj32_block_left_seed_product_partial. pa_u_hj32_block_left_seed_product = pa_q_hj32_block_left_seed_product_partial * S ((S (pa_i_hj32_block_left_seed_product)) * pa_v_hj32_block_left_seed_product) + (pa_r_hj32_block_left_seed_product))) /\ ((((exists pa_h_hj32_block_left_seed_product_successor. pa_h_hj32_block_left_seed_product_successor + S (pa_s_hj32_block_left_seed_product) = S ((S (S pa_i_hj32_block_left_seed_product)) * pa_v_hj32_block_left_seed_product)) /\ exists pa_q_hj32_block_left_seed_product_successor. pa_u_hj32_block_left_seed_product = pa_q_hj32_block_left_seed_product_successor * S ((S (S pa_i_hj32_block_left_seed_product)) * pa_v_hj32_block_left_seed_product) + (pa_s_hj32_block_left_seed_product))) /\ pa_s_hj32_block_left_seed_product = pa_r_hj32_block_left_seed_product * pa_p_hj32_block_left_seed_product)))))))) -> (exists pa_b_hj32_block_right_seed pa_c_hj32_block_right_seed. ((forall pa_i_hj32_block_right_seed_repeat. (exists pa_lt_hj32_block_right_seed_repeat_bound. pa_lt_hj32_block_right_seed_repeat_bound + S pa_i_hj32_block_right_seed_repeat = e) -> (((exists pa_h_hj32_block_right_seed_repeat_decoded. pa_h_hj32_block_right_seed_repeat_decoded + S (b) = S ((S (pa_i_hj32_block_right_seed_repeat)) * pa_c_hj32_block_right_seed)) /\ exists pa_q_hj32_block_right_seed_repeat_decoded. pa_b_hj32_block_right_seed = pa_q_hj32_block_right_seed_repeat_decoded * S ((S (pa_i_hj32_block_right_seed_repeat)) * pa_c_hj32_block_right_seed) + (b)))) /\ (exists pa_u_hj32_block_right_seed_product pa_v_hj32_block_right_seed_product. ((((exists pa_h_hj32_block_right_seed_product_start. pa_h_hj32_block_right_seed_product_start + S (1) = S ((S (0)) * pa_v_hj32_block_right_seed_product)) /\ exists pa_q_hj32_block_right_seed_product_start. pa_u_hj32_block_right_seed_product = pa_q_hj32_block_right_seed_product_start * S ((S (0)) * pa_v_hj32_block_right_seed_product) + (1))) /\ ((((exists pa_h_hj32_block_right_seed_product_terminal. pa_h_hj32_block_right_seed_product_terminal + S (y) = S ((S (e)) * pa_v_hj32_block_right_seed_product)) /\ exists pa_q_hj32_block_right_seed_product_terminal. pa_u_hj32_block_right_seed_product = pa_q_hj32_block_right_seed_product_terminal * S ((S (e)) * pa_v_hj32_block_right_seed_product) + (y))) /\ forall pa_i_hj32_block_right_seed_product. (exists pa_lt_hj32_block_right_seed_product_bound. pa_lt_hj32_block_right_seed_product_bound + S pa_i_hj32_block_right_seed_product = e) -> exists pa_p_hj32_block_right_seed_product pa_r_hj32_block_right_seed_product pa_s_hj32_block_right_seed_product. ((((exists pa_h_hj32_block_right_seed_product_factor. pa_h_hj32_block_right_seed_product_factor + S (pa_p_hj32_block_right_seed_product) = S ((S (pa_i_hj32_block_right_seed_product)) * pa_c_hj32_block_right_seed)) /\ exists pa_q_hj32_block_right_seed_product_factor. pa_b_hj32_block_right_seed = pa_q_hj32_block_right_seed_product_factor * S ((S (pa_i_hj32_block_right_seed_product)) * pa_c_hj32_block_right_seed) + (pa_p_hj32_block_right_seed_product))) /\ ((((exists pa_h_hj32_block_right_seed_product_partial. pa_h_hj32_block_right_seed_product_partial + S (pa_r_hj32_block_right_seed_product) = S ((S (pa_i_hj32_block_right_seed_product)) * pa_v_hj32_block_right_seed_product)) /\ exists pa_q_hj32_block_right_seed_product_partial. pa_u_hj32_block_right_seed_product = pa_q_hj32_block_right_seed_product_partial * S ((S (pa_i_hj32_block_right_seed_product)) * pa_v_hj32_block_right_seed_product) + (pa_r_hj32_block_right_seed_product))) /\ ((((exists pa_h_hj32_block_right_seed_product_successor. pa_h_hj32_block_right_seed_product_successor + S (pa_s_hj32_block_right_seed_product) = S ((S (S pa_i_hj32_block_right_seed_product)) * pa_v_hj32_block_right_seed_product)) /\ exists pa_q_hj32_block_right_seed_product_successor. pa_u_hj32_block_right_seed_product = pa_q_hj32_block_right_seed_product_successor * S ((S (S pa_i_hj32_block_right_seed_product)) * pa_v_hj32_block_right_seed_product) + (pa_s_hj32_block_right_seed_product))) /\ pa_s_hj32_block_right_seed_product = pa_r_hj32_block_right_seed_product * pa_p_hj32_block_right_seed_product)))))))) -> (exists bqb_le_gap_hj32_block_seed_bound. bqb_le_gap_hj32_block_seed_bound + (x) = (y)) -> (exists pa_b_hj32_block_left pa_c_hj32_block_left. ((forall pa_i_hj32_block_left_repeat. (exists pa_lt_hj32_block_left_repeat_bound. pa_lt_hj32_block_left_repeat_bound + S pa_i_hj32_block_left_repeat = d * m) -> (((exists pa_h_hj32_block_left_repeat_decoded. pa_h_hj32_block_left_repeat_decoded + S (a) = S ((S (pa_i_hj32_block_left_repeat)) * pa_c_hj32_block_left)) /\ exists pa_q_hj32_block_left_repeat_decoded. pa_b_hj32_block_left = pa_q_hj32_block_left_repeat_decoded * S ((S (pa_i_hj32_block_left_repeat)) * pa_c_hj32_block_left) + (a)))) /\ (exists pa_u_hj32_block_left_product pa_v_hj32_block_left_product. ((((exists pa_h_hj32_block_left_product_start. pa_h_hj32_block_left_product_start + S (1) = S ((S (0)) * pa_v_hj32_block_left_product)) /\ exists pa_q_hj32_block_left_product_start. pa_u_hj32_block_left_product = pa_q_hj32_block_left_product_start * S ((S (0)) * pa_v_hj32_block_left_product) + (1))) /\ ((((exists pa_h_hj32_block_left_product_terminal. pa_h_hj32_block_left_product_terminal + S (X) = S ((S (d * m)) * pa_v_hj32_block_left_product)) /\ exists pa_q_hj32_block_left_product_terminal. pa_u_hj32_block_left_product = pa_q_hj32_block_left_product_terminal * S ((S (d * m)) * pa_v_hj32_block_left_product) + (X))) /\ forall pa_i_hj32_block_left_product. (exists pa_lt_hj32_block_left_product_bound. pa_lt_hj32_block_left_product_bound + S pa_i_hj32_block_left_product = d * m) -> exists pa_p_hj32_block_left_product pa_r_hj32_block_left_product pa_s_hj32_block_left_product. ((((exists pa_h_hj32_block_left_product_factor. pa_h_hj32_block_left_product_factor + S (pa_p_hj32_block_left_product) = S ((S (pa_i_hj32_block_left_product)) * pa_c_hj32_block_left)) /\ exists pa_q_hj32_block_left_product_factor. pa_b_hj32_block_left = pa_q_hj32_block_left_product_factor * S ((S (pa_i_hj32_block_left_product)) * pa_c_hj32_block_left) + (pa_p_hj32_block_left_product))) /\ ((((exists pa_h_hj32_block_left_product_partial. pa_h_hj32_block_left_product_partial + S (pa_r_hj32_block_left_product) = S ((S (pa_i_hj32_block_left_product)) * pa_v_hj32_block_left_product)) /\ exists pa_q_hj32_block_left_product_partial. pa_u_hj32_block_left_product = pa_q_hj32_block_left_product_partial * S ((S (pa_i_hj32_block_left_product)) * pa_v_hj32_block_left_product) + (pa_r_hj32_block_left_product))) /\ ((((exists pa_h_hj32_block_left_product_successor. pa_h_hj32_block_left_product_successor + S (pa_s_hj32_block_left_product) = S ((S (S pa_i_hj32_block_left_product)) * pa_v_hj32_block_left_product)) /\ exists pa_q_hj32_block_left_product_successor. pa_u_hj32_block_left_product = pa_q_hj32_block_left_product_successor * S ((S (S pa_i_hj32_block_left_product)) * pa_v_hj32_block_left_product) + (pa_s_hj32_block_left_product))) /\ pa_s_hj32_block_left_product = pa_r_hj32_block_left_product * pa_p_hj32_block_left_product)))))))) -> (exists pa_b_hj32_block_right pa_c_hj32_block_right. ((forall pa_i_hj32_block_right_repeat. (exists pa_lt_hj32_block_right_repeat_bound. pa_lt_hj32_block_right_repeat_bound + S pa_i_hj32_block_right_repeat = e * m) -> (((exists pa_h_hj32_block_right_repeat_decoded. pa_h_hj32_block_right_repeat_decoded + S (b) = S ((S (pa_i_hj32_block_right_repeat)) * pa_c_hj32_block_right)) /\ exists pa_q_hj32_block_right_repeat_decoded. pa_b_hj32_block_right = pa_q_hj32_block_right_repeat_decoded * S ((S (pa_i_hj32_block_right_repeat)) * pa_c_hj32_block_right) + (b)))) /\ (exists pa_u_hj32_block_right_product pa_v_hj32_block_right_product. ((((exists pa_h_hj32_block_right_product_start. pa_h_hj32_block_right_product_start + S (1) = S ((S (0)) * pa_v_hj32_block_right_product)) /\ exists pa_q_hj32_block_right_product_start. pa_u_hj32_block_right_product = pa_q_hj32_block_right_product_start * S ((S (0)) * pa_v_hj32_block_right_product) + (1))) /\ ((((exists pa_h_hj32_block_right_product_terminal. pa_h_hj32_block_right_product_terminal + S (Y) = S ((S (e * m)) * pa_v_hj32_block_right_product)) /\ exists pa_q_hj32_block_right_product_terminal. pa_u_hj32_block_right_product = pa_q_hj32_block_right_product_terminal * S ((S (e * m)) * pa_v_hj32_block_right_product) + (Y))) /\ forall pa_i_hj32_block_right_product. (exists pa_lt_hj32_block_right_product_bound. pa_lt_hj32_block_right_product_bound + S pa_i_hj32_block_right_product = e * m) -> exists pa_p_hj32_block_right_product pa_r_hj32_block_right_product pa_s_hj32_block_right_product. ((((exists pa_h_hj32_block_right_product_factor. pa_h_hj32_block_right_product_factor + S (pa_p_hj32_block_right_product) = S ((S (pa_i_hj32_block_right_product)) * pa_c_hj32_block_right)) /\ exists pa_q_hj32_block_right_product_factor. pa_b_hj32_block_right = pa_q_hj32_block_right_product_factor * S ((S (pa_i_hj32_block_right_product)) * pa_c_hj32_block_right) + (pa_p_hj32_block_right_product))) /\ ((((exists pa_h_hj32_block_right_product_partial. pa_h_hj32_block_right_product_partial + S (pa_r_hj32_block_right_product) = S ((S (pa_i_hj32_block_right_product)) * pa_v_hj32_block_right_product)) /\ exists pa_q_hj32_block_right_product_partial. pa_u_hj32_block_right_product = pa_q_hj32_block_right_product_partial * S ((S (pa_i_hj32_block_right_product)) * pa_v_hj32_block_right_product) + (pa_r_hj32_block_right_product))) /\ ((((exists pa_h_hj32_block_right_product_successor. pa_h_hj32_block_right_product_successor + S (pa_s_hj32_block_right_product) = S ((S (S pa_i_hj32_block_right_product)) * pa_v_hj32_block_right_product)) /\ exists pa_q_hj32_block_right_product_successor. pa_u_hj32_block_right_product = pa_q_hj32_block_right_product_successor * S ((S (S pa_i_hj32_block_right_product)) * pa_v_hj32_block_right_product) + (pa_s_hj32_block_right_product))) /\ pa_s_hj32_block_right_product = pa_r_hj32_block_right_product * pa_p_hj32_block_right_product)))))))) -> (exists bqb_le_gap_hj32_block_result. bqb_le_gap_hj32_block_result + (X) = (Y))

Structural proof guide

A supplied power bound remains true after a common block multiplier.

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

  1. 0001intro a
  2. 0002intro b
  3. 0003intro d
  4. 0004intro e
  5. 0005intro m
  6. 0006intro x
  7. 0007intro y
  8. 0008intro X
  9. 0009intro Y
  10. 0010intro htotal
  11. 0011intro hx
  12. 0012intro hy
  13. 0013intro hxy
  14. 0014intro hX
  15. 0015intro hY
  16. 0016have hxm : exists q. (exists pa_b_hj32_block_left_outer pa_c_hj32_block_left_outer. ((forall pa_i_hj32_block_left_outer_repeat. (exists pa_lt_hj32_block_left_outer_repeat_bound. pa_lt_hj32_block_left_outer_repeat_bound + S pa_i_hj32_block_left_outer_repeat = m) -> (((exists pa_h_hj32_block_left_outer_repeat_decoded. pa_h_hj32_block_left_outer_repeat_decoded + S (x) = S ((S (pa_i_hj32_block_left_outer_repeat)) * pa_c_hj32_block_left_outer)) /\ exists pa_q_hj32_block_left_outer_repeat_decoded. pa_b_hj32_block_left_outer = pa_q_hj32_block_left_outer_repeat_decoded * S ((S (pa_i_hj32_block_left_outer_repeat)) * pa_c_hj32_block_left_outer) + (x)))) /\ (exists pa_u_hj32_block_left_outer_product pa_v_hj32_block_left_outer_product. ((((exists pa_h_hj32_block_left_outer_product_start. pa_h_hj32_block_left_outer_product_start + S (1) = S ((S (0)) * pa_v_hj32_block_left_outer_product)) /\ exists pa_q_hj32_block_left_outer_product_start. pa_u_hj32_block_left_outer_product = pa_q_hj32_block_left_outer_product_start * S ((S (0)) * pa_v_hj32_block_left_outer_product) + (1))) /\ ((((exists pa_h_hj32_block_left_outer_product_terminal. pa_h_hj32_block_left_outer_product_terminal + S (q) = S ((S (m)) * pa_v_hj32_block_left_outer_product)) /\ exists pa_q_hj32_block_left_outer_product_terminal. pa_u_hj32_block_left_outer_product = pa_q_hj32_block_left_outer_product_terminal * S ((S (m)) * pa_v_hj32_block_left_outer_product) + (q))) /\ forall pa_i_hj32_block_left_outer_product. (exists pa_lt_hj32_block_left_outer_product_bound. pa_lt_hj32_block_left_outer_product_bound + S pa_i_hj32_block_left_outer_product = m) -> exists pa_p_hj32_block_left_outer_product pa_r_hj32_block_left_outer_product pa_s_hj32_block_left_outer_product. ((((exists pa_h_hj32_block_left_outer_product_factor. pa_h_hj32_block_left_outer_product_factor + S (pa_p_hj32_block_left_outer_product) = S ((S (pa_i_hj32_block_left_outer_product)) * pa_c_hj32_block_left_outer)) /\ exists pa_q_hj32_block_left_outer_product_factor. pa_b_hj32_block_left_outer = pa_q_hj32_block_left_outer_product_factor * S ((S (pa_i_hj32_block_left_outer_product)) * pa_c_hj32_block_left_outer) + (pa_p_hj32_block_left_outer_product))) /\ ((((exists pa_h_hj32_block_left_outer_product_partial. pa_h_hj32_block_left_outer_product_partial + S (pa_r_hj32_block_left_outer_product) = S ((S (pa_i_hj32_block_left_outer_product)) * pa_v_hj32_block_left_outer_product)) /\ exists pa_q_hj32_block_left_outer_product_partial. pa_u_hj32_block_left_outer_product = pa_q_hj32_block_left_outer_product_partial * S ((S (pa_i_hj32_block_left_outer_product)) * pa_v_hj32_block_left_outer_product) + (pa_r_hj32_block_left_outer_product))) /\ ((((exists pa_h_hj32_block_left_outer_product_successor. pa_h_hj32_block_left_outer_product_successor + S (pa_s_hj32_block_left_outer_product) = S ((S (S pa_i_hj32_block_left_outer_product)) * pa_v_hj32_block_left_outer_product)) /\ exists pa_q_hj32_block_left_outer_product_successor. pa_u_hj32_block_left_outer_product = pa_q_hj32_block_left_outer_product_successor * S ((S (S pa_i_hj32_block_left_outer_product)) * pa_v_hj32_block_left_outer_product) + (pa_s_hj32_block_left_outer_product))) /\ pa_s_hj32_block_left_outer_product = pa_r_hj32_block_left_outer_product * pa_p_hj32_block_left_outer_product))))))))
  17. 0017specialize htotal x
  18. 0018specialize htotal m
  19. 0019exact htotal
  20. 0020cases hxm
  21. 0021have hym : exists q. (exists pa_b_hj32_block_right_outer pa_c_hj32_block_right_outer. ((forall pa_i_hj32_block_right_outer_repeat. (exists pa_lt_hj32_block_right_outer_repeat_bound. pa_lt_hj32_block_right_outer_repeat_bound + S pa_i_hj32_block_right_outer_repeat = m) -> (((exists pa_h_hj32_block_right_outer_repeat_decoded. pa_h_hj32_block_right_outer_repeat_decoded + S (y) = S ((S (pa_i_hj32_block_right_outer_repeat)) * pa_c_hj32_block_right_outer)) /\ exists pa_q_hj32_block_right_outer_repeat_decoded. pa_b_hj32_block_right_outer = pa_q_hj32_block_right_outer_repeat_decoded * S ((S (pa_i_hj32_block_right_outer_repeat)) * pa_c_hj32_block_right_outer) + (y)))) /\ (exists pa_u_hj32_block_right_outer_product pa_v_hj32_block_right_outer_product. ((((exists pa_h_hj32_block_right_outer_product_start. pa_h_hj32_block_right_outer_product_start + S (1) = S ((S (0)) * pa_v_hj32_block_right_outer_product)) /\ exists pa_q_hj32_block_right_outer_product_start. pa_u_hj32_block_right_outer_product = pa_q_hj32_block_right_outer_product_start * S ((S (0)) * pa_v_hj32_block_right_outer_product) + (1))) /\ ((((exists pa_h_hj32_block_right_outer_product_terminal. pa_h_hj32_block_right_outer_product_terminal + S (q) = S ((S (m)) * pa_v_hj32_block_right_outer_product)) /\ exists pa_q_hj32_block_right_outer_product_terminal. pa_u_hj32_block_right_outer_product = pa_q_hj32_block_right_outer_product_terminal * S ((S (m)) * pa_v_hj32_block_right_outer_product) + (q))) /\ forall pa_i_hj32_block_right_outer_product. (exists pa_lt_hj32_block_right_outer_product_bound. pa_lt_hj32_block_right_outer_product_bound + S pa_i_hj32_block_right_outer_product = m) -> exists pa_p_hj32_block_right_outer_product pa_r_hj32_block_right_outer_product pa_s_hj32_block_right_outer_product. ((((exists pa_h_hj32_block_right_outer_product_factor. pa_h_hj32_block_right_outer_product_factor + S (pa_p_hj32_block_right_outer_product) = S ((S (pa_i_hj32_block_right_outer_product)) * pa_c_hj32_block_right_outer)) /\ exists pa_q_hj32_block_right_outer_product_factor. pa_b_hj32_block_right_outer = pa_q_hj32_block_right_outer_product_factor * S ((S (pa_i_hj32_block_right_outer_product)) * pa_c_hj32_block_right_outer) + (pa_p_hj32_block_right_outer_product))) /\ ((((exists pa_h_hj32_block_right_outer_product_partial. pa_h_hj32_block_right_outer_product_partial + S (pa_r_hj32_block_right_outer_product) = S ((S (pa_i_hj32_block_right_outer_product)) * pa_v_hj32_block_right_outer_product)) /\ exists pa_q_hj32_block_right_outer_product_partial. pa_u_hj32_block_right_outer_product = pa_q_hj32_block_right_outer_product_partial * S ((S (pa_i_hj32_block_right_outer_product)) * pa_v_hj32_block_right_outer_product) + (pa_r_hj32_block_right_outer_product))) /\ ((((exists pa_h_hj32_block_right_outer_product_successor. pa_h_hj32_block_right_outer_product_successor + S (pa_s_hj32_block_right_outer_product) = S ((S (S pa_i_hj32_block_right_outer_product)) * pa_v_hj32_block_right_outer_product)) /\ exists pa_q_hj32_block_right_outer_product_successor. pa_u_hj32_block_right_outer_product = pa_q_hj32_block_right_outer_product_successor * S ((S (S pa_i_hj32_block_right_outer_product)) * pa_v_hj32_block_right_outer_product) + (pa_s_hj32_block_right_outer_product))) /\ pa_s_hj32_block_right_outer_product = pa_r_hj32_block_right_outer_product * pa_p_hj32_block_right_outer_product))))))))
  22. 0022specialize htotal y
  23. 0023specialize htotal m
  24. 0024exact htotal
  25. 0025cases hym
  26. 0026have houter : exists bqb_le_gap_hj32_block_outer_bound. bqb_le_gap_hj32_block_outer_bound + (x1) = (x2)
  27. 0027specialize pow_base_monotone x
  28. 0028specialize pow_base_monotone y
  29. 0029specialize pow_base_monotone m
  30. 0030specialize pow_base_monotone x1
  31. 0031specialize pow_base_monotone x2
  32. 0032apply pow_base_monotone
  33. 0033exact hxy
  34. 0034exact hxm_witness
  35. 0035exact hym_witness
  36. 0036have hleft : x1 = X
  37. 0037specialize pow_mul_exp_from_total a
  38. 0038specialize pow_mul_exp_from_total d
  39. 0039specialize pow_mul_exp_from_total m
  40. 0040specialize pow_mul_exp_from_total (d * m)
  41. 0041specialize pow_mul_exp_from_total x
  42. 0042specialize pow_mul_exp_from_total x1
  43. 0043specialize pow_mul_exp_from_total X
  44. 0044apply pow_mul_exp_from_total
  45. 0045exact htotal
  46. 0046refl
  47. 0047exact hx
  48. 0048exact hxm_witness
  49. 0049exact hX
  50. 0050have hright : x2 = Y
  51. 0051specialize pow_mul_exp_from_total b
  52. 0052specialize pow_mul_exp_from_total e
  53. 0053specialize pow_mul_exp_from_total m
  54. 0054specialize pow_mul_exp_from_total (e * m)
  55. 0055specialize pow_mul_exp_from_total y
  56. 0056specialize pow_mul_exp_from_total x2
  57. 0057specialize pow_mul_exp_from_total Y
  58. 0058apply pow_mul_exp_from_total
  59. 0059exact htotal
  60. 0060refl
  61. 0061exact hy
  62. 0062exact hym_witness
  63. 0063exact hY
  64. 0064rewrite hleft at houter
  65. 0065rewrite hright at houter
  66. 0066exact houter