Exact expanded PA statement
forall n s A H. (forall bpt_a_b6_floor_product bpt_e_b6_floor_product. exists bpt_x_b6_floor_product. (exists ff_b_bpt_value_b6_floor_product ff_c_bpt_value_b6_floor_product. ((forall ff_i_bpt_value_b6_floor_product_repeat. (exists ff_lt_bpt_value_b6_floor_product_repeat_bound. ff_lt_bpt_value_b6_floor_product_repeat_bound + S ff_i_bpt_value_b6_floor_product_repeat = bpt_e_b6_floor_product) -> (((exists ff_h_bpt_value_b6_floor_product_repeat_decoded. ff_h_bpt_value_b6_floor_product_repeat_decoded + S (bpt_a_b6_floor_product) = S ((S (ff_i_bpt_value_b6_floor_product_repeat)) * ff_c_bpt_value_b6_floor_product)) /\ exists ff_q_bpt_value_b6_floor_product_repeat_decoded. ff_b_bpt_value_b6_floor_product = ff_q_bpt_value_b6_floor_product_repeat_decoded * S ((S (ff_i_bpt_value_b6_floor_product_repeat)) * ff_c_bpt_value_b6_floor_product) + (bpt_a_b6_floor_product)))) /\ (exists ff_u_bpt_value_b6_floor_product_product ff_v_bpt_value_b6_floor_product_product. ((((exists ff_h_bpt_value_b6_floor_product_product_start. ff_h_bpt_value_b6_floor_product_product_start + S (1) = S ((S (0)) * ff_v_bpt_value_b6_floor_product_product)) /\ exists ff_q_bpt_value_b6_floor_product_product_start. ff_u_bpt_value_b6_floor_product_product = ff_q_bpt_value_b6_floor_product_product_start * S ((S (0)) * ff_v_bpt_value_b6_floor_product_product) + (1))) /\ ((((exists ff_h_bpt_value_b6_floor_product_product_terminal. ff_h_bpt_value_b6_floor_product_product_terminal + S (bpt_x_b6_floor_product) = S ((S (bpt_e_b6_floor_product)) * ff_v_bpt_value_b6_floor_product_product)) /\ exists ff_q_bpt_value_b6_floor_product_product_terminal. ff_u_bpt_value_b6_floor_product_product = ff_q_bpt_value_b6_floor_product_product_terminal * S ((S (bpt_e_b6_floor_product)) * ff_v_bpt_value_b6_floor_product_product) + (bpt_x_b6_floor_product))) /\ forall ff_i_bpt_value_b6_floor_product_product. (exists ff_lt_bpt_value_b6_floor_product_product_bound. ff_lt_bpt_value_b6_floor_product_product_bound + S ff_i_bpt_value_b6_floor_product_product = bpt_e_b6_floor_product) -> exists ff_p_bpt_value_b6_floor_product_product ff_r_bpt_value_b6_floor_product_product ff_s_bpt_value_b6_floor_product_product. ((((exists ff_h_bpt_value_b6_floor_product_product_factor. ff_h_bpt_value_b6_floor_product_product_factor + S (ff_p_bpt_value_b6_floor_product_product) = S ((S (ff_i_bpt_value_b6_floor_product_product)) * ff_c_bpt_value_b6_floor_product)) /\ exists ff_q_bpt_value_b6_floor_product_product_factor. ff_b_bpt_value_b6_floor_product = ff_q_bpt_value_b6_floor_product_product_factor * S ((S (ff_i_bpt_value_b6_floor_product_product)) * ff_c_bpt_value_b6_floor_product) + (ff_p_bpt_value_b6_floor_product_product))) /\ ((((exists ff_h_bpt_value_b6_floor_product_product_partial. ff_h_bpt_value_b6_floor_product_product_partial + S (ff_r_bpt_value_b6_floor_product_product) = S ((S (ff_i_bpt_value_b6_floor_product_product)) * ff_v_bpt_value_b6_floor_product_product)) /\ exists ff_q_bpt_value_b6_floor_product_product_partial. ff_u_bpt_value_b6_floor_product_product = ff_q_bpt_value_b6_floor_product_product_partial * S ((S (ff_i_bpt_value_b6_floor_product_product)) * ff_v_bpt_value_b6_floor_product_product) + (ff_r_bpt_value_b6_floor_product_product))) /\ ((((exists ff_h_bpt_value_b6_floor_product_product_successor. ff_h_bpt_value_b6_floor_product_product_successor + S (ff_s_bpt_value_b6_floor_product_product) = S ((S (S ff_i_bpt_value_b6_floor_product_product)) * ff_v_bpt_value_b6_floor_product_product)) /\ exists ff_q_bpt_value_b6_floor_product_product_successor. ff_u_bpt_value_b6_floor_product_product = ff_q_bpt_value_b6_floor_product_product_successor * S ((S (S ff_i_bpt_value_b6_floor_product_product)) * ff_v_bpt_value_b6_floor_product_product) + (ff_s_bpt_value_b6_floor_product_product))) /\ ff_s_bpt_value_b6_floor_product_product = ff_r_bpt_value_b6_floor_product_product * ff_p_bpt_value_b6_floor_product_product))))))))) -> (((exists bcs_sqrt_lower_gap_b6_floor_product_root. bcs_sqrt_lower_gap_b6_floor_product_root + (s) * (s) = (2 * n)) /\ exists bcs_sqrt_upper_gap_b6_floor_product_root. bcs_sqrt_upper_gap_b6_floor_product_root + S (2 * n) = S (s) * S (s))) -> (exists pa_b_b6_floor_product_power pa_c_b6_floor_product_power. ((forall pa_i_b6_floor_product_power_repeat. (exists pa_lt_b6_floor_product_power_repeat_bound. pa_lt_b6_floor_product_power_repeat_bound + S pa_i_b6_floor_product_power_repeat = s) -> (((exists pa_h_b6_floor_product_power_repeat_decoded. pa_h_b6_floor_product_power_repeat_decoded + S (2 * n) = S ((S (pa_i_b6_floor_product_power_repeat)) * pa_c_b6_floor_product_power)) /\ exists pa_q_b6_floor_product_power_repeat_decoded. pa_b_b6_floor_product_power = pa_q_b6_floor_product_power_repeat_decoded * S ((S (pa_i_b6_floor_product_power_repeat)) * pa_c_b6_floor_product_power) + (2 * n)))) /\ (exists pa_u_b6_floor_product_power_product pa_v_b6_floor_product_power_product. ((((exists pa_h_b6_floor_product_power_product_start. pa_h_b6_floor_product_power_product_start + S (1) = S ((S (0)) * pa_v_b6_floor_product_power_product)) /\ exists pa_q_b6_floor_product_power_product_start. pa_u_b6_floor_product_power_product = pa_q_b6_floor_product_power_product_start * S ((S (0)) * pa_v_b6_floor_product_power_product) + (1))) /\ ((((exists pa_h_b6_floor_product_power_product_terminal. pa_h_b6_floor_product_power_product_terminal + S (A) = S ((S (s)) * pa_v_b6_floor_product_power_product)) /\ exists pa_q_b6_floor_product_power_product_terminal. pa_u_b6_floor_product_power_product = pa_q_b6_floor_product_power_product_terminal * S ((S (s)) * pa_v_b6_floor_product_power_product) + (A))) /\ forall pa_i_b6_floor_product_power_product. (exists pa_lt_b6_floor_product_power_product_bound. pa_lt_b6_floor_product_power_product_bound + S pa_i_b6_floor_product_power_product = s) -> exists pa_p_b6_floor_product_power_product pa_r_b6_floor_product_power_product pa_s_b6_floor_product_power_product. ((((exists pa_h_b6_floor_product_power_product_factor. pa_h_b6_floor_product_power_product_factor + S (pa_p_b6_floor_product_power_product) = S ((S (pa_i_b6_floor_product_power_product)) * pa_c_b6_floor_product_power)) /\ exists pa_q_b6_floor_product_power_product_factor. pa_b_b6_floor_product_power = pa_q_b6_floor_product_power_product_factor * S ((S (pa_i_b6_floor_product_power_product)) * pa_c_b6_floor_product_power) + (pa_p_b6_floor_product_power_product))) /\ ((((exists pa_h_b6_floor_product_power_product_partial. pa_h_b6_floor_product_power_product_partial + S (pa_r_b6_floor_product_power_product) = S ((S (pa_i_b6_floor_product_power_product)) * pa_v_b6_floor_product_power_product)) /\ exists pa_q_b6_floor_product_power_product_partial. pa_u_b6_floor_product_power_product = pa_q_b6_floor_product_power_product_partial * S ((S (pa_i_b6_floor_product_power_product)) * pa_v_b6_floor_product_power_product) + (pa_r_b6_floor_product_power_product))) /\ ((((exists pa_h_b6_floor_product_power_product_successor. pa_h_b6_floor_product_power_product_successor + S (pa_s_b6_floor_product_power_product) = S ((S (S pa_i_b6_floor_product_power_product)) * pa_v_b6_floor_product_power_product)) /\ exists pa_q_b6_floor_product_power_product_successor. pa_u_b6_floor_product_power_product = pa_q_b6_floor_product_power_product_successor * S ((S (S pa_i_b6_floor_product_power_product)) * pa_v_b6_floor_product_power_product) + (pa_s_b6_floor_product_power_product))) /\ pa_s_b6_floor_product_power_product = pa_r_b6_floor_product_power_product * pa_p_b6_floor_product_power_product)))))))) -> (exists pa_b_b6_floor_product_envelope pa_c_b6_floor_product_envelope. ((forall pa_i_b6_floor_product_envelope_repeat. (exists pa_lt_b6_floor_product_envelope_repeat_bound. pa_lt_b6_floor_product_envelope_repeat_bound + S pa_i_b6_floor_product_envelope_repeat = 2 * s + 2) -> (((exists pa_h_b6_floor_product_envelope_repeat_decoded. pa_h_b6_floor_product_envelope_repeat_decoded + S (s + 1) = S ((S (pa_i_b6_floor_product_envelope_repeat)) * pa_c_b6_floor_product_envelope)) /\ exists pa_q_b6_floor_product_envelope_repeat_decoded. pa_b_b6_floor_product_envelope = pa_q_b6_floor_product_envelope_repeat_decoded * S ((S (pa_i_b6_floor_product_envelope_repeat)) * pa_c_b6_floor_product_envelope) + (s + 1)))) /\ (exists pa_u_b6_floor_product_envelope_product pa_v_b6_floor_product_envelope_product. ((((exists pa_h_b6_floor_product_envelope_product_start. pa_h_b6_floor_product_envelope_product_start + S (1) = S ((S (0)) * pa_v_b6_floor_product_envelope_product)) /\ exists pa_q_b6_floor_product_envelope_product_start. pa_u_b6_floor_product_envelope_product = pa_q_b6_floor_product_envelope_product_start * S ((S (0)) * pa_v_b6_floor_product_envelope_product) + (1))) /\ ((((exists pa_h_b6_floor_product_envelope_product_terminal. pa_h_b6_floor_product_envelope_product_terminal + S (H) = S ((S (2 * s + 2)) * pa_v_b6_floor_product_envelope_product)) /\ exists pa_q_b6_floor_product_envelope_product_terminal. pa_u_b6_floor_product_envelope_product = pa_q_b6_floor_product_envelope_product_terminal * S ((S (2 * s + 2)) * pa_v_b6_floor_product_envelope_product) + (H))) /\ forall pa_i_b6_floor_product_envelope_product. (exists pa_lt_b6_floor_product_envelope_product_bound. pa_lt_b6_floor_product_envelope_product_bound + S pa_i_b6_floor_product_envelope_product = 2 * s + 2) -> exists pa_p_b6_floor_product_envelope_product pa_r_b6_floor_product_envelope_product pa_s_b6_floor_product_envelope_product. ((((exists pa_h_b6_floor_product_envelope_product_factor. pa_h_b6_floor_product_envelope_product_factor + S (pa_p_b6_floor_product_envelope_product) = S ((S (pa_i_b6_floor_product_envelope_product)) * pa_c_b6_floor_product_envelope)) /\ exists pa_q_b6_floor_product_envelope_product_factor. pa_b_b6_floor_product_envelope = pa_q_b6_floor_product_envelope_product_factor * S ((S (pa_i_b6_floor_product_envelope_product)) * pa_c_b6_floor_product_envelope) + (pa_p_b6_floor_product_envelope_product))) /\ ((((exists pa_h_b6_floor_product_envelope_product_partial. pa_h_b6_floor_product_envelope_product_partial + S (pa_r_b6_floor_product_envelope_product) = S ((S (pa_i_b6_floor_product_envelope_product)) * pa_v_b6_floor_product_envelope_product)) /\ exists pa_q_b6_floor_product_envelope_product_partial. pa_u_b6_floor_product_envelope_product = pa_q_b6_floor_product_envelope_product_partial * S ((S (pa_i_b6_floor_product_envelope_product)) * pa_v_b6_floor_product_envelope_product) + (pa_r_b6_floor_product_envelope_product))) /\ ((((exists pa_h_b6_floor_product_envelope_product_successor. pa_h_b6_floor_product_envelope_product_successor + S (pa_s_b6_floor_product_envelope_product) = S ((S (S pa_i_b6_floor_product_envelope_product)) * pa_v_b6_floor_product_envelope_product)) /\ exists pa_q_b6_floor_product_envelope_product_successor. pa_u_b6_floor_product_envelope_product = pa_q_b6_floor_product_envelope_product_successor * S ((S (S pa_i_b6_floor_product_envelope_product)) * pa_v_b6_floor_product_envelope_product) + (pa_s_b6_floor_product_envelope_product))) /\ pa_s_b6_floor_product_envelope_product = pa_r_b6_floor_product_envelope_product * pa_p_b6_floor_product_envelope_product)))))))) -> (exists bqb_le_gap_b6_floor_product_result. bqb_le_gap_b6_floor_product_result + (n * A) = (H))Structural proof guide
The floor-root power product is bounded by the H envelope using one supplied power-totality premise.
Direct prerequisites: floor_sqrt_strict_upper_bound, lt_to_le, le_add_right, two_mul_eq_add_self, le_trans, pow_two, pow_base_monotone, pow_mul_exp_from_total, pow_add, mul_le_mul, mul_comm. The authored body proceeds by case analysis (3), intermediate claims (18), equality transport (8).
Proof neighborhood
Direct dependencies
BT00R7 floor_sqrt_strict_upper_bound BT0019 lt_to_le BT0013 le_add_right BT00QU two_mul_eq_add_self BT000F le_trans BT009W pow_two BT00PY pow_base_monotone BT00SM pow_mul_exp_from_total BT009X pow_add BT00PV mul_le_mul BT0006 mul_commDirect dependents
Formal native tactic body
Dependencies are hypotheses of this body receipt. The focused endpoint audits separately check the complete empty-context certificates.
- 0001
intro n - 0002
intro s - 0003
intro A - 0004
intro H - 0005
intro htotal - 0006
intro hfloor - 0007
intro hA - 0008
intro hH - 0009
have hstrict : exists k. k + S (2 * n) = S s * S s - 0010
specialize floor_sqrt_strict_upper_bound (2 * n) - 0011
specialize floor_sqrt_strict_upper_bound s - 0012
apply floor_sqrt_strict_upper_bound - 0013
exact hfloor - 0014
have hweak : exists k. k + 2 * n = S s * S s - 0015
specialize lt_to_le (2 * n) - 0016
specialize lt_to_le (S s * S s) - 0017
apply lt_to_le - 0018
exact hstrict - 0019
have hsucc : s + 1 = S s - 0020
rewrite PA4 - 0021
congr - 0022
apply PA3 - 0023
have hv_exists : exists v. (exists pa_b_b6_floor_product_square pa_c_b6_floor_product_square. ((forall pa_i_b6_floor_product_square_repeat. (exists pa_lt_b6_floor_product_square_repeat_bound. pa_lt_b6_floor_product_square_repeat_bound + S pa_i_b6_floor_product_square_repeat = 2) -> (((exists pa_h_b6_floor_product_square_repeat_decoded. pa_h_b6_floor_product_square_repeat_decoded + S (s + 1) = S ((S (pa_i_b6_floor_product_square_repeat)) * pa_c_b6_floor_product_square)) /\ exists pa_q_b6_floor_product_square_repeat_decoded. pa_b_b6_floor_product_square = pa_q_b6_floor_product_square_repeat_decoded * S ((S (pa_i_b6_floor_product_square_repeat)) * pa_c_b6_floor_product_square) + (s + 1)))) /\ (exists pa_u_b6_floor_product_square_product pa_v_b6_floor_product_square_product. ((((exists pa_h_b6_floor_product_square_product_start. pa_h_b6_floor_product_square_product_start + S (1) = S ((S (0)) * pa_v_b6_floor_product_square_product)) /\ exists pa_q_b6_floor_product_square_product_start. pa_u_b6_floor_product_square_product = pa_q_b6_floor_product_square_product_start * S ((S (0)) * pa_v_b6_floor_product_square_product) + (1))) /\ ((((exists pa_h_b6_floor_product_square_product_terminal. pa_h_b6_floor_product_square_product_terminal + S (v) = S ((S (2)) * pa_v_b6_floor_product_square_product)) /\ exists pa_q_b6_floor_product_square_product_terminal. pa_u_b6_floor_product_square_product = pa_q_b6_floor_product_square_product_terminal * S ((S (2)) * pa_v_b6_floor_product_square_product) + (v))) /\ forall pa_i_b6_floor_product_square_product. (exists pa_lt_b6_floor_product_square_product_bound. pa_lt_b6_floor_product_square_product_bound + S pa_i_b6_floor_product_square_product = 2) -> exists pa_p_b6_floor_product_square_product pa_r_b6_floor_product_square_product pa_s_b6_floor_product_square_product. ((((exists pa_h_b6_floor_product_square_product_factor. pa_h_b6_floor_product_square_product_factor + S (pa_p_b6_floor_product_square_product) = S ((S (pa_i_b6_floor_product_square_product)) * pa_c_b6_floor_product_square)) /\ exists pa_q_b6_floor_product_square_product_factor. pa_b_b6_floor_product_square = pa_q_b6_floor_product_square_product_factor * S ((S (pa_i_b6_floor_product_square_product)) * pa_c_b6_floor_product_square) + (pa_p_b6_floor_product_square_product))) /\ ((((exists pa_h_b6_floor_product_square_product_partial. pa_h_b6_floor_product_square_product_partial + S (pa_r_b6_floor_product_square_product) = S ((S (pa_i_b6_floor_product_square_product)) * pa_v_b6_floor_product_square_product)) /\ exists pa_q_b6_floor_product_square_product_partial. pa_u_b6_floor_product_square_product = pa_q_b6_floor_product_square_product_partial * S ((S (pa_i_b6_floor_product_square_product)) * pa_v_b6_floor_product_square_product) + (pa_r_b6_floor_product_square_product))) /\ ((((exists pa_h_b6_floor_product_square_product_successor. pa_h_b6_floor_product_square_product_successor + S (pa_s_b6_floor_product_square_product) = S ((S (S pa_i_b6_floor_product_square_product)) * pa_v_b6_floor_product_square_product)) /\ exists pa_q_b6_floor_product_square_product_successor. pa_u_b6_floor_product_square_product = pa_q_b6_floor_product_square_product_successor * S ((S (S pa_i_b6_floor_product_square_product)) * pa_v_b6_floor_product_square_product) + (pa_s_b6_floor_product_square_product))) /\ pa_s_b6_floor_product_square_product = pa_r_b6_floor_product_square_product * pa_p_b6_floor_product_square_product)))))))) - 0024
specialize htotal (s + 1) - 0025
specialize htotal 2 - 0026
exact htotal - 0027
cases hv_exists - 0028
have hv_square : x = (s + 1) * (s + 1) - 0029
specialize pow_two (s + 1) - 0030
specialize pow_two 2 - 0031
specialize pow_two x - 0032
apply pow_two - 0033
refl - 0034
exact hv_exists_witness - 0035
have hbase : exists bqb_le_gap_b6_floor_product_base_order. bqb_le_gap_b6_floor_product_base_order + (2 * n) = (x) - 0036
rewrite hv_square - 0037
rewrite hsucc - 0038
rewrite hsucc - 0039
exact hweak - 0040
have hu_exists : exists u. (exists pa_b_b6_floor_product_square_outer pa_c_b6_floor_product_square_outer. ((forall pa_i_b6_floor_product_square_outer_repeat. (exists pa_lt_b6_floor_product_square_outer_repeat_bound. pa_lt_b6_floor_product_square_outer_repeat_bound + S pa_i_b6_floor_product_square_outer_repeat = s) -> (((exists pa_h_b6_floor_product_square_outer_repeat_decoded. pa_h_b6_floor_product_square_outer_repeat_decoded + S (x) = S ((S (pa_i_b6_floor_product_square_outer_repeat)) * pa_c_b6_floor_product_square_outer)) /\ exists pa_q_b6_floor_product_square_outer_repeat_decoded. pa_b_b6_floor_product_square_outer = pa_q_b6_floor_product_square_outer_repeat_decoded * S ((S (pa_i_b6_floor_product_square_outer_repeat)) * pa_c_b6_floor_product_square_outer) + (x)))) /\ (exists pa_u_b6_floor_product_square_outer_product pa_v_b6_floor_product_square_outer_product. ((((exists pa_h_b6_floor_product_square_outer_product_start. pa_h_b6_floor_product_square_outer_product_start + S (1) = S ((S (0)) * pa_v_b6_floor_product_square_outer_product)) /\ exists pa_q_b6_floor_product_square_outer_product_start. pa_u_b6_floor_product_square_outer_product = pa_q_b6_floor_product_square_outer_product_start * S ((S (0)) * pa_v_b6_floor_product_square_outer_product) + (1))) /\ ((((exists pa_h_b6_floor_product_square_outer_product_terminal. pa_h_b6_floor_product_square_outer_product_terminal + S (u) = S ((S (s)) * pa_v_b6_floor_product_square_outer_product)) /\ exists pa_q_b6_floor_product_square_outer_product_terminal. pa_u_b6_floor_product_square_outer_product = pa_q_b6_floor_product_square_outer_product_terminal * S ((S (s)) * pa_v_b6_floor_product_square_outer_product) + (u))) /\ forall pa_i_b6_floor_product_square_outer_product. (exists pa_lt_b6_floor_product_square_outer_product_bound. pa_lt_b6_floor_product_square_outer_product_bound + S pa_i_b6_floor_product_square_outer_product = s) -> exists pa_p_b6_floor_product_square_outer_product pa_r_b6_floor_product_square_outer_product pa_s_b6_floor_product_square_outer_product. ((((exists pa_h_b6_floor_product_square_outer_product_factor. pa_h_b6_floor_product_square_outer_product_factor + S (pa_p_b6_floor_product_square_outer_product) = S ((S (pa_i_b6_floor_product_square_outer_product)) * pa_c_b6_floor_product_square_outer)) /\ exists pa_q_b6_floor_product_square_outer_product_factor. pa_b_b6_floor_product_square_outer = pa_q_b6_floor_product_square_outer_product_factor * S ((S (pa_i_b6_floor_product_square_outer_product)) * pa_c_b6_floor_product_square_outer) + (pa_p_b6_floor_product_square_outer_product))) /\ ((((exists pa_h_b6_floor_product_square_outer_product_partial. pa_h_b6_floor_product_square_outer_product_partial + S (pa_r_b6_floor_product_square_outer_product) = S ((S (pa_i_b6_floor_product_square_outer_product)) * pa_v_b6_floor_product_square_outer_product)) /\ exists pa_q_b6_floor_product_square_outer_product_partial. pa_u_b6_floor_product_square_outer_product = pa_q_b6_floor_product_square_outer_product_partial * S ((S (pa_i_b6_floor_product_square_outer_product)) * pa_v_b6_floor_product_square_outer_product) + (pa_r_b6_floor_product_square_outer_product))) /\ ((((exists pa_h_b6_floor_product_square_outer_product_successor. pa_h_b6_floor_product_square_outer_product_successor + S (pa_s_b6_floor_product_square_outer_product) = S ((S (S pa_i_b6_floor_product_square_outer_product)) * pa_v_b6_floor_product_square_outer_product)) /\ exists pa_q_b6_floor_product_square_outer_product_successor. pa_u_b6_floor_product_square_outer_product = pa_q_b6_floor_product_square_outer_product_successor * S ((S (S pa_i_b6_floor_product_square_outer_product)) * pa_v_b6_floor_product_square_outer_product) + (pa_s_b6_floor_product_square_outer_product))) /\ pa_s_b6_floor_product_square_outer_product = pa_r_b6_floor_product_square_outer_product * pa_p_b6_floor_product_square_outer_product)))))))) - 0041
specialize htotal x - 0042
specialize htotal s - 0043
exact htotal - 0044
cases hu_exists - 0045
have hpower : exists bqb_le_gap_b6_floor_product_power_order. bqb_le_gap_b6_floor_product_power_order + (A) = (x1) - 0046
specialize pow_base_monotone (2 * n) - 0047
specialize pow_base_monotone x - 0048
specialize pow_base_monotone s - 0049
specialize pow_base_monotone A - 0050
specialize pow_base_monotone x1 - 0051
apply pow_base_monotone - 0052
exact hbase - 0053
exact hA - 0054
exact hu_exists_witness - 0055
have hz_exists : exists z. (exists pa_b_b6_floor_product_square_flat pa_c_b6_floor_product_square_flat. ((forall pa_i_b6_floor_product_square_flat_repeat. (exists pa_lt_b6_floor_product_square_flat_repeat_bound. pa_lt_b6_floor_product_square_flat_repeat_bound + S pa_i_b6_floor_product_square_flat_repeat = 2 * s) -> (((exists pa_h_b6_floor_product_square_flat_repeat_decoded. pa_h_b6_floor_product_square_flat_repeat_decoded + S (s + 1) = S ((S (pa_i_b6_floor_product_square_flat_repeat)) * pa_c_b6_floor_product_square_flat)) /\ exists pa_q_b6_floor_product_square_flat_repeat_decoded. pa_b_b6_floor_product_square_flat = pa_q_b6_floor_product_square_flat_repeat_decoded * S ((S (pa_i_b6_floor_product_square_flat_repeat)) * pa_c_b6_floor_product_square_flat) + (s + 1)))) /\ (exists pa_u_b6_floor_product_square_flat_product pa_v_b6_floor_product_square_flat_product. ((((exists pa_h_b6_floor_product_square_flat_product_start. pa_h_b6_floor_product_square_flat_product_start + S (1) = S ((S (0)) * pa_v_b6_floor_product_square_flat_product)) /\ exists pa_q_b6_floor_product_square_flat_product_start. pa_u_b6_floor_product_square_flat_product = pa_q_b6_floor_product_square_flat_product_start * S ((S (0)) * pa_v_b6_floor_product_square_flat_product) + (1))) /\ ((((exists pa_h_b6_floor_product_square_flat_product_terminal. pa_h_b6_floor_product_square_flat_product_terminal + S (z) = S ((S (2 * s)) * pa_v_b6_floor_product_square_flat_product)) /\ exists pa_q_b6_floor_product_square_flat_product_terminal. pa_u_b6_floor_product_square_flat_product = pa_q_b6_floor_product_square_flat_product_terminal * S ((S (2 * s)) * pa_v_b6_floor_product_square_flat_product) + (z))) /\ forall pa_i_b6_floor_product_square_flat_product. (exists pa_lt_b6_floor_product_square_flat_product_bound. pa_lt_b6_floor_product_square_flat_product_bound + S pa_i_b6_floor_product_square_flat_product = 2 * s) -> exists pa_p_b6_floor_product_square_flat_product pa_r_b6_floor_product_square_flat_product pa_s_b6_floor_product_square_flat_product. ((((exists pa_h_b6_floor_product_square_flat_product_factor. pa_h_b6_floor_product_square_flat_product_factor + S (pa_p_b6_floor_product_square_flat_product) = S ((S (pa_i_b6_floor_product_square_flat_product)) * pa_c_b6_floor_product_square_flat)) /\ exists pa_q_b6_floor_product_square_flat_product_factor. pa_b_b6_floor_product_square_flat = pa_q_b6_floor_product_square_flat_product_factor * S ((S (pa_i_b6_floor_product_square_flat_product)) * pa_c_b6_floor_product_square_flat) + (pa_p_b6_floor_product_square_flat_product))) /\ ((((exists pa_h_b6_floor_product_square_flat_product_partial. pa_h_b6_floor_product_square_flat_product_partial + S (pa_r_b6_floor_product_square_flat_product) = S ((S (pa_i_b6_floor_product_square_flat_product)) * pa_v_b6_floor_product_square_flat_product)) /\ exists pa_q_b6_floor_product_square_flat_product_partial. pa_u_b6_floor_product_square_flat_product = pa_q_b6_floor_product_square_flat_product_partial * S ((S (pa_i_b6_floor_product_square_flat_product)) * pa_v_b6_floor_product_square_flat_product) + (pa_r_b6_floor_product_square_flat_product))) /\ ((((exists pa_h_b6_floor_product_square_flat_product_successor. pa_h_b6_floor_product_square_flat_product_successor + S (pa_s_b6_floor_product_square_flat_product) = S ((S (S pa_i_b6_floor_product_square_flat_product)) * pa_v_b6_floor_product_square_flat_product)) /\ exists pa_q_b6_floor_product_square_flat_product_successor. pa_u_b6_floor_product_square_flat_product = pa_q_b6_floor_product_square_flat_product_successor * S ((S (S pa_i_b6_floor_product_square_flat_product)) * pa_v_b6_floor_product_square_flat_product) + (pa_s_b6_floor_product_square_flat_product))) /\ pa_s_b6_floor_product_square_flat_product = pa_r_b6_floor_product_square_flat_product * pa_p_b6_floor_product_square_flat_product)))))))) - 0056
specialize htotal (s + 1) - 0057
specialize htotal (2 * s) - 0058
exact htotal - 0059
cases hz_exists - 0060
have huz : x1 = x2 - 0061
specialize pow_mul_exp_from_total (s + 1) - 0062
specialize pow_mul_exp_from_total 2 - 0063
specialize pow_mul_exp_from_total s - 0064
specialize pow_mul_exp_from_total (2 * s) - 0065
specialize pow_mul_exp_from_total x - 0066
specialize pow_mul_exp_from_total x1 - 0067
specialize pow_mul_exp_from_total x2 - 0068
apply pow_mul_exp_from_total - 0069
exact htotal - 0070
refl - 0071
exact hv_exists_witness - 0072
exact hu_exists_witness - 0073
exact hz_exists_witness - 0074
have hfactor : H = x2 * x - 0075
specialize pow_add (s + 1) - 0076
specialize pow_add (2 * s) - 0077
specialize pow_add 2 - 0078
specialize pow_add (2 * s + 2) - 0079
specialize pow_add x2 - 0080
specialize pow_add x - 0081
specialize pow_add H - 0082
apply pow_add - 0083
refl - 0084
exact hz_exists_witness - 0085
exact hv_exists_witness - 0086
exact hH - 0087
have hn_double_sum : exists k. k + n = n + n - 0088
specialize le_add_right n - 0089
specialize le_add_right n - 0090
exact le_add_right - 0091
have hdouble : 2 * n = n + n - 0092
specialize two_mul_eq_add_self n - 0093
exact two_mul_eq_add_self - 0094
have hn_double : exists bqb_le_gap_b6_floor_product_n_double. bqb_le_gap_b6_floor_product_n_double + (n) = (2 * n) - 0095
rewrite hdouble - 0096
exact hn_double_sum - 0097
have hn_square : exists bqb_le_gap_b6_floor_product_n_square. bqb_le_gap_b6_floor_product_n_square + (n) = (x) - 0098
specialize le_trans n - 0099
specialize le_trans (2 * n) - 0100
specialize le_trans x - 0101
apply le_trans - 0102
exact hn_double - 0103
exact hbase - 0104
have hAz : exists k. k + A = x2 - 0105
rewrite <- huz - 0106
exact hpower - 0107
have hproduct : exists bqb_le_gap_b6_floor_product_intermediate. bqb_le_gap_b6_floor_product_intermediate + (n * A) = (x * x2) - 0108
specialize mul_le_mul n - 0109
specialize mul_le_mul x - 0110
specialize mul_le_mul A - 0111
specialize mul_le_mul x2 - 0112
apply mul_le_mul - 0113
exact hn_square - 0114
exact hAz - 0115
have hcomm : x * x2 = x2 * x - 0116
specialize mul_comm x - 0117
specialize mul_comm x2 - 0118
exact mul_comm - 0119
rewrite hcomm at hproduct - 0120
rewrite <- hfactor at hproduct - 0121
exact hproduct