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.
Statement with defined notation
∀ n. ∀ s. ∀ A. ∀ H. (∀ x. ∀ y. ∃ z. Pow(x,y,z)) → FloorSqrt(2 · n,s) → Pow(2 · n,s,A) → Pow(s + 1,2 · s + 2,H) → Le(n · A,H)Every purple notation token opens its conservative definition. Expanding the displayed statement recovers the exact first-order Peano-arithmetic formula checked by the unchanged kernel.
Definitions used by this theorem
In the theorem statement
5 occurrences
In local proof propositions
12 occurrences
Exact expanded native-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))Proof neighborhood
Direct theorem prerequisites
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 theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. Every changed line has an exact-AST conservative-expansion receipt; the kernel still receives the immutable original tactic script.
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.
- L9
have hstrict : Lt(2 · n,S s · S s)Definitions: Lt(2 · n,S s · S s)Original native command in the exact edition - L10
specialize floor_sqrt_strict_upper_bound (2 * n) - L11
specialize floor_sqrt_strict_upper_bound s - L12
apply floor_sqrt_strict_upper_bound - L13
exact hfloor
03Establish hweakL14–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt to le.
- L14
have hweak : Le(2 · n,S s · S s)Definitions: Le(2 · n,S s · S s)Original native command in the exact edition - L15
specialize lt_to_le (2 * n) - L16
specialize lt_to_le (S s * S s) - L17
apply lt_to_le - L18
exact hstrict
04Establish hsuccL19–22
05Establish hv_existsL23–26
Establish this local claim before using it. It is not an additional assumption.
- L23
have hv_exists : ∃ v. Pow(s + 1,2,v)Definitions: Pow(s + 1,2,v)Original native command in the exact edition - L24
specialize htotal (s + 1) - L25
specialize htotal 2 - L26
exact htotal
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
Establish this local claim before using it. It is not an additional assumption.
09Establish hu_existsL40–43
Establish this local claim before using it. It is not an additional assumption.
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.
12Establish hz_existsL55–58
Establish this local claim before using it. It is not an additional assumption.
- L55
have hz_exists : ∃ z. Pow(s + 1,2 · s,z)Definitions: Pow(s + 1,2 · s,z)Original native command in the exact edition - L56
specialize htotal (s + 1) - L57
specialize htotal (2 * s) - L58
exact htotal
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
Establish this local claim before using it. It is not an additional assumption.
- L87
have hn_double_sum : Le(n,n + n)Definitions: Le(n,n + n)Original native command in the exact edition - L88
specialize le_add_right n - L89
specialize le_add_right n - L90
exact le_add_right
20Establish hdoubleL91–93
21Establish hn_doubleL94–96
Establish this local claim before using it. It is not an additional assumption.
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
Establish this local claim before using it. It is not an additional assumption.
24Establish hproductL107–114
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul.
- L107
have hproduct : Le(n · A,x · x2)Definitions: Le(n · A,x · x2)Original native command in the exact edition - L108
specialize mul_le_mul n - L109
specialize mul_le_mul x - L110
specialize mul_le_mul A - L111
specialize mul_le_mul x2 - L112
apply mul_le_mul - L113
exact hn_square - L114
exact hAz
Original defined 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 : Lt(2 · n,S s · S s)Exact native replay line
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 : Le(2 · n,S s · S s)Exact native replay line
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 : ∃ v. Pow(s + 1,2,v)Exact native replay line
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 : Le(2 · n,x)Exact native replay line
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 : ∃ u. Pow(x,s,u)Exact native replay line
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 : Le(A,x1)Exact native replay line
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 : ∃ z. Pow(s + 1,2 · s,z)Exact native replay line
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 : Le(n,n + n)Exact native replay line
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 : Le(n,2 · n)Exact native replay line
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 : Le(n,x)Exact native replay line
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 : Le(A,x2)Exact native replay line
have hAz : exists k. k + A = x2 - 0105
rewrite <- huz - 0106
exact hpower - 0107
have hproduct : Le(n · A,x · x2)Exact native replay line
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