Exact expanded PA statement
forall a e f p x y z. (forall bpt_a_mul_exp bpt_e_mul_exp. exists bpt_x_mul_exp. (exists ff_b_bpt_value_mul_exp ff_c_bpt_value_mul_exp. ((forall ff_i_bpt_value_mul_exp_repeat. (exists ff_lt_bpt_value_mul_exp_repeat_bound. ff_lt_bpt_value_mul_exp_repeat_bound + S ff_i_bpt_value_mul_exp_repeat = bpt_e_mul_exp) -> (((exists ff_h_bpt_value_mul_exp_repeat_decoded. ff_h_bpt_value_mul_exp_repeat_decoded + S (bpt_a_mul_exp) = S ((S (ff_i_bpt_value_mul_exp_repeat)) * ff_c_bpt_value_mul_exp)) /\ exists ff_q_bpt_value_mul_exp_repeat_decoded. ff_b_bpt_value_mul_exp = ff_q_bpt_value_mul_exp_repeat_decoded * S ((S (ff_i_bpt_value_mul_exp_repeat)) * ff_c_bpt_value_mul_exp) + (bpt_a_mul_exp)))) /\ (exists ff_u_bpt_value_mul_exp_product ff_v_bpt_value_mul_exp_product. ((((exists ff_h_bpt_value_mul_exp_product_start. ff_h_bpt_value_mul_exp_product_start + S (1) = S ((S (0)) * ff_v_bpt_value_mul_exp_product)) /\ exists ff_q_bpt_value_mul_exp_product_start. ff_u_bpt_value_mul_exp_product = ff_q_bpt_value_mul_exp_product_start * S ((S (0)) * ff_v_bpt_value_mul_exp_product) + (1))) /\ ((((exists ff_h_bpt_value_mul_exp_product_terminal. ff_h_bpt_value_mul_exp_product_terminal + S (bpt_x_mul_exp) = S ((S (bpt_e_mul_exp)) * ff_v_bpt_value_mul_exp_product)) /\ exists ff_q_bpt_value_mul_exp_product_terminal. ff_u_bpt_value_mul_exp_product = ff_q_bpt_value_mul_exp_product_terminal * S ((S (bpt_e_mul_exp)) * ff_v_bpt_value_mul_exp_product) + (bpt_x_mul_exp))) /\ forall ff_i_bpt_value_mul_exp_product. (exists ff_lt_bpt_value_mul_exp_product_bound. ff_lt_bpt_value_mul_exp_product_bound + S ff_i_bpt_value_mul_exp_product = bpt_e_mul_exp) -> exists ff_p_bpt_value_mul_exp_product ff_r_bpt_value_mul_exp_product ff_s_bpt_value_mul_exp_product. ((((exists ff_h_bpt_value_mul_exp_product_factor. ff_h_bpt_value_mul_exp_product_factor + S (ff_p_bpt_value_mul_exp_product) = S ((S (ff_i_bpt_value_mul_exp_product)) * ff_c_bpt_value_mul_exp)) /\ exists ff_q_bpt_value_mul_exp_product_factor. ff_b_bpt_value_mul_exp = ff_q_bpt_value_mul_exp_product_factor * S ((S (ff_i_bpt_value_mul_exp_product)) * ff_c_bpt_value_mul_exp) + (ff_p_bpt_value_mul_exp_product))) /\ ((((exists ff_h_bpt_value_mul_exp_product_partial. ff_h_bpt_value_mul_exp_product_partial + S (ff_r_bpt_value_mul_exp_product) = S ((S (ff_i_bpt_value_mul_exp_product)) * ff_v_bpt_value_mul_exp_product)) /\ exists ff_q_bpt_value_mul_exp_product_partial. ff_u_bpt_value_mul_exp_product = ff_q_bpt_value_mul_exp_product_partial * S ((S (ff_i_bpt_value_mul_exp_product)) * ff_v_bpt_value_mul_exp_product) + (ff_r_bpt_value_mul_exp_product))) /\ ((((exists ff_h_bpt_value_mul_exp_product_successor. ff_h_bpt_value_mul_exp_product_successor + S (ff_s_bpt_value_mul_exp_product) = S ((S (S ff_i_bpt_value_mul_exp_product)) * ff_v_bpt_value_mul_exp_product)) /\ exists ff_q_bpt_value_mul_exp_product_successor. ff_u_bpt_value_mul_exp_product = ff_q_bpt_value_mul_exp_product_successor * S ((S (S ff_i_bpt_value_mul_exp_product)) * ff_v_bpt_value_mul_exp_product) + (ff_s_bpt_value_mul_exp_product))) /\ ff_s_bpt_value_mul_exp_product = ff_r_bpt_value_mul_exp_product * ff_p_bpt_value_mul_exp_product))))))))) -> p = e * f -> (exists ff_b_bpt_mul_base ff_c_bpt_mul_base. ((forall ff_i_bpt_mul_base_repeat. (exists ff_lt_bpt_mul_base_repeat_bound. ff_lt_bpt_mul_base_repeat_bound + S ff_i_bpt_mul_base_repeat = e) -> (((exists ff_h_bpt_mul_base_repeat_decoded. ff_h_bpt_mul_base_repeat_decoded + S (a) = S ((S (ff_i_bpt_mul_base_repeat)) * ff_c_bpt_mul_base)) /\ exists ff_q_bpt_mul_base_repeat_decoded. ff_b_bpt_mul_base = ff_q_bpt_mul_base_repeat_decoded * S ((S (ff_i_bpt_mul_base_repeat)) * ff_c_bpt_mul_base) + (a)))) /\ (exists ff_u_bpt_mul_base_product ff_v_bpt_mul_base_product. ((((exists ff_h_bpt_mul_base_product_start. ff_h_bpt_mul_base_product_start + S (1) = S ((S (0)) * ff_v_bpt_mul_base_product)) /\ exists ff_q_bpt_mul_base_product_start. ff_u_bpt_mul_base_product = ff_q_bpt_mul_base_product_start * S ((S (0)) * ff_v_bpt_mul_base_product) + (1))) /\ ((((exists ff_h_bpt_mul_base_product_terminal. ff_h_bpt_mul_base_product_terminal + S (x) = S ((S (e)) * ff_v_bpt_mul_base_product)) /\ exists ff_q_bpt_mul_base_product_terminal. ff_u_bpt_mul_base_product = ff_q_bpt_mul_base_product_terminal * S ((S (e)) * ff_v_bpt_mul_base_product) + (x))) /\ forall ff_i_bpt_mul_base_product. (exists ff_lt_bpt_mul_base_product_bound. ff_lt_bpt_mul_base_product_bound + S ff_i_bpt_mul_base_product = e) -> exists ff_p_bpt_mul_base_product ff_r_bpt_mul_base_product ff_s_bpt_mul_base_product. ((((exists ff_h_bpt_mul_base_product_factor. ff_h_bpt_mul_base_product_factor + S (ff_p_bpt_mul_base_product) = S ((S (ff_i_bpt_mul_base_product)) * ff_c_bpt_mul_base)) /\ exists ff_q_bpt_mul_base_product_factor. ff_b_bpt_mul_base = ff_q_bpt_mul_base_product_factor * S ((S (ff_i_bpt_mul_base_product)) * ff_c_bpt_mul_base) + (ff_p_bpt_mul_base_product))) /\ ((((exists ff_h_bpt_mul_base_product_partial. ff_h_bpt_mul_base_product_partial + S (ff_r_bpt_mul_base_product) = S ((S (ff_i_bpt_mul_base_product)) * ff_v_bpt_mul_base_product)) /\ exists ff_q_bpt_mul_base_product_partial. ff_u_bpt_mul_base_product = ff_q_bpt_mul_base_product_partial * S ((S (ff_i_bpt_mul_base_product)) * ff_v_bpt_mul_base_product) + (ff_r_bpt_mul_base_product))) /\ ((((exists ff_h_bpt_mul_base_product_successor. ff_h_bpt_mul_base_product_successor + S (ff_s_bpt_mul_base_product) = S ((S (S ff_i_bpt_mul_base_product)) * ff_v_bpt_mul_base_product)) /\ exists ff_q_bpt_mul_base_product_successor. ff_u_bpt_mul_base_product = ff_q_bpt_mul_base_product_successor * S ((S (S ff_i_bpt_mul_base_product)) * ff_v_bpt_mul_base_product) + (ff_s_bpt_mul_base_product))) /\ ff_s_bpt_mul_base_product = ff_r_bpt_mul_base_product * ff_p_bpt_mul_base_product)))))))) -> (exists ff_b_bpt_mul_outer ff_c_bpt_mul_outer. ((forall ff_i_bpt_mul_outer_repeat. (exists ff_lt_bpt_mul_outer_repeat_bound. ff_lt_bpt_mul_outer_repeat_bound + S ff_i_bpt_mul_outer_repeat = f) -> (((exists ff_h_bpt_mul_outer_repeat_decoded. ff_h_bpt_mul_outer_repeat_decoded + S (x) = S ((S (ff_i_bpt_mul_outer_repeat)) * ff_c_bpt_mul_outer)) /\ exists ff_q_bpt_mul_outer_repeat_decoded. ff_b_bpt_mul_outer = ff_q_bpt_mul_outer_repeat_decoded * S ((S (ff_i_bpt_mul_outer_repeat)) * ff_c_bpt_mul_outer) + (x)))) /\ (exists ff_u_bpt_mul_outer_product ff_v_bpt_mul_outer_product. ((((exists ff_h_bpt_mul_outer_product_start. ff_h_bpt_mul_outer_product_start + S (1) = S ((S (0)) * ff_v_bpt_mul_outer_product)) /\ exists ff_q_bpt_mul_outer_product_start. ff_u_bpt_mul_outer_product = ff_q_bpt_mul_outer_product_start * S ((S (0)) * ff_v_bpt_mul_outer_product) + (1))) /\ ((((exists ff_h_bpt_mul_outer_product_terminal. ff_h_bpt_mul_outer_product_terminal + S (y) = S ((S (f)) * ff_v_bpt_mul_outer_product)) /\ exists ff_q_bpt_mul_outer_product_terminal. ff_u_bpt_mul_outer_product = ff_q_bpt_mul_outer_product_terminal * S ((S (f)) * ff_v_bpt_mul_outer_product) + (y))) /\ forall ff_i_bpt_mul_outer_product. (exists ff_lt_bpt_mul_outer_product_bound. ff_lt_bpt_mul_outer_product_bound + S ff_i_bpt_mul_outer_product = f) -> exists ff_p_bpt_mul_outer_product ff_r_bpt_mul_outer_product ff_s_bpt_mul_outer_product. ((((exists ff_h_bpt_mul_outer_product_factor. ff_h_bpt_mul_outer_product_factor + S (ff_p_bpt_mul_outer_product) = S ((S (ff_i_bpt_mul_outer_product)) * ff_c_bpt_mul_outer)) /\ exists ff_q_bpt_mul_outer_product_factor. ff_b_bpt_mul_outer = ff_q_bpt_mul_outer_product_factor * S ((S (ff_i_bpt_mul_outer_product)) * ff_c_bpt_mul_outer) + (ff_p_bpt_mul_outer_product))) /\ ((((exists ff_h_bpt_mul_outer_product_partial. ff_h_bpt_mul_outer_product_partial + S (ff_r_bpt_mul_outer_product) = S ((S (ff_i_bpt_mul_outer_product)) * ff_v_bpt_mul_outer_product)) /\ exists ff_q_bpt_mul_outer_product_partial. ff_u_bpt_mul_outer_product = ff_q_bpt_mul_outer_product_partial * S ((S (ff_i_bpt_mul_outer_product)) * ff_v_bpt_mul_outer_product) + (ff_r_bpt_mul_outer_product))) /\ ((((exists ff_h_bpt_mul_outer_product_successor. ff_h_bpt_mul_outer_product_successor + S (ff_s_bpt_mul_outer_product) = S ((S (S ff_i_bpt_mul_outer_product)) * ff_v_bpt_mul_outer_product)) /\ exists ff_q_bpt_mul_outer_product_successor. ff_u_bpt_mul_outer_product = ff_q_bpt_mul_outer_product_successor * S ((S (S ff_i_bpt_mul_outer_product)) * ff_v_bpt_mul_outer_product) + (ff_s_bpt_mul_outer_product))) /\ ff_s_bpt_mul_outer_product = ff_r_bpt_mul_outer_product * ff_p_bpt_mul_outer_product)))))))) -> (exists ff_b_bpt_mul_total ff_c_bpt_mul_total. ((forall ff_i_bpt_mul_total_repeat. (exists ff_lt_bpt_mul_total_repeat_bound. ff_lt_bpt_mul_total_repeat_bound + S ff_i_bpt_mul_total_repeat = p) -> (((exists ff_h_bpt_mul_total_repeat_decoded. ff_h_bpt_mul_total_repeat_decoded + S (a) = S ((S (ff_i_bpt_mul_total_repeat)) * ff_c_bpt_mul_total)) /\ exists ff_q_bpt_mul_total_repeat_decoded. ff_b_bpt_mul_total = ff_q_bpt_mul_total_repeat_decoded * S ((S (ff_i_bpt_mul_total_repeat)) * ff_c_bpt_mul_total) + (a)))) /\ (exists ff_u_bpt_mul_total_product ff_v_bpt_mul_total_product. ((((exists ff_h_bpt_mul_total_product_start. ff_h_bpt_mul_total_product_start + S (1) = S ((S (0)) * ff_v_bpt_mul_total_product)) /\ exists ff_q_bpt_mul_total_product_start. ff_u_bpt_mul_total_product = ff_q_bpt_mul_total_product_start * S ((S (0)) * ff_v_bpt_mul_total_product) + (1))) /\ ((((exists ff_h_bpt_mul_total_product_terminal. ff_h_bpt_mul_total_product_terminal + S (z) = S ((S (p)) * ff_v_bpt_mul_total_product)) /\ exists ff_q_bpt_mul_total_product_terminal. ff_u_bpt_mul_total_product = ff_q_bpt_mul_total_product_terminal * S ((S (p)) * ff_v_bpt_mul_total_product) + (z))) /\ forall ff_i_bpt_mul_total_product. (exists ff_lt_bpt_mul_total_product_bound. ff_lt_bpt_mul_total_product_bound + S ff_i_bpt_mul_total_product = p) -> exists ff_p_bpt_mul_total_product ff_r_bpt_mul_total_product ff_s_bpt_mul_total_product. ((((exists ff_h_bpt_mul_total_product_factor. ff_h_bpt_mul_total_product_factor + S (ff_p_bpt_mul_total_product) = S ((S (ff_i_bpt_mul_total_product)) * ff_c_bpt_mul_total)) /\ exists ff_q_bpt_mul_total_product_factor. ff_b_bpt_mul_total = ff_q_bpt_mul_total_product_factor * S ((S (ff_i_bpt_mul_total_product)) * ff_c_bpt_mul_total) + (ff_p_bpt_mul_total_product))) /\ ((((exists ff_h_bpt_mul_total_product_partial. ff_h_bpt_mul_total_product_partial + S (ff_r_bpt_mul_total_product) = S ((S (ff_i_bpt_mul_total_product)) * ff_v_bpt_mul_total_product)) /\ exists ff_q_bpt_mul_total_product_partial. ff_u_bpt_mul_total_product = ff_q_bpt_mul_total_product_partial * S ((S (ff_i_bpt_mul_total_product)) * ff_v_bpt_mul_total_product) + (ff_r_bpt_mul_total_product))) /\ ((((exists ff_h_bpt_mul_total_product_successor. ff_h_bpt_mul_total_product_successor + S (ff_s_bpt_mul_total_product) = S ((S (S ff_i_bpt_mul_total_product)) * ff_v_bpt_mul_total_product)) /\ exists ff_q_bpt_mul_total_product_successor. ff_u_bpt_mul_total_product = ff_q_bpt_mul_total_product_successor * S ((S (S ff_i_bpt_mul_total_product)) * ff_v_bpt_mul_total_product) + (ff_s_bpt_mul_total_product))) /\ ff_s_bpt_mul_total_product = ff_r_bpt_mul_total_product * ff_p_bpt_mul_total_product)))))))) -> y = zStructural proof guide
Iterated powers multiply exponents using a supplied totality proof.
Direct prerequisites: pow_zero, pow_successor_decompose, pow_add. The authored body proceeds by structural induction (1), case analysis (3), intermediate claims (7), equality transport (5).
Proof neighborhood
Direct dependencies
Direct dependents
BT00SW bertrand_h_six_step_transport_from_total BT00SX bertrand_j_six_step_transport_from_total BT00W3 pow_block_bound_from_total BT00W6 pow_six_ten_le_pow_four_thirteen_from_total BT00WF pow_six_six_le_pow_four_eight_from_total BT00WG pow_six_four_le_pow_four_six_from_total BT00WI pow_two_double_eq_pow_four_from_total BT00WO pow_thirty_six_double_block_eq_pow_six_four_block_from_total BT00X4 bertrand_floor_power_product_le_h_from_totalFormal native tactic body
Dependencies are hypotheses of this body receipt. The focused endpoint audits separately check the complete empty-context certificates.
- 0001
intro a - 0002
intro e - 0003
induction f - 0004
intro p - 0005
intro x - 0006
intro y - 0007
intro z - 0008
intro htotal - 0009
intro hp - 0010
intro hx - 0011
intro hy - 0012
intro hz - 0013
rewrite PA5 at hp - 0014
rewrite hp at hz - 0015
rewrite hp at hz - 0016
rewrite hp at hz - 0017
rewrite hp at hz - 0018
have hy1 : y = 1 - 0019
specialize pow_zero x - 0020
specialize pow_zero 0 - 0021
specialize pow_zero y - 0022
apply pow_zero - 0023
refl - 0024
exact hy - 0025
have hz1 : z = 1 - 0026
specialize pow_zero a - 0027
specialize pow_zero 0 - 0028
specialize pow_zero z - 0029
apply pow_zero - 0030
refl - 0031
exact hz - 0032
trans 1 - 0033
exact hy1 - 0034
symm - 0035
exact hz1 - 0036
intro p - 0037
intro x - 0038
intro y - 0039
intro z - 0040
intro htotal - 0041
intro hp - 0042
intro hx - 0043
intro hy - 0044
intro hz - 0045
have hy_step : exists r. (exists ff_b_bpt_mul_y_prefix ff_c_bpt_mul_y_prefix. ((forall ff_i_bpt_mul_y_prefix_repeat. (exists ff_lt_bpt_mul_y_prefix_repeat_bound. ff_lt_bpt_mul_y_prefix_repeat_bound + S ff_i_bpt_mul_y_prefix_repeat = f) -> (((exists ff_h_bpt_mul_y_prefix_repeat_decoded. ff_h_bpt_mul_y_prefix_repeat_decoded + S (x) = S ((S (ff_i_bpt_mul_y_prefix_repeat)) * ff_c_bpt_mul_y_prefix)) /\ exists ff_q_bpt_mul_y_prefix_repeat_decoded. ff_b_bpt_mul_y_prefix = ff_q_bpt_mul_y_prefix_repeat_decoded * S ((S (ff_i_bpt_mul_y_prefix_repeat)) * ff_c_bpt_mul_y_prefix) + (x)))) /\ (exists ff_u_bpt_mul_y_prefix_product ff_v_bpt_mul_y_prefix_product. ((((exists ff_h_bpt_mul_y_prefix_product_start. ff_h_bpt_mul_y_prefix_product_start + S (1) = S ((S (0)) * ff_v_bpt_mul_y_prefix_product)) /\ exists ff_q_bpt_mul_y_prefix_product_start. ff_u_bpt_mul_y_prefix_product = ff_q_bpt_mul_y_prefix_product_start * S ((S (0)) * ff_v_bpt_mul_y_prefix_product) + (1))) /\ ((((exists ff_h_bpt_mul_y_prefix_product_terminal. ff_h_bpt_mul_y_prefix_product_terminal + S (r) = S ((S (f)) * ff_v_bpt_mul_y_prefix_product)) /\ exists ff_q_bpt_mul_y_prefix_product_terminal. ff_u_bpt_mul_y_prefix_product = ff_q_bpt_mul_y_prefix_product_terminal * S ((S (f)) * ff_v_bpt_mul_y_prefix_product) + (r))) /\ forall ff_i_bpt_mul_y_prefix_product. (exists ff_lt_bpt_mul_y_prefix_product_bound. ff_lt_bpt_mul_y_prefix_product_bound + S ff_i_bpt_mul_y_prefix_product = f) -> exists ff_p_bpt_mul_y_prefix_product ff_r_bpt_mul_y_prefix_product ff_s_bpt_mul_y_prefix_product. ((((exists ff_h_bpt_mul_y_prefix_product_factor. ff_h_bpt_mul_y_prefix_product_factor + S (ff_p_bpt_mul_y_prefix_product) = S ((S (ff_i_bpt_mul_y_prefix_product)) * ff_c_bpt_mul_y_prefix)) /\ exists ff_q_bpt_mul_y_prefix_product_factor. ff_b_bpt_mul_y_prefix = ff_q_bpt_mul_y_prefix_product_factor * S ((S (ff_i_bpt_mul_y_prefix_product)) * ff_c_bpt_mul_y_prefix) + (ff_p_bpt_mul_y_prefix_product))) /\ ((((exists ff_h_bpt_mul_y_prefix_product_partial. ff_h_bpt_mul_y_prefix_product_partial + S (ff_r_bpt_mul_y_prefix_product) = S ((S (ff_i_bpt_mul_y_prefix_product)) * ff_v_bpt_mul_y_prefix_product)) /\ exists ff_q_bpt_mul_y_prefix_product_partial. ff_u_bpt_mul_y_prefix_product = ff_q_bpt_mul_y_prefix_product_partial * S ((S (ff_i_bpt_mul_y_prefix_product)) * ff_v_bpt_mul_y_prefix_product) + (ff_r_bpt_mul_y_prefix_product))) /\ ((((exists ff_h_bpt_mul_y_prefix_product_successor. ff_h_bpt_mul_y_prefix_product_successor + S (ff_s_bpt_mul_y_prefix_product) = S ((S (S ff_i_bpt_mul_y_prefix_product)) * ff_v_bpt_mul_y_prefix_product)) /\ exists ff_q_bpt_mul_y_prefix_product_successor. ff_u_bpt_mul_y_prefix_product = ff_q_bpt_mul_y_prefix_product_successor * S ((S (S ff_i_bpt_mul_y_prefix_product)) * ff_v_bpt_mul_y_prefix_product) + (ff_s_bpt_mul_y_prefix_product))) /\ ff_s_bpt_mul_y_prefix_product = ff_r_bpt_mul_y_prefix_product * ff_p_bpt_mul_y_prefix_product)))))))) /\ y = r * x - 0046
specialize pow_successor_decompose x - 0047
specialize pow_successor_decompose f - 0048
specialize pow_successor_decompose (S f) - 0049
specialize pow_successor_decompose y - 0050
apply pow_successor_decompose - 0051
refl - 0052
exact hy - 0053
cases hy_step - 0054
cases hy_step_witness - 0055
have hqpow : exists r. (exists pa_b_bpt_mul_total_prefix pa_c_bpt_mul_total_prefix. ((forall pa_i_bpt_mul_total_prefix_repeat. (exists pa_lt_bpt_mul_total_prefix_repeat_bound. pa_lt_bpt_mul_total_prefix_repeat_bound + S pa_i_bpt_mul_total_prefix_repeat = e * f) -> (((exists pa_h_bpt_mul_total_prefix_repeat_decoded. pa_h_bpt_mul_total_prefix_repeat_decoded + S (a) = S ((S (pa_i_bpt_mul_total_prefix_repeat)) * pa_c_bpt_mul_total_prefix)) /\ exists pa_q_bpt_mul_total_prefix_repeat_decoded. pa_b_bpt_mul_total_prefix = pa_q_bpt_mul_total_prefix_repeat_decoded * S ((S (pa_i_bpt_mul_total_prefix_repeat)) * pa_c_bpt_mul_total_prefix) + (a)))) /\ (exists pa_u_bpt_mul_total_prefix_product pa_v_bpt_mul_total_prefix_product. ((((exists pa_h_bpt_mul_total_prefix_product_start. pa_h_bpt_mul_total_prefix_product_start + S (1) = S ((S (0)) * pa_v_bpt_mul_total_prefix_product)) /\ exists pa_q_bpt_mul_total_prefix_product_start. pa_u_bpt_mul_total_prefix_product = pa_q_bpt_mul_total_prefix_product_start * S ((S (0)) * pa_v_bpt_mul_total_prefix_product) + (1))) /\ ((((exists pa_h_bpt_mul_total_prefix_product_terminal. pa_h_bpt_mul_total_prefix_product_terminal + S (r) = S ((S (e * f)) * pa_v_bpt_mul_total_prefix_product)) /\ exists pa_q_bpt_mul_total_prefix_product_terminal. pa_u_bpt_mul_total_prefix_product = pa_q_bpt_mul_total_prefix_product_terminal * S ((S (e * f)) * pa_v_bpt_mul_total_prefix_product) + (r))) /\ forall pa_i_bpt_mul_total_prefix_product. (exists pa_lt_bpt_mul_total_prefix_product_bound. pa_lt_bpt_mul_total_prefix_product_bound + S pa_i_bpt_mul_total_prefix_product = e * f) -> exists pa_p_bpt_mul_total_prefix_product pa_r_bpt_mul_total_prefix_product pa_s_bpt_mul_total_prefix_product. ((((exists pa_h_bpt_mul_total_prefix_product_factor. pa_h_bpt_mul_total_prefix_product_factor + S (pa_p_bpt_mul_total_prefix_product) = S ((S (pa_i_bpt_mul_total_prefix_product)) * pa_c_bpt_mul_total_prefix)) /\ exists pa_q_bpt_mul_total_prefix_product_factor. pa_b_bpt_mul_total_prefix = pa_q_bpt_mul_total_prefix_product_factor * S ((S (pa_i_bpt_mul_total_prefix_product)) * pa_c_bpt_mul_total_prefix) + (pa_p_bpt_mul_total_prefix_product))) /\ ((((exists pa_h_bpt_mul_total_prefix_product_partial. pa_h_bpt_mul_total_prefix_product_partial + S (pa_r_bpt_mul_total_prefix_product) = S ((S (pa_i_bpt_mul_total_prefix_product)) * pa_v_bpt_mul_total_prefix_product)) /\ exists pa_q_bpt_mul_total_prefix_product_partial. pa_u_bpt_mul_total_prefix_product = pa_q_bpt_mul_total_prefix_product_partial * S ((S (pa_i_bpt_mul_total_prefix_product)) * pa_v_bpt_mul_total_prefix_product) + (pa_r_bpt_mul_total_prefix_product))) /\ ((((exists pa_h_bpt_mul_total_prefix_product_successor. pa_h_bpt_mul_total_prefix_product_successor + S (pa_s_bpt_mul_total_prefix_product) = S ((S (S pa_i_bpt_mul_total_prefix_product)) * pa_v_bpt_mul_total_prefix_product)) /\ exists pa_q_bpt_mul_total_prefix_product_successor. pa_u_bpt_mul_total_prefix_product = pa_q_bpt_mul_total_prefix_product_successor * S ((S (S pa_i_bpt_mul_total_prefix_product)) * pa_v_bpt_mul_total_prefix_product) + (pa_s_bpt_mul_total_prefix_product))) /\ pa_s_bpt_mul_total_prefix_product = pa_r_bpt_mul_total_prefix_product * pa_p_bpt_mul_total_prefix_product)))))))) - 0056
specialize htotal a - 0057
specialize htotal (e * f) - 0058
exact htotal - 0059
cases hqpow - 0060
have hprefix : x1 = x2 - 0061
specialize IH (e * f) - 0062
specialize IH x - 0063
specialize IH x1 - 0064
specialize IH x2 - 0065
apply IH - 0066
exact htotal - 0067
refl - 0068
exact hx - 0069
exact hy_step_witness_left - 0070
exact hqpow_witness - 0071
have hpsum : p = (e * f) + e - 0072
trans e * S f - 0073
exact hp - 0074
apply PA6 - 0075
have hproduct : z = x2 * x - 0076
specialize pow_add a - 0077
specialize pow_add (e * f) - 0078
specialize pow_add e - 0079
specialize pow_add p - 0080
specialize pow_add x2 - 0081
specialize pow_add x - 0082
specialize pow_add z - 0083
apply pow_add - 0084
exact hpsum - 0085
exact hqpow_witness - 0086
exact hx - 0087
exact hz - 0088
trans x1 * x - 0089
exact hy_step_witness_right - 0090
trans x2 * x - 0091
congr - 0092
exact hprefix - 0093
refl - 0094
symm - 0095
exact hproduct