Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
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 the historical Alpha-v12 body receipt. The complete historical Alpha-v18 proof bundle independently checks every dependency; current Alpha v25 preserves that checked theorem use without changing Stable membership.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (11)
01Fix variables and assumptionsL1–8
02Establish hstrictL9–13
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply floor sqrt strict upper bound.
03Establish hweakL14–18
04Establish hsuccL19–22
05Establish hv_existsL23–26
06Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
cases hv_exists
07Establish hv_squareL28–34
08Establish hbaseL35–39
09Establish hu_existsL40–43
10Separate the logical casesL44–44
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
cases hu_exists
11Establish hpowerL45–54
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow base monotone.
- L45
have hpower : exists bqb_le_gap_b6_floor_product_power_order. bqb_le_gap_b6_floor_product_power_order + (A) = (x1) - L46
specialize pow_base_monotone (2 * n) - L47
specialize pow_base_monotone x - L48
specialize pow_base_monotone s - L49
specialize pow_base_monotone A - L50
specialize pow_base_monotone x1 - L51
apply pow_base_monotone - L52
exact hbase - L53
exact hA - L54
exact hu_exists_witness
12Establish hz_existsL55–58
13Separate the logical casesL59–59
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L59
cases hz_exists
14Establish huzL60–69
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow mul exp from total.
- L60
have huz : x1 = x2 - L61
specialize pow_mul_exp_from_total (s + 1) - L62
specialize pow_mul_exp_from_total 2 - L63
specialize pow_mul_exp_from_total s - L64
specialize pow_mul_exp_from_total (2 * s) - L65
specialize pow_mul_exp_from_total x - L66
specialize pow_mul_exp_from_total x1 - L67
specialize pow_mul_exp_from_total x2 - L68
apply pow_mul_exp_from_total - L69
exact htotal
15Calculate and transport equalitiesL70–70
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L70
refl
16Use earlier factsL71–73
17Establish hfactorL74–83
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow add.
18Use earlier factsL84–86
19Establish hn_double_sumL87–90
20Establish hdoubleL91–93
21Establish hn_doubleL94–96
22Establish hn_squareL97–103
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.
23Establish hAzL104–106
24Establish hproductL107–114
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul.
Original exact command ledger · 121 lines
- 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