BT00VV · Bertrand theorem

primorial_le_four_pow_bounded

Alpha v34 checked-use theorem · independently kernel and Lean verified; not Stable

Every bounded Primorial is at most the matching fourth power.

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

(∀ x. ∃ y. CentralBinom(x,y)) ∧ ((∀ x. ∀ y. ∃ z. Choose(x,y,z)) ∧ ((∀ x. ∀ y. ∀ z. Primorial(x + y,z) → ∃ n. ∃ m. Primorial(x,n) ∧ ((∃ k. ∃ i. (∀ j. Lt(j,y) → ∃ u. BetaAt(k,i,j,u) ∧ (Prime(S (x + j)) ∧ u = S (x + j) ∨ ¬Prime(S (x + j)) ∧ u = 1)) ∧ Product(k,i,y,m)) ∧ z = n · m)) ∧ ((∀ x. ∀ y. ∀ z. (∃ n. ∃ m. (∀ k. Lt(k,x) → ∃ i. BetaAt(n,m,k,i) ∧ (Prime(S (x + k)) ∧ i = S (x + k) ∨ ¬Prime(S (x + k)) ∧ i = 1)) ∧ Product(n,m,x,y)) → CentralBinom(x,z)Le(y,z)) ∧ ((∀ x. ∀ y. ∀ z. (∃ n. ∃ m. (∀ k. Lt(k,x) → ∃ i. BetaAt(n,m,k,i) ∧ (Prime(S (S x + k)) ∧ i = S (S x + k) ∨ ¬Prime(S (S x + k)) ∧ i = 1)) ∧ Product(n,m,x,y)) → Choose(S (x + x),x,z)Le(y,z)) ∧ (∀ x. ∀ y. ∀ z. Choose(S (x + x),x,y)Pow(4,x,z)Le(y,z)))))) → ∀ x. ∀ y. ∀ z. ∀ n. Le(y,x)Primorial(y,z)Pow(4,y,n)Le(z,n)

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

30 occurrences

In local proof propositions

38 occurrences

Exact expanded native-PA statement
((forall n. exists c. (((exists bcf_lt_gap_bpfpsp_central_exists_out_of_range. bcf_lt_gap_bpfpsp_central_exists_out_of_range + S (n + n) = n) /\ c = 0) \/ ((exists bcf_le_gap_bpfpsp_central_exists_in_range. bcf_le_gap_bpfpsp_central_exists_in_range + (n) = n + n) /\ (exists bcf_row_code_code_bpfpsp_central_exists bcf_row_code_scale_bpfpsp_central_exists bcf_row_scale_code_bpfpsp_central_exists bcf_row_scale_scale_bpfpsp_central_exists bcf_row_code_bpfpsp_central_exists bcf_row_scale_bpfpsp_central_exists. ((forall bcf_row_index_bpfpsp_central_exists_table. (exists bcf_lt_gap_bpfpsp_central_exists_table_row_bound. bcf_lt_gap_bpfpsp_central_exists_table_row_bound + S (bcf_row_index_bpfpsp_central_exists_table) = S (n + n)) -> exists bcf_row_code_bpfpsp_central_exists_table bcf_row_scale_bpfpsp_central_exists_table. ((((exists bcf_height_bpfpsp_central_exists_table_decoded_row_code. bcf_height_bpfpsp_central_exists_table_decoded_row_code + S (bcf_row_code_bpfpsp_central_exists_table) = S ((S (bcf_row_index_bpfpsp_central_exists_table)) * bcf_row_code_scale_bpfpsp_central_exists)) /\ exists bcf_quotient_bpfpsp_central_exists_table_decoded_row_code. bcf_row_code_code_bpfpsp_central_exists = bcf_quotient_bpfpsp_central_exists_table_decoded_row_code * S ((S (bcf_row_index_bpfpsp_central_exists_table)) * bcf_row_code_scale_bpfpsp_central_exists) + (bcf_row_code_bpfpsp_central_exists_table))) /\ ((((exists bcf_height_bpfpsp_central_exists_table_decoded_row_scale. bcf_height_bpfpsp_central_exists_table_decoded_row_scale + S (bcf_row_scale_bpfpsp_central_exists_table) = S ((S (bcf_row_index_bpfpsp_central_exists_table)) * bcf_row_scale_scale_bpfpsp_central_exists)) /\ exists bcf_quotient_bpfpsp_central_exists_table_decoded_row_scale. bcf_row_scale_code_bpfpsp_central_exists = bcf_quotient_bpfpsp_central_exists_table_decoded_row_scale * S ((S (bcf_row_index_bpfpsp_central_exists_table)) * bcf_row_scale_scale_bpfpsp_central_exists) + (bcf_row_scale_bpfpsp_central_exists_table))) /\ ((bcf_row_index_bpfpsp_central_exists_table = 0 /\ (forall bcf_index_bpfpsp_central_exists_table_zero_row. (exists bcf_lt_gap_bpfpsp_central_exists_table_zero_row_bound. bcf_lt_gap_bpfpsp_central_exists_table_zero_row_bound + S (bcf_index_bpfpsp_central_exists_table_zero_row) = S (n + n)) -> exists bcf_value_bpfpsp_central_exists_table_zero_row. ((((exists bcf_height_bpfpsp_central_exists_table_zero_row_entry. bcf_height_bpfpsp_central_exists_table_zero_row_entry + S (bcf_value_bpfpsp_central_exists_table_zero_row) = S ((S (bcf_index_bpfpsp_central_exists_table_zero_row)) * bcf_row_scale_bpfpsp_central_exists_table)) /\ exists bcf_quotient_bpfpsp_central_exists_table_zero_row_entry. bcf_row_code_bpfpsp_central_exists_table = bcf_quotient_bpfpsp_central_exists_table_zero_row_entry * S ((S (bcf_index_bpfpsp_central_exists_table_zero_row)) * bcf_row_scale_bpfpsp_central_exists_table) + (bcf_value_bpfpsp_central_exists_table_zero_row))) /\ ((bcf_index_bpfpsp_central_exists_table_zero_row = 0 /\ bcf_value_bpfpsp_central_exists_table_zero_row = 1) \/ exists bcf_predecessor_bpfpsp_central_exists_table_zero_row. bcf_index_bpfpsp_central_exists_table_zero_row = S bcf_predecessor_bpfpsp_central_exists_table_zero_row /\ bcf_value_bpfpsp_central_exists_table_zero_row = 0)))) \/ exists bcf_predecessor_bpfpsp_central_exists_table bcf_previous_code_bpfpsp_central_exists_table bcf_previous_scale_bpfpsp_central_exists_table. bcf_row_index_bpfpsp_central_exists_table = S bcf_predecessor_bpfpsp_central_exists_table /\ ((((exists bcf_height_bpfpsp_central_exists_table_decoded_previous_code. bcf_height_bpfpsp_central_exists_table_decoded_previous_code + S (bcf_previous_code_bpfpsp_central_exists_table) = S ((S (bcf_predecessor_bpfpsp_central_exists_table)) * bcf_row_code_scale_bpfpsp_central_exists)) /\ exists bcf_quotient_bpfpsp_central_exists_table_decoded_previous_code. bcf_row_code_code_bpfpsp_central_exists = bcf_quotient_bpfpsp_central_exists_table_decoded_previous_code * S ((S (bcf_predecessor_bpfpsp_central_exists_table)) * bcf_row_code_scale_bpfpsp_central_exists) + (bcf_previous_code_bpfpsp_central_exists_table))) /\ ((((exists bcf_height_bpfpsp_central_exists_table_decoded_previous_scale. bcf_height_bpfpsp_central_exists_table_decoded_previous_scale + S (bcf_previous_scale_bpfpsp_central_exists_table) = S ((S (bcf_predecessor_bpfpsp_central_exists_table)) * bcf_row_scale_scale_bpfpsp_central_exists)) /\ exists bcf_quotient_bpfpsp_central_exists_table_decoded_previous_scale. bcf_row_scale_code_bpfpsp_central_exists = bcf_quotient_bpfpsp_central_exists_table_decoded_previous_scale * S ((S (bcf_predecessor_bpfpsp_central_exists_table)) * bcf_row_scale_scale_bpfpsp_central_exists) + (bcf_previous_scale_bpfpsp_central_exists_table))) /\ (forall bcf_index_bpfpsp_central_exists_table_row_step. (exists bcf_lt_gap_bpfpsp_central_exists_table_row_step_bound. bcf_lt_gap_bpfpsp_central_exists_table_row_step_bound + S (bcf_index_bpfpsp_central_exists_table_row_step) = S (n + n)) -> exists bcf_value_bpfpsp_central_exists_table_row_step. ((((exists bcf_height_bpfpsp_central_exists_table_row_step_entry. bcf_height_bpfpsp_central_exists_table_row_step_entry + S (bcf_value_bpfpsp_central_exists_table_row_step) = S ((S (bcf_index_bpfpsp_central_exists_table_row_step)) * bcf_row_scale_bpfpsp_central_exists_table)) /\ exists bcf_quotient_bpfpsp_central_exists_table_row_step_entry. bcf_row_code_bpfpsp_central_exists_table = bcf_quotient_bpfpsp_central_exists_table_row_step_entry * S ((S (bcf_index_bpfpsp_central_exists_table_row_step)) * bcf_row_scale_bpfpsp_central_exists_table) + (bcf_value_bpfpsp_central_exists_table_row_step))) /\ ((bcf_index_bpfpsp_central_exists_table_row_step = 0 /\ bcf_value_bpfpsp_central_exists_table_row_step = 1) \/ exists bcf_predecessor_bpfpsp_central_exists_table_row_step bcf_left_bpfpsp_central_exists_table_row_step bcf_right_bpfpsp_central_exists_table_row_step. bcf_index_bpfpsp_central_exists_table_row_step = S bcf_predecessor_bpfpsp_central_exists_table_row_step /\ ((((exists bcf_height_bpfpsp_central_exists_table_row_step_previous_left. bcf_height_bpfpsp_central_exists_table_row_step_previous_left + S (bcf_left_bpfpsp_central_exists_table_row_step) = S ((S (bcf_predecessor_bpfpsp_central_exists_table_row_step)) * bcf_previous_scale_bpfpsp_central_exists_table)) /\ exists bcf_quotient_bpfpsp_central_exists_table_row_step_previous_left. bcf_previous_code_bpfpsp_central_exists_table = bcf_quotient_bpfpsp_central_exists_table_row_step_previous_left * S ((S (bcf_predecessor_bpfpsp_central_exists_table_row_step)) * bcf_previous_scale_bpfpsp_central_exists_table) + (bcf_left_bpfpsp_central_exists_table_row_step))) /\ ((((exists bcf_height_bpfpsp_central_exists_table_row_step_previous_right. bcf_height_bpfpsp_central_exists_table_row_step_previous_right + S (bcf_right_bpfpsp_central_exists_table_row_step) = S ((S (S (bcf_predecessor_bpfpsp_central_exists_table_row_step))) * bcf_previous_scale_bpfpsp_central_exists_table)) /\ exists bcf_quotient_bpfpsp_central_exists_table_row_step_previous_right. bcf_previous_code_bpfpsp_central_exists_table = bcf_quotient_bpfpsp_central_exists_table_row_step_previous_right * S ((S (S (bcf_predecessor_bpfpsp_central_exists_table_row_step))) * bcf_previous_scale_bpfpsp_central_exists_table) + (bcf_right_bpfpsp_central_exists_table_row_step))) /\ bcf_value_bpfpsp_central_exists_table_row_step = bcf_left_bpfpsp_central_exists_table_row_step + bcf_right_bpfpsp_central_exists_table_row_step))))))))))) /\ ((((exists bcf_height_bpfpsp_central_exists_decoded_row_code. bcf_height_bpfpsp_central_exists_decoded_row_code + S (bcf_row_code_bpfpsp_central_exists) = S ((S (n + n)) * bcf_row_code_scale_bpfpsp_central_exists)) /\ exists bcf_quotient_bpfpsp_central_exists_decoded_row_code. bcf_row_code_code_bpfpsp_central_exists = bcf_quotient_bpfpsp_central_exists_decoded_row_code * S ((S (n + n)) * bcf_row_code_scale_bpfpsp_central_exists) + (bcf_row_code_bpfpsp_central_exists))) /\ ((((exists bcf_height_bpfpsp_central_exists_decoded_row_scale. bcf_height_bpfpsp_central_exists_decoded_row_scale + S (bcf_row_scale_bpfpsp_central_exists) = S ((S (n + n)) * bcf_row_scale_scale_bpfpsp_central_exists)) /\ exists bcf_quotient_bpfpsp_central_exists_decoded_row_scale. bcf_row_scale_code_bpfpsp_central_exists = bcf_quotient_bpfpsp_central_exists_decoded_row_scale * S ((S (n + n)) * bcf_row_scale_scale_bpfpsp_central_exists) + (bcf_row_scale_bpfpsp_central_exists))) /\ (((exists bcf_height_bpfpsp_central_exists_decoded_value. bcf_height_bpfpsp_central_exists_decoded_value + S (c) = S ((S (n)) * bcf_row_scale_bpfpsp_central_exists)) /\ exists bcf_quotient_bpfpsp_central_exists_decoded_value. bcf_row_code_bpfpsp_central_exists = bcf_quotient_bpfpsp_central_exists_decoded_value * S ((S (n)) * bcf_row_scale_bpfpsp_central_exists) + (c)))))))))) /\ ((forall n k. exists c. (((exists bcf_lt_gap_bpfpsp_choose_exists_out_of_range. bcf_lt_gap_bpfpsp_choose_exists_out_of_range + S (n) = k) /\ c = 0) \/ ((exists bcf_le_gap_bpfpsp_choose_exists_in_range. bcf_le_gap_bpfpsp_choose_exists_in_range + (k) = n) /\ (exists bcf_row_code_code_bpfpsp_choose_exists bcf_row_code_scale_bpfpsp_choose_exists bcf_row_scale_code_bpfpsp_choose_exists bcf_row_scale_scale_bpfpsp_choose_exists bcf_row_code_bpfpsp_choose_exists bcf_row_scale_bpfpsp_choose_exists. ((forall bcf_row_index_bpfpsp_choose_exists_table. (exists bcf_lt_gap_bpfpsp_choose_exists_table_row_bound. bcf_lt_gap_bpfpsp_choose_exists_table_row_bound + S (bcf_row_index_bpfpsp_choose_exists_table) = S (n)) -> exists bcf_row_code_bpfpsp_choose_exists_table bcf_row_scale_bpfpsp_choose_exists_table. ((((exists bcf_height_bpfpsp_choose_exists_table_decoded_row_code. bcf_height_bpfpsp_choose_exists_table_decoded_row_code + S (bcf_row_code_bpfpsp_choose_exists_table) = S ((S (bcf_row_index_bpfpsp_choose_exists_table)) * bcf_row_code_scale_bpfpsp_choose_exists)) /\ exists bcf_quotient_bpfpsp_choose_exists_table_decoded_row_code. bcf_row_code_code_bpfpsp_choose_exists = bcf_quotient_bpfpsp_choose_exists_table_decoded_row_code * S ((S (bcf_row_index_bpfpsp_choose_exists_table)) * bcf_row_code_scale_bpfpsp_choose_exists) + (bcf_row_code_bpfpsp_choose_exists_table))) /\ ((((exists bcf_height_bpfpsp_choose_exists_table_decoded_row_scale. bcf_height_bpfpsp_choose_exists_table_decoded_row_scale + S (bcf_row_scale_bpfpsp_choose_exists_table) = S ((S (bcf_row_index_bpfpsp_choose_exists_table)) * bcf_row_scale_scale_bpfpsp_choose_exists)) /\ exists bcf_quotient_bpfpsp_choose_exists_table_decoded_row_scale. bcf_row_scale_code_bpfpsp_choose_exists = bcf_quotient_bpfpsp_choose_exists_table_decoded_row_scale * S ((S (bcf_row_index_bpfpsp_choose_exists_table)) * bcf_row_scale_scale_bpfpsp_choose_exists) + (bcf_row_scale_bpfpsp_choose_exists_table))) /\ ((bcf_row_index_bpfpsp_choose_exists_table = 0 /\ (forall bcf_index_bpfpsp_choose_exists_table_zero_row. (exists bcf_lt_gap_bpfpsp_choose_exists_table_zero_row_bound. bcf_lt_gap_bpfpsp_choose_exists_table_zero_row_bound + S (bcf_index_bpfpsp_choose_exists_table_zero_row) = S (n)) -> exists bcf_value_bpfpsp_choose_exists_table_zero_row. ((((exists bcf_height_bpfpsp_choose_exists_table_zero_row_entry. bcf_height_bpfpsp_choose_exists_table_zero_row_entry + S (bcf_value_bpfpsp_choose_exists_table_zero_row) = S ((S (bcf_index_bpfpsp_choose_exists_table_zero_row)) * bcf_row_scale_bpfpsp_choose_exists_table)) /\ exists bcf_quotient_bpfpsp_choose_exists_table_zero_row_entry. bcf_row_code_bpfpsp_choose_exists_table = bcf_quotient_bpfpsp_choose_exists_table_zero_row_entry * S ((S (bcf_index_bpfpsp_choose_exists_table_zero_row)) * bcf_row_scale_bpfpsp_choose_exists_table) + (bcf_value_bpfpsp_choose_exists_table_zero_row))) /\ ((bcf_index_bpfpsp_choose_exists_table_zero_row = 0 /\ bcf_value_bpfpsp_choose_exists_table_zero_row = 1) \/ exists bcf_predecessor_bpfpsp_choose_exists_table_zero_row. bcf_index_bpfpsp_choose_exists_table_zero_row = S bcf_predecessor_bpfpsp_choose_exists_table_zero_row /\ bcf_value_bpfpsp_choose_exists_table_zero_row = 0)))) \/ exists bcf_predecessor_bpfpsp_choose_exists_table bcf_previous_code_bpfpsp_choose_exists_table bcf_previous_scale_bpfpsp_choose_exists_table. bcf_row_index_bpfpsp_choose_exists_table = S bcf_predecessor_bpfpsp_choose_exists_table /\ ((((exists bcf_height_bpfpsp_choose_exists_table_decoded_previous_code. bcf_height_bpfpsp_choose_exists_table_decoded_previous_code + S (bcf_previous_code_bpfpsp_choose_exists_table) = S ((S (bcf_predecessor_bpfpsp_choose_exists_table)) * bcf_row_code_scale_bpfpsp_choose_exists)) /\ exists bcf_quotient_bpfpsp_choose_exists_table_decoded_previous_code. bcf_row_code_code_bpfpsp_choose_exists = bcf_quotient_bpfpsp_choose_exists_table_decoded_previous_code * S ((S (bcf_predecessor_bpfpsp_choose_exists_table)) * bcf_row_code_scale_bpfpsp_choose_exists) + (bcf_previous_code_bpfpsp_choose_exists_table))) /\ ((((exists bcf_height_bpfpsp_choose_exists_table_decoded_previous_scale. bcf_height_bpfpsp_choose_exists_table_decoded_previous_scale + S (bcf_previous_scale_bpfpsp_choose_exists_table) = S ((S (bcf_predecessor_bpfpsp_choose_exists_table)) * bcf_row_scale_scale_bpfpsp_choose_exists)) /\ exists bcf_quotient_bpfpsp_choose_exists_table_decoded_previous_scale. bcf_row_scale_code_bpfpsp_choose_exists = bcf_quotient_bpfpsp_choose_exists_table_decoded_previous_scale * S ((S (bcf_predecessor_bpfpsp_choose_exists_table)) * bcf_row_scale_scale_bpfpsp_choose_exists) + (bcf_previous_scale_bpfpsp_choose_exists_table))) /\ (forall bcf_index_bpfpsp_choose_exists_table_row_step. (exists bcf_lt_gap_bpfpsp_choose_exists_table_row_step_bound. bcf_lt_gap_bpfpsp_choose_exists_table_row_step_bound + S (bcf_index_bpfpsp_choose_exists_table_row_step) = S (n)) -> exists bcf_value_bpfpsp_choose_exists_table_row_step. ((((exists bcf_height_bpfpsp_choose_exists_table_row_step_entry. bcf_height_bpfpsp_choose_exists_table_row_step_entry + S (bcf_value_bpfpsp_choose_exists_table_row_step) = S ((S (bcf_index_bpfpsp_choose_exists_table_row_step)) * bcf_row_scale_bpfpsp_choose_exists_table)) /\ exists bcf_quotient_bpfpsp_choose_exists_table_row_step_entry. bcf_row_code_bpfpsp_choose_exists_table = bcf_quotient_bpfpsp_choose_exists_table_row_step_entry * S ((S (bcf_index_bpfpsp_choose_exists_table_row_step)) * bcf_row_scale_bpfpsp_choose_exists_table) + (bcf_value_bpfpsp_choose_exists_table_row_step))) /\ ((bcf_index_bpfpsp_choose_exists_table_row_step = 0 /\ bcf_value_bpfpsp_choose_exists_table_row_step = 1) \/ exists bcf_predecessor_bpfpsp_choose_exists_table_row_step bcf_left_bpfpsp_choose_exists_table_row_step bcf_right_bpfpsp_choose_exists_table_row_step. bcf_index_bpfpsp_choose_exists_table_row_step = S bcf_predecessor_bpfpsp_choose_exists_table_row_step /\ ((((exists bcf_height_bpfpsp_choose_exists_table_row_step_previous_left. bcf_height_bpfpsp_choose_exists_table_row_step_previous_left + S (bcf_left_bpfpsp_choose_exists_table_row_step) = S ((S (bcf_predecessor_bpfpsp_choose_exists_table_row_step)) * bcf_previous_scale_bpfpsp_choose_exists_table)) /\ exists bcf_quotient_bpfpsp_choose_exists_table_row_step_previous_left. bcf_previous_code_bpfpsp_choose_exists_table = bcf_quotient_bpfpsp_choose_exists_table_row_step_previous_left * S ((S (bcf_predecessor_bpfpsp_choose_exists_table_row_step)) * bcf_previous_scale_bpfpsp_choose_exists_table) + (bcf_left_bpfpsp_choose_exists_table_row_step))) /\ ((((exists bcf_height_bpfpsp_choose_exists_table_row_step_previous_right. bcf_height_bpfpsp_choose_exists_table_row_step_previous_right + S (bcf_right_bpfpsp_choose_exists_table_row_step) = S ((S (S (bcf_predecessor_bpfpsp_choose_exists_table_row_step))) * bcf_previous_scale_bpfpsp_choose_exists_table)) /\ exists bcf_quotient_bpfpsp_choose_exists_table_row_step_previous_right. bcf_previous_code_bpfpsp_choose_exists_table = bcf_quotient_bpfpsp_choose_exists_table_row_step_previous_right * S ((S (S (bcf_predecessor_bpfpsp_choose_exists_table_row_step))) * bcf_previous_scale_bpfpsp_choose_exists_table) + (bcf_right_bpfpsp_choose_exists_table_row_step))) /\ bcf_value_bpfpsp_choose_exists_table_row_step = bcf_left_bpfpsp_choose_exists_table_row_step + bcf_right_bpfpsp_choose_exists_table_row_step))))))))))) /\ ((((exists bcf_height_bpfpsp_choose_exists_decoded_row_code. bcf_height_bpfpsp_choose_exists_decoded_row_code + S (bcf_row_code_bpfpsp_choose_exists) = S ((S (n)) * bcf_row_code_scale_bpfpsp_choose_exists)) /\ exists bcf_quotient_bpfpsp_choose_exists_decoded_row_code. bcf_row_code_code_bpfpsp_choose_exists = bcf_quotient_bpfpsp_choose_exists_decoded_row_code * S ((S (n)) * bcf_row_code_scale_bpfpsp_choose_exists) + (bcf_row_code_bpfpsp_choose_exists))) /\ ((((exists bcf_height_bpfpsp_choose_exists_decoded_row_scale. bcf_height_bpfpsp_choose_exists_decoded_row_scale + S (bcf_row_scale_bpfpsp_choose_exists) = S ((S (n)) * bcf_row_scale_scale_bpfpsp_choose_exists)) /\ exists bcf_quotient_bpfpsp_choose_exists_decoded_row_scale. bcf_row_scale_code_bpfpsp_choose_exists = bcf_quotient_bpfpsp_choose_exists_decoded_row_scale * S ((S (n)) * bcf_row_scale_scale_bpfpsp_choose_exists) + (bcf_row_scale_bpfpsp_choose_exists))) /\ (((exists bcf_height_bpfpsp_choose_exists_decoded_value. bcf_height_bpfpsp_choose_exists_decoded_value + S (c) = S ((S (k)) * bcf_row_scale_bpfpsp_choose_exists)) /\ exists bcf_quotient_bpfpsp_choose_exists_decoded_value. bcf_row_code_bpfpsp_choose_exists = bcf_quotient_bpfpsp_choose_exists_decoded_value * S ((S (k)) * bcf_row_scale_bpfpsp_choose_exists) + (c)))))))))) /\ ((forall a l z. (exists bpr_code_bpfpsp_split_source bpr_scale_bpfpsp_split_source. ((forall bpr_index_bpfpsp_split_source_mask. (exists bpr_gap_bpfpsp_split_source_mask_bound. bpr_gap_bpfpsp_split_source_mask_bound + S (bpr_index_bpfpsp_split_source_mask) = a + l) -> exists bpr_value_bpfpsp_split_source_mask. ((((exists bpr_height_bpfpsp_split_source_mask_decoded. bpr_height_bpfpsp_split_source_mask_decoded + S (bpr_value_bpfpsp_split_source_mask) = S ((S (bpr_index_bpfpsp_split_source_mask)) * bpr_scale_bpfpsp_split_source)) /\ exists bpr_quotient_bpfpsp_split_source_mask_decoded. bpr_code_bpfpsp_split_source = bpr_quotient_bpfpsp_split_source_mask_decoded * S ((S (bpr_index_bpfpsp_split_source_mask)) * bpr_scale_bpfpsp_split_source) + (bpr_value_bpfpsp_split_source_mask))) /\ (((((~(S (bpr_index_bpfpsp_split_source_mask) = 1) /\ forall bpr_left_bpfpsp_split_source_mask_choice_prime bpr_right_bpfpsp_split_source_mask_choice_prime. S (bpr_index_bpfpsp_split_source_mask) = bpr_left_bpfpsp_split_source_mask_choice_prime * bpr_right_bpfpsp_split_source_mask_choice_prime -> bpr_left_bpfpsp_split_source_mask_choice_prime = 1 \/ bpr_right_bpfpsp_split_source_mask_choice_prime = 1)) /\ bpr_value_bpfpsp_split_source_mask = S (bpr_index_bpfpsp_split_source_mask)) \/ (~((~(S (bpr_index_bpfpsp_split_source_mask) = 1) /\ forall bpr_left_bpfpsp_split_source_mask_choice_prime bpr_right_bpfpsp_split_source_mask_choice_prime. S (bpr_index_bpfpsp_split_source_mask) = bpr_left_bpfpsp_split_source_mask_choice_prime * bpr_right_bpfpsp_split_source_mask_choice_prime -> bpr_left_bpfpsp_split_source_mask_choice_prime = 1 \/ bpr_right_bpfpsp_split_source_mask_choice_prime = 1)) /\ bpr_value_bpfpsp_split_source_mask = 1))))) /\ (exists ff_u_bpfpsp_split_source_product ff_v_bpfpsp_split_source_product. ((((exists ff_h_bpfpsp_split_source_product_start. ff_h_bpfpsp_split_source_product_start + S (1) = S ((S (0)) * ff_v_bpfpsp_split_source_product)) /\ exists ff_q_bpfpsp_split_source_product_start. ff_u_bpfpsp_split_source_product = ff_q_bpfpsp_split_source_product_start * S ((S (0)) * ff_v_bpfpsp_split_source_product) + (1))) /\ ((((exists ff_h_bpfpsp_split_source_product_terminal. ff_h_bpfpsp_split_source_product_terminal + S (z) = S ((S (a + l)) * ff_v_bpfpsp_split_source_product)) /\ exists ff_q_bpfpsp_split_source_product_terminal. ff_u_bpfpsp_split_source_product = ff_q_bpfpsp_split_source_product_terminal * S ((S (a + l)) * ff_v_bpfpsp_split_source_product) + (z))) /\ forall ff_i_bpfpsp_split_source_product. (exists ff_lt_bpfpsp_split_source_product_bound. ff_lt_bpfpsp_split_source_product_bound + S ff_i_bpfpsp_split_source_product = a + l) -> exists ff_p_bpfpsp_split_source_product ff_r_bpfpsp_split_source_product ff_s_bpfpsp_split_source_product. ((((exists ff_h_bpfpsp_split_source_product_factor. ff_h_bpfpsp_split_source_product_factor + S (ff_p_bpfpsp_split_source_product) = S ((S (ff_i_bpfpsp_split_source_product)) * bpr_scale_bpfpsp_split_source)) /\ exists ff_q_bpfpsp_split_source_product_factor. bpr_code_bpfpsp_split_source = ff_q_bpfpsp_split_source_product_factor * S ((S (ff_i_bpfpsp_split_source_product)) * bpr_scale_bpfpsp_split_source) + (ff_p_bpfpsp_split_source_product))) /\ ((((exists ff_h_bpfpsp_split_source_product_partial. ff_h_bpfpsp_split_source_product_partial + S (ff_r_bpfpsp_split_source_product) = S ((S (ff_i_bpfpsp_split_source_product)) * ff_v_bpfpsp_split_source_product)) /\ exists ff_q_bpfpsp_split_source_product_partial. ff_u_bpfpsp_split_source_product = ff_q_bpfpsp_split_source_product_partial * S ((S (ff_i_bpfpsp_split_source_product)) * ff_v_bpfpsp_split_source_product) + (ff_r_bpfpsp_split_source_product))) /\ ((((exists ff_h_bpfpsp_split_source_product_successor. ff_h_bpfpsp_split_source_product_successor + S (ff_s_bpfpsp_split_source_product) = S ((S (S ff_i_bpfpsp_split_source_product)) * ff_v_bpfpsp_split_source_product)) /\ exists ff_q_bpfpsp_split_source_product_successor. ff_u_bpfpsp_split_source_product = ff_q_bpfpsp_split_source_product_successor * S ((S (S ff_i_bpfpsp_split_source_product)) * ff_v_bpfpsp_split_source_product) + (ff_s_bpfpsp_split_source_product))) /\ ff_s_bpfpsp_split_source_product = ff_r_bpfpsp_split_source_product * ff_p_bpfpsp_split_source_product)))))))) -> exists x y. (exists bpr_code_bpfpsp_split_prefix bpr_scale_bpfpsp_split_prefix. ((forall bpr_index_bpfpsp_split_prefix_mask. (exists bpr_gap_bpfpsp_split_prefix_mask_bound. bpr_gap_bpfpsp_split_prefix_mask_bound + S (bpr_index_bpfpsp_split_prefix_mask) = a) -> exists bpr_value_bpfpsp_split_prefix_mask. ((((exists bpr_height_bpfpsp_split_prefix_mask_decoded. bpr_height_bpfpsp_split_prefix_mask_decoded + S (bpr_value_bpfpsp_split_prefix_mask) = S ((S (bpr_index_bpfpsp_split_prefix_mask)) * bpr_scale_bpfpsp_split_prefix)) /\ exists bpr_quotient_bpfpsp_split_prefix_mask_decoded. bpr_code_bpfpsp_split_prefix = bpr_quotient_bpfpsp_split_prefix_mask_decoded * S ((S (bpr_index_bpfpsp_split_prefix_mask)) * bpr_scale_bpfpsp_split_prefix) + (bpr_value_bpfpsp_split_prefix_mask))) /\ (((((~(S (bpr_index_bpfpsp_split_prefix_mask) = 1) /\ forall bpr_left_bpfpsp_split_prefix_mask_choice_prime bpr_right_bpfpsp_split_prefix_mask_choice_prime. S (bpr_index_bpfpsp_split_prefix_mask) = bpr_left_bpfpsp_split_prefix_mask_choice_prime * bpr_right_bpfpsp_split_prefix_mask_choice_prime -> bpr_left_bpfpsp_split_prefix_mask_choice_prime = 1 \/ bpr_right_bpfpsp_split_prefix_mask_choice_prime = 1)) /\ bpr_value_bpfpsp_split_prefix_mask = S (bpr_index_bpfpsp_split_prefix_mask)) \/ (~((~(S (bpr_index_bpfpsp_split_prefix_mask) = 1) /\ forall bpr_left_bpfpsp_split_prefix_mask_choice_prime bpr_right_bpfpsp_split_prefix_mask_choice_prime. S (bpr_index_bpfpsp_split_prefix_mask) = bpr_left_bpfpsp_split_prefix_mask_choice_prime * bpr_right_bpfpsp_split_prefix_mask_choice_prime -> bpr_left_bpfpsp_split_prefix_mask_choice_prime = 1 \/ bpr_right_bpfpsp_split_prefix_mask_choice_prime = 1)) /\ bpr_value_bpfpsp_split_prefix_mask = 1))))) /\ (exists ff_u_bpfpsp_split_prefix_product ff_v_bpfpsp_split_prefix_product. ((((exists ff_h_bpfpsp_split_prefix_product_start. ff_h_bpfpsp_split_prefix_product_start + S (1) = S ((S (0)) * ff_v_bpfpsp_split_prefix_product)) /\ exists ff_q_bpfpsp_split_prefix_product_start. ff_u_bpfpsp_split_prefix_product = ff_q_bpfpsp_split_prefix_product_start * S ((S (0)) * ff_v_bpfpsp_split_prefix_product) + (1))) /\ ((((exists ff_h_bpfpsp_split_prefix_product_terminal. ff_h_bpfpsp_split_prefix_product_terminal + S (x) = S ((S (a)) * ff_v_bpfpsp_split_prefix_product)) /\ exists ff_q_bpfpsp_split_prefix_product_terminal. ff_u_bpfpsp_split_prefix_product = ff_q_bpfpsp_split_prefix_product_terminal * S ((S (a)) * ff_v_bpfpsp_split_prefix_product) + (x))) /\ forall ff_i_bpfpsp_split_prefix_product. (exists ff_lt_bpfpsp_split_prefix_product_bound. ff_lt_bpfpsp_split_prefix_product_bound + S ff_i_bpfpsp_split_prefix_product = a) -> exists ff_p_bpfpsp_split_prefix_product ff_r_bpfpsp_split_prefix_product ff_s_bpfpsp_split_prefix_product. ((((exists ff_h_bpfpsp_split_prefix_product_factor. ff_h_bpfpsp_split_prefix_product_factor + S (ff_p_bpfpsp_split_prefix_product) = S ((S (ff_i_bpfpsp_split_prefix_product)) * bpr_scale_bpfpsp_split_prefix)) /\ exists ff_q_bpfpsp_split_prefix_product_factor. bpr_code_bpfpsp_split_prefix = ff_q_bpfpsp_split_prefix_product_factor * S ((S (ff_i_bpfpsp_split_prefix_product)) * bpr_scale_bpfpsp_split_prefix) + (ff_p_bpfpsp_split_prefix_product))) /\ ((((exists ff_h_bpfpsp_split_prefix_product_partial. ff_h_bpfpsp_split_prefix_product_partial + S (ff_r_bpfpsp_split_prefix_product) = S ((S (ff_i_bpfpsp_split_prefix_product)) * ff_v_bpfpsp_split_prefix_product)) /\ exists ff_q_bpfpsp_split_prefix_product_partial. ff_u_bpfpsp_split_prefix_product = ff_q_bpfpsp_split_prefix_product_partial * S ((S (ff_i_bpfpsp_split_prefix_product)) * ff_v_bpfpsp_split_prefix_product) + (ff_r_bpfpsp_split_prefix_product))) /\ ((((exists ff_h_bpfpsp_split_prefix_product_successor. ff_h_bpfpsp_split_prefix_product_successor + S (ff_s_bpfpsp_split_prefix_product) = S ((S (S ff_i_bpfpsp_split_prefix_product)) * ff_v_bpfpsp_split_prefix_product)) /\ exists ff_q_bpfpsp_split_prefix_product_successor. ff_u_bpfpsp_split_prefix_product = ff_q_bpfpsp_split_prefix_product_successor * S ((S (S ff_i_bpfpsp_split_prefix_product)) * ff_v_bpfpsp_split_prefix_product) + (ff_s_bpfpsp_split_prefix_product))) /\ ff_s_bpfpsp_split_prefix_product = ff_r_bpfpsp_split_prefix_product * ff_p_bpfpsp_split_prefix_product)))))))) /\ ((exists bpr_code_bpfpsp_split_interval bpr_scale_bpfpsp_split_interval. ((forall bpr_index_bpfpsp_split_interval_mask. (exists bpr_gap_bpfpsp_split_interval_mask_bound. bpr_gap_bpfpsp_split_interval_mask_bound + S (bpr_index_bpfpsp_split_interval_mask) = l) -> exists bpr_value_bpfpsp_split_interval_mask. ((((exists bpr_height_bpfpsp_split_interval_mask_decoded. bpr_height_bpfpsp_split_interval_mask_decoded + S (bpr_value_bpfpsp_split_interval_mask) = S ((S (bpr_index_bpfpsp_split_interval_mask)) * bpr_scale_bpfpsp_split_interval)) /\ exists bpr_quotient_bpfpsp_split_interval_mask_decoded. bpr_code_bpfpsp_split_interval = bpr_quotient_bpfpsp_split_interval_mask_decoded * S ((S (bpr_index_bpfpsp_split_interval_mask)) * bpr_scale_bpfpsp_split_interval) + (bpr_value_bpfpsp_split_interval_mask))) /\ (((((~(S (a + bpr_index_bpfpsp_split_interval_mask) = 1) /\ forall bpr_left_bpfpsp_split_interval_mask_choice_prime bpr_right_bpfpsp_split_interval_mask_choice_prime. S (a + bpr_index_bpfpsp_split_interval_mask) = bpr_left_bpfpsp_split_interval_mask_choice_prime * bpr_right_bpfpsp_split_interval_mask_choice_prime -> bpr_left_bpfpsp_split_interval_mask_choice_prime = 1 \/ bpr_right_bpfpsp_split_interval_mask_choice_prime = 1)) /\ bpr_value_bpfpsp_split_interval_mask = S (a + bpr_index_bpfpsp_split_interval_mask)) \/ (~((~(S (a + bpr_index_bpfpsp_split_interval_mask) = 1) /\ forall bpr_left_bpfpsp_split_interval_mask_choice_prime bpr_right_bpfpsp_split_interval_mask_choice_prime. S (a + bpr_index_bpfpsp_split_interval_mask) = bpr_left_bpfpsp_split_interval_mask_choice_prime * bpr_right_bpfpsp_split_interval_mask_choice_prime -> bpr_left_bpfpsp_split_interval_mask_choice_prime = 1 \/ bpr_right_bpfpsp_split_interval_mask_choice_prime = 1)) /\ bpr_value_bpfpsp_split_interval_mask = 1))))) /\ (exists ff_u_bpfpsp_split_interval_product ff_v_bpfpsp_split_interval_product. ((((exists ff_h_bpfpsp_split_interval_product_start. ff_h_bpfpsp_split_interval_product_start + S (1) = S ((S (0)) * ff_v_bpfpsp_split_interval_product)) /\ exists ff_q_bpfpsp_split_interval_product_start. ff_u_bpfpsp_split_interval_product = ff_q_bpfpsp_split_interval_product_start * S ((S (0)) * ff_v_bpfpsp_split_interval_product) + (1))) /\ ((((exists ff_h_bpfpsp_split_interval_product_terminal. ff_h_bpfpsp_split_interval_product_terminal + S (y) = S ((S (l)) * ff_v_bpfpsp_split_interval_product)) /\ exists ff_q_bpfpsp_split_interval_product_terminal. ff_u_bpfpsp_split_interval_product = ff_q_bpfpsp_split_interval_product_terminal * S ((S (l)) * ff_v_bpfpsp_split_interval_product) + (y))) /\ forall ff_i_bpfpsp_split_interval_product. (exists ff_lt_bpfpsp_split_interval_product_bound. ff_lt_bpfpsp_split_interval_product_bound + S ff_i_bpfpsp_split_interval_product = l) -> exists ff_p_bpfpsp_split_interval_product ff_r_bpfpsp_split_interval_product ff_s_bpfpsp_split_interval_product. ((((exists ff_h_bpfpsp_split_interval_product_factor. ff_h_bpfpsp_split_interval_product_factor + S (ff_p_bpfpsp_split_interval_product) = S ((S (ff_i_bpfpsp_split_interval_product)) * bpr_scale_bpfpsp_split_interval)) /\ exists ff_q_bpfpsp_split_interval_product_factor. bpr_code_bpfpsp_split_interval = ff_q_bpfpsp_split_interval_product_factor * S ((S (ff_i_bpfpsp_split_interval_product)) * bpr_scale_bpfpsp_split_interval) + (ff_p_bpfpsp_split_interval_product))) /\ ((((exists ff_h_bpfpsp_split_interval_product_partial. ff_h_bpfpsp_split_interval_product_partial + S (ff_r_bpfpsp_split_interval_product) = S ((S (ff_i_bpfpsp_split_interval_product)) * ff_v_bpfpsp_split_interval_product)) /\ exists ff_q_bpfpsp_split_interval_product_partial. ff_u_bpfpsp_split_interval_product = ff_q_bpfpsp_split_interval_product_partial * S ((S (ff_i_bpfpsp_split_interval_product)) * ff_v_bpfpsp_split_interval_product) + (ff_r_bpfpsp_split_interval_product))) /\ ((((exists ff_h_bpfpsp_split_interval_product_successor. ff_h_bpfpsp_split_interval_product_successor + S (ff_s_bpfpsp_split_interval_product) = S ((S (S ff_i_bpfpsp_split_interval_product)) * ff_v_bpfpsp_split_interval_product)) /\ exists ff_q_bpfpsp_split_interval_product_successor. ff_u_bpfpsp_split_interval_product = ff_q_bpfpsp_split_interval_product_successor * S ((S (S ff_i_bpfpsp_split_interval_product)) * ff_v_bpfpsp_split_interval_product) + (ff_s_bpfpsp_split_interval_product))) /\ ff_s_bpfpsp_split_interval_product = ff_r_bpfpsp_split_interval_product * ff_p_bpfpsp_split_interval_product)))))))) /\ z = x * y)) /\ ((forall n z c. (exists bpr_code_bpfpsp_even_interval bpr_scale_bpfpsp_even_interval. ((forall bpr_index_bpfpsp_even_interval_mask. (exists bpr_gap_bpfpsp_even_interval_mask_bound. bpr_gap_bpfpsp_even_interval_mask_bound + S (bpr_index_bpfpsp_even_interval_mask) = n) -> exists bpr_value_bpfpsp_even_interval_mask. ((((exists bpr_height_bpfpsp_even_interval_mask_decoded. bpr_height_bpfpsp_even_interval_mask_decoded + S (bpr_value_bpfpsp_even_interval_mask) = S ((S (bpr_index_bpfpsp_even_interval_mask)) * bpr_scale_bpfpsp_even_interval)) /\ exists bpr_quotient_bpfpsp_even_interval_mask_decoded. bpr_code_bpfpsp_even_interval = bpr_quotient_bpfpsp_even_interval_mask_decoded * S ((S (bpr_index_bpfpsp_even_interval_mask)) * bpr_scale_bpfpsp_even_interval) + (bpr_value_bpfpsp_even_interval_mask))) /\ (((((~(S (n + bpr_index_bpfpsp_even_interval_mask) = 1) /\ forall bpr_left_bpfpsp_even_interval_mask_choice_prime bpr_right_bpfpsp_even_interval_mask_choice_prime. S (n + bpr_index_bpfpsp_even_interval_mask) = bpr_left_bpfpsp_even_interval_mask_choice_prime * bpr_right_bpfpsp_even_interval_mask_choice_prime -> bpr_left_bpfpsp_even_interval_mask_choice_prime = 1 \/ bpr_right_bpfpsp_even_interval_mask_choice_prime = 1)) /\ bpr_value_bpfpsp_even_interval_mask = S (n + bpr_index_bpfpsp_even_interval_mask)) \/ (~((~(S (n + bpr_index_bpfpsp_even_interval_mask) = 1) /\ forall bpr_left_bpfpsp_even_interval_mask_choice_prime bpr_right_bpfpsp_even_interval_mask_choice_prime. S (n + bpr_index_bpfpsp_even_interval_mask) = bpr_left_bpfpsp_even_interval_mask_choice_prime * bpr_right_bpfpsp_even_interval_mask_choice_prime -> bpr_left_bpfpsp_even_interval_mask_choice_prime = 1 \/ bpr_right_bpfpsp_even_interval_mask_choice_prime = 1)) /\ bpr_value_bpfpsp_even_interval_mask = 1))))) /\ (exists ff_u_bpfpsp_even_interval_product ff_v_bpfpsp_even_interval_product. ((((exists ff_h_bpfpsp_even_interval_product_start. ff_h_bpfpsp_even_interval_product_start + S (1) = S ((S (0)) * ff_v_bpfpsp_even_interval_product)) /\ exists ff_q_bpfpsp_even_interval_product_start. ff_u_bpfpsp_even_interval_product = ff_q_bpfpsp_even_interval_product_start * S ((S (0)) * ff_v_bpfpsp_even_interval_product) + (1))) /\ ((((exists ff_h_bpfpsp_even_interval_product_terminal. ff_h_bpfpsp_even_interval_product_terminal + S (z) = S ((S (n)) * ff_v_bpfpsp_even_interval_product)) /\ exists ff_q_bpfpsp_even_interval_product_terminal. ff_u_bpfpsp_even_interval_product = ff_q_bpfpsp_even_interval_product_terminal * S ((S (n)) * ff_v_bpfpsp_even_interval_product) + (z))) /\ forall ff_i_bpfpsp_even_interval_product. (exists ff_lt_bpfpsp_even_interval_product_bound. ff_lt_bpfpsp_even_interval_product_bound + S ff_i_bpfpsp_even_interval_product = n) -> exists ff_p_bpfpsp_even_interval_product ff_r_bpfpsp_even_interval_product ff_s_bpfpsp_even_interval_product. ((((exists ff_h_bpfpsp_even_interval_product_factor. ff_h_bpfpsp_even_interval_product_factor + S (ff_p_bpfpsp_even_interval_product) = S ((S (ff_i_bpfpsp_even_interval_product)) * bpr_scale_bpfpsp_even_interval)) /\ exists ff_q_bpfpsp_even_interval_product_factor. bpr_code_bpfpsp_even_interval = ff_q_bpfpsp_even_interval_product_factor * S ((S (ff_i_bpfpsp_even_interval_product)) * bpr_scale_bpfpsp_even_interval) + (ff_p_bpfpsp_even_interval_product))) /\ ((((exists ff_h_bpfpsp_even_interval_product_partial. ff_h_bpfpsp_even_interval_product_partial + S (ff_r_bpfpsp_even_interval_product) = S ((S (ff_i_bpfpsp_even_interval_product)) * ff_v_bpfpsp_even_interval_product)) /\ exists ff_q_bpfpsp_even_interval_product_partial. ff_u_bpfpsp_even_interval_product = ff_q_bpfpsp_even_interval_product_partial * S ((S (ff_i_bpfpsp_even_interval_product)) * ff_v_bpfpsp_even_interval_product) + (ff_r_bpfpsp_even_interval_product))) /\ ((((exists ff_h_bpfpsp_even_interval_product_successor. ff_h_bpfpsp_even_interval_product_successor + S (ff_s_bpfpsp_even_interval_product) = S ((S (S ff_i_bpfpsp_even_interval_product)) * ff_v_bpfpsp_even_interval_product)) /\ exists ff_q_bpfpsp_even_interval_product_successor. ff_u_bpfpsp_even_interval_product = ff_q_bpfpsp_even_interval_product_successor * S ((S (S ff_i_bpfpsp_even_interval_product)) * ff_v_bpfpsp_even_interval_product) + (ff_s_bpfpsp_even_interval_product))) /\ ff_s_bpfpsp_even_interval_product = ff_r_bpfpsp_even_interval_product * ff_p_bpfpsp_even_interval_product)))))))) -> (((exists bcf_lt_gap_bpfpsp_even_central_out_of_range. bcf_lt_gap_bpfpsp_even_central_out_of_range + S (n + n) = n) /\ c = 0) \/ ((exists bcf_le_gap_bpfpsp_even_central_in_range. bcf_le_gap_bpfpsp_even_central_in_range + (n) = n + n) /\ (exists bcf_row_code_code_bpfpsp_even_central bcf_row_code_scale_bpfpsp_even_central bcf_row_scale_code_bpfpsp_even_central bcf_row_scale_scale_bpfpsp_even_central bcf_row_code_bpfpsp_even_central bcf_row_scale_bpfpsp_even_central. ((forall bcf_row_index_bpfpsp_even_central_table. (exists bcf_lt_gap_bpfpsp_even_central_table_row_bound. bcf_lt_gap_bpfpsp_even_central_table_row_bound + S (bcf_row_index_bpfpsp_even_central_table) = S (n + n)) -> exists bcf_row_code_bpfpsp_even_central_table bcf_row_scale_bpfpsp_even_central_table. ((((exists bcf_height_bpfpsp_even_central_table_decoded_row_code. bcf_height_bpfpsp_even_central_table_decoded_row_code + S (bcf_row_code_bpfpsp_even_central_table) = S ((S (bcf_row_index_bpfpsp_even_central_table)) * bcf_row_code_scale_bpfpsp_even_central)) /\ exists bcf_quotient_bpfpsp_even_central_table_decoded_row_code. bcf_row_code_code_bpfpsp_even_central = bcf_quotient_bpfpsp_even_central_table_decoded_row_code * S ((S (bcf_row_index_bpfpsp_even_central_table)) * bcf_row_code_scale_bpfpsp_even_central) + (bcf_row_code_bpfpsp_even_central_table))) /\ ((((exists bcf_height_bpfpsp_even_central_table_decoded_row_scale. bcf_height_bpfpsp_even_central_table_decoded_row_scale + S (bcf_row_scale_bpfpsp_even_central_table) = S ((S (bcf_row_index_bpfpsp_even_central_table)) * bcf_row_scale_scale_bpfpsp_even_central)) /\ exists bcf_quotient_bpfpsp_even_central_table_decoded_row_scale. bcf_row_scale_code_bpfpsp_even_central = bcf_quotient_bpfpsp_even_central_table_decoded_row_scale * S ((S (bcf_row_index_bpfpsp_even_central_table)) * bcf_row_scale_scale_bpfpsp_even_central) + (bcf_row_scale_bpfpsp_even_central_table))) /\ ((bcf_row_index_bpfpsp_even_central_table = 0 /\ (forall bcf_index_bpfpsp_even_central_table_zero_row. (exists bcf_lt_gap_bpfpsp_even_central_table_zero_row_bound. bcf_lt_gap_bpfpsp_even_central_table_zero_row_bound + S (bcf_index_bpfpsp_even_central_table_zero_row) = S (n + n)) -> exists bcf_value_bpfpsp_even_central_table_zero_row. ((((exists bcf_height_bpfpsp_even_central_table_zero_row_entry. bcf_height_bpfpsp_even_central_table_zero_row_entry + S (bcf_value_bpfpsp_even_central_table_zero_row) = S ((S (bcf_index_bpfpsp_even_central_table_zero_row)) * bcf_row_scale_bpfpsp_even_central_table)) /\ exists bcf_quotient_bpfpsp_even_central_table_zero_row_entry. bcf_row_code_bpfpsp_even_central_table = bcf_quotient_bpfpsp_even_central_table_zero_row_entry * S ((S (bcf_index_bpfpsp_even_central_table_zero_row)) * bcf_row_scale_bpfpsp_even_central_table) + (bcf_value_bpfpsp_even_central_table_zero_row))) /\ ((bcf_index_bpfpsp_even_central_table_zero_row = 0 /\ bcf_value_bpfpsp_even_central_table_zero_row = 1) \/ exists bcf_predecessor_bpfpsp_even_central_table_zero_row. bcf_index_bpfpsp_even_central_table_zero_row = S bcf_predecessor_bpfpsp_even_central_table_zero_row /\ bcf_value_bpfpsp_even_central_table_zero_row = 0)))) \/ exists bcf_predecessor_bpfpsp_even_central_table bcf_previous_code_bpfpsp_even_central_table bcf_previous_scale_bpfpsp_even_central_table. bcf_row_index_bpfpsp_even_central_table = S bcf_predecessor_bpfpsp_even_central_table /\ ((((exists bcf_height_bpfpsp_even_central_table_decoded_previous_code. bcf_height_bpfpsp_even_central_table_decoded_previous_code + S (bcf_previous_code_bpfpsp_even_central_table) = S ((S (bcf_predecessor_bpfpsp_even_central_table)) * bcf_row_code_scale_bpfpsp_even_central)) /\ exists bcf_quotient_bpfpsp_even_central_table_decoded_previous_code. bcf_row_code_code_bpfpsp_even_central = bcf_quotient_bpfpsp_even_central_table_decoded_previous_code * S ((S (bcf_predecessor_bpfpsp_even_central_table)) * bcf_row_code_scale_bpfpsp_even_central) + (bcf_previous_code_bpfpsp_even_central_table))) /\ ((((exists bcf_height_bpfpsp_even_central_table_decoded_previous_scale. bcf_height_bpfpsp_even_central_table_decoded_previous_scale + S (bcf_previous_scale_bpfpsp_even_central_table) = S ((S (bcf_predecessor_bpfpsp_even_central_table)) * bcf_row_scale_scale_bpfpsp_even_central)) /\ exists bcf_quotient_bpfpsp_even_central_table_decoded_previous_scale. bcf_row_scale_code_bpfpsp_even_central = bcf_quotient_bpfpsp_even_central_table_decoded_previous_scale * S ((S (bcf_predecessor_bpfpsp_even_central_table)) * bcf_row_scale_scale_bpfpsp_even_central) + (bcf_previous_scale_bpfpsp_even_central_table))) /\ (forall bcf_index_bpfpsp_even_central_table_row_step. (exists bcf_lt_gap_bpfpsp_even_central_table_row_step_bound. bcf_lt_gap_bpfpsp_even_central_table_row_step_bound + S (bcf_index_bpfpsp_even_central_table_row_step) = S (n + n)) -> exists bcf_value_bpfpsp_even_central_table_row_step. ((((exists bcf_height_bpfpsp_even_central_table_row_step_entry. bcf_height_bpfpsp_even_central_table_row_step_entry + S (bcf_value_bpfpsp_even_central_table_row_step) = S ((S (bcf_index_bpfpsp_even_central_table_row_step)) * bcf_row_scale_bpfpsp_even_central_table)) /\ exists bcf_quotient_bpfpsp_even_central_table_row_step_entry. bcf_row_code_bpfpsp_even_central_table = bcf_quotient_bpfpsp_even_central_table_row_step_entry * S ((S (bcf_index_bpfpsp_even_central_table_row_step)) * bcf_row_scale_bpfpsp_even_central_table) + (bcf_value_bpfpsp_even_central_table_row_step))) /\ ((bcf_index_bpfpsp_even_central_table_row_step = 0 /\ bcf_value_bpfpsp_even_central_table_row_step = 1) \/ exists bcf_predecessor_bpfpsp_even_central_table_row_step bcf_left_bpfpsp_even_central_table_row_step bcf_right_bpfpsp_even_central_table_row_step. bcf_index_bpfpsp_even_central_table_row_step = S bcf_predecessor_bpfpsp_even_central_table_row_step /\ ((((exists bcf_height_bpfpsp_even_central_table_row_step_previous_left. bcf_height_bpfpsp_even_central_table_row_step_previous_left + S (bcf_left_bpfpsp_even_central_table_row_step) = S ((S (bcf_predecessor_bpfpsp_even_central_table_row_step)) * bcf_previous_scale_bpfpsp_even_central_table)) /\ exists bcf_quotient_bpfpsp_even_central_table_row_step_previous_left. bcf_previous_code_bpfpsp_even_central_table = bcf_quotient_bpfpsp_even_central_table_row_step_previous_left * S ((S (bcf_predecessor_bpfpsp_even_central_table_row_step)) * bcf_previous_scale_bpfpsp_even_central_table) + (bcf_left_bpfpsp_even_central_table_row_step))) /\ ((((exists bcf_height_bpfpsp_even_central_table_row_step_previous_right. bcf_height_bpfpsp_even_central_table_row_step_previous_right + S (bcf_right_bpfpsp_even_central_table_row_step) = S ((S (S (bcf_predecessor_bpfpsp_even_central_table_row_step))) * bcf_previous_scale_bpfpsp_even_central_table)) /\ exists bcf_quotient_bpfpsp_even_central_table_row_step_previous_right. bcf_previous_code_bpfpsp_even_central_table = bcf_quotient_bpfpsp_even_central_table_row_step_previous_right * S ((S (S (bcf_predecessor_bpfpsp_even_central_table_row_step))) * bcf_previous_scale_bpfpsp_even_central_table) + (bcf_right_bpfpsp_even_central_table_row_step))) /\ bcf_value_bpfpsp_even_central_table_row_step = bcf_left_bpfpsp_even_central_table_row_step + bcf_right_bpfpsp_even_central_table_row_step))))))))))) /\ ((((exists bcf_height_bpfpsp_even_central_decoded_row_code. bcf_height_bpfpsp_even_central_decoded_row_code + S (bcf_row_code_bpfpsp_even_central) = S ((S (n + n)) * bcf_row_code_scale_bpfpsp_even_central)) /\ exists bcf_quotient_bpfpsp_even_central_decoded_row_code. bcf_row_code_code_bpfpsp_even_central = bcf_quotient_bpfpsp_even_central_decoded_row_code * S ((S (n + n)) * bcf_row_code_scale_bpfpsp_even_central) + (bcf_row_code_bpfpsp_even_central))) /\ ((((exists bcf_height_bpfpsp_even_central_decoded_row_scale. bcf_height_bpfpsp_even_central_decoded_row_scale + S (bcf_row_scale_bpfpsp_even_central) = S ((S (n + n)) * bcf_row_scale_scale_bpfpsp_even_central)) /\ exists bcf_quotient_bpfpsp_even_central_decoded_row_scale. bcf_row_scale_code_bpfpsp_even_central = bcf_quotient_bpfpsp_even_central_decoded_row_scale * S ((S (n + n)) * bcf_row_scale_scale_bpfpsp_even_central) + (bcf_row_scale_bpfpsp_even_central))) /\ (((exists bcf_height_bpfpsp_even_central_decoded_value. bcf_height_bpfpsp_even_central_decoded_value + S (c) = S ((S (n)) * bcf_row_scale_bpfpsp_even_central)) /\ exists bcf_quotient_bpfpsp_even_central_decoded_value. bcf_row_code_bpfpsp_even_central = bcf_quotient_bpfpsp_even_central_decoded_value * S ((S (n)) * bcf_row_scale_bpfpsp_even_central) + (c))))))))) -> (exists bcf_le_gap_bpfpsp_even_result. bcf_le_gap_bpfpsp_even_result + (z) = c)) /\ ((forall n z c. (exists bpr_code_bpfpsp_odd_interval bpr_scale_bpfpsp_odd_interval. ((forall bpr_index_bpfpsp_odd_interval_mask. (exists bpr_gap_bpfpsp_odd_interval_mask_bound. bpr_gap_bpfpsp_odd_interval_mask_bound + S (bpr_index_bpfpsp_odd_interval_mask) = n) -> exists bpr_value_bpfpsp_odd_interval_mask. ((((exists bpr_height_bpfpsp_odd_interval_mask_decoded. bpr_height_bpfpsp_odd_interval_mask_decoded + S (bpr_value_bpfpsp_odd_interval_mask) = S ((S (bpr_index_bpfpsp_odd_interval_mask)) * bpr_scale_bpfpsp_odd_interval)) /\ exists bpr_quotient_bpfpsp_odd_interval_mask_decoded. bpr_code_bpfpsp_odd_interval = bpr_quotient_bpfpsp_odd_interval_mask_decoded * S ((S (bpr_index_bpfpsp_odd_interval_mask)) * bpr_scale_bpfpsp_odd_interval) + (bpr_value_bpfpsp_odd_interval_mask))) /\ (((((~(S (S n + bpr_index_bpfpsp_odd_interval_mask) = 1) /\ forall bpr_left_bpfpsp_odd_interval_mask_choice_prime bpr_right_bpfpsp_odd_interval_mask_choice_prime. S (S n + bpr_index_bpfpsp_odd_interval_mask) = bpr_left_bpfpsp_odd_interval_mask_choice_prime * bpr_right_bpfpsp_odd_interval_mask_choice_prime -> bpr_left_bpfpsp_odd_interval_mask_choice_prime = 1 \/ bpr_right_bpfpsp_odd_interval_mask_choice_prime = 1)) /\ bpr_value_bpfpsp_odd_interval_mask = S (S n + bpr_index_bpfpsp_odd_interval_mask)) \/ (~((~(S (S n + bpr_index_bpfpsp_odd_interval_mask) = 1) /\ forall bpr_left_bpfpsp_odd_interval_mask_choice_prime bpr_right_bpfpsp_odd_interval_mask_choice_prime. S (S n + bpr_index_bpfpsp_odd_interval_mask) = bpr_left_bpfpsp_odd_interval_mask_choice_prime * bpr_right_bpfpsp_odd_interval_mask_choice_prime -> bpr_left_bpfpsp_odd_interval_mask_choice_prime = 1 \/ bpr_right_bpfpsp_odd_interval_mask_choice_prime = 1)) /\ bpr_value_bpfpsp_odd_interval_mask = 1))))) /\ (exists ff_u_bpfpsp_odd_interval_product ff_v_bpfpsp_odd_interval_product. ((((exists ff_h_bpfpsp_odd_interval_product_start. ff_h_bpfpsp_odd_interval_product_start + S (1) = S ((S (0)) * ff_v_bpfpsp_odd_interval_product)) /\ exists ff_q_bpfpsp_odd_interval_product_start. ff_u_bpfpsp_odd_interval_product = ff_q_bpfpsp_odd_interval_product_start * S ((S (0)) * ff_v_bpfpsp_odd_interval_product) + (1))) /\ ((((exists ff_h_bpfpsp_odd_interval_product_terminal. ff_h_bpfpsp_odd_interval_product_terminal + S (z) = S ((S (n)) * ff_v_bpfpsp_odd_interval_product)) /\ exists ff_q_bpfpsp_odd_interval_product_terminal. ff_u_bpfpsp_odd_interval_product = ff_q_bpfpsp_odd_interval_product_terminal * S ((S (n)) * ff_v_bpfpsp_odd_interval_product) + (z))) /\ forall ff_i_bpfpsp_odd_interval_product. (exists ff_lt_bpfpsp_odd_interval_product_bound. ff_lt_bpfpsp_odd_interval_product_bound + S ff_i_bpfpsp_odd_interval_product = n) -> exists ff_p_bpfpsp_odd_interval_product ff_r_bpfpsp_odd_interval_product ff_s_bpfpsp_odd_interval_product. ((((exists ff_h_bpfpsp_odd_interval_product_factor. ff_h_bpfpsp_odd_interval_product_factor + S (ff_p_bpfpsp_odd_interval_product) = S ((S (ff_i_bpfpsp_odd_interval_product)) * bpr_scale_bpfpsp_odd_interval)) /\ exists ff_q_bpfpsp_odd_interval_product_factor. bpr_code_bpfpsp_odd_interval = ff_q_bpfpsp_odd_interval_product_factor * S ((S (ff_i_bpfpsp_odd_interval_product)) * bpr_scale_bpfpsp_odd_interval) + (ff_p_bpfpsp_odd_interval_product))) /\ ((((exists ff_h_bpfpsp_odd_interval_product_partial. ff_h_bpfpsp_odd_interval_product_partial + S (ff_r_bpfpsp_odd_interval_product) = S ((S (ff_i_bpfpsp_odd_interval_product)) * ff_v_bpfpsp_odd_interval_product)) /\ exists ff_q_bpfpsp_odd_interval_product_partial. ff_u_bpfpsp_odd_interval_product = ff_q_bpfpsp_odd_interval_product_partial * S ((S (ff_i_bpfpsp_odd_interval_product)) * ff_v_bpfpsp_odd_interval_product) + (ff_r_bpfpsp_odd_interval_product))) /\ ((((exists ff_h_bpfpsp_odd_interval_product_successor. ff_h_bpfpsp_odd_interval_product_successor + S (ff_s_bpfpsp_odd_interval_product) = S ((S (S ff_i_bpfpsp_odd_interval_product)) * ff_v_bpfpsp_odd_interval_product)) /\ exists ff_q_bpfpsp_odd_interval_product_successor. ff_u_bpfpsp_odd_interval_product = ff_q_bpfpsp_odd_interval_product_successor * S ((S (S ff_i_bpfpsp_odd_interval_product)) * ff_v_bpfpsp_odd_interval_product) + (ff_s_bpfpsp_odd_interval_product))) /\ ff_s_bpfpsp_odd_interval_product = ff_r_bpfpsp_odd_interval_product * ff_p_bpfpsp_odd_interval_product)))))))) -> (((exists bcf_lt_gap_bpfpsp_odd_middle_out_of_range. bcf_lt_gap_bpfpsp_odd_middle_out_of_range + S (S (n + n)) = n) /\ c = 0) \/ ((exists bcf_le_gap_bpfpsp_odd_middle_in_range. bcf_le_gap_bpfpsp_odd_middle_in_range + (n) = S (n + n)) /\ (exists bcf_row_code_code_bpfpsp_odd_middle bcf_row_code_scale_bpfpsp_odd_middle bcf_row_scale_code_bpfpsp_odd_middle bcf_row_scale_scale_bpfpsp_odd_middle bcf_row_code_bpfpsp_odd_middle bcf_row_scale_bpfpsp_odd_middle. ((forall bcf_row_index_bpfpsp_odd_middle_table. (exists bcf_lt_gap_bpfpsp_odd_middle_table_row_bound. bcf_lt_gap_bpfpsp_odd_middle_table_row_bound + S (bcf_row_index_bpfpsp_odd_middle_table) = S (S (n + n))) -> exists bcf_row_code_bpfpsp_odd_middle_table bcf_row_scale_bpfpsp_odd_middle_table. ((((exists bcf_height_bpfpsp_odd_middle_table_decoded_row_code. bcf_height_bpfpsp_odd_middle_table_decoded_row_code + S (bcf_row_code_bpfpsp_odd_middle_table) = S ((S (bcf_row_index_bpfpsp_odd_middle_table)) * bcf_row_code_scale_bpfpsp_odd_middle)) /\ exists bcf_quotient_bpfpsp_odd_middle_table_decoded_row_code. bcf_row_code_code_bpfpsp_odd_middle = bcf_quotient_bpfpsp_odd_middle_table_decoded_row_code * S ((S (bcf_row_index_bpfpsp_odd_middle_table)) * bcf_row_code_scale_bpfpsp_odd_middle) + (bcf_row_code_bpfpsp_odd_middle_table))) /\ ((((exists bcf_height_bpfpsp_odd_middle_table_decoded_row_scale. bcf_height_bpfpsp_odd_middle_table_decoded_row_scale + S (bcf_row_scale_bpfpsp_odd_middle_table) = S ((S (bcf_row_index_bpfpsp_odd_middle_table)) * bcf_row_scale_scale_bpfpsp_odd_middle)) /\ exists bcf_quotient_bpfpsp_odd_middle_table_decoded_row_scale. bcf_row_scale_code_bpfpsp_odd_middle = bcf_quotient_bpfpsp_odd_middle_table_decoded_row_scale * S ((S (bcf_row_index_bpfpsp_odd_middle_table)) * bcf_row_scale_scale_bpfpsp_odd_middle) + (bcf_row_scale_bpfpsp_odd_middle_table))) /\ ((bcf_row_index_bpfpsp_odd_middle_table = 0 /\ (forall bcf_index_bpfpsp_odd_middle_table_zero_row. (exists bcf_lt_gap_bpfpsp_odd_middle_table_zero_row_bound. bcf_lt_gap_bpfpsp_odd_middle_table_zero_row_bound + S (bcf_index_bpfpsp_odd_middle_table_zero_row) = S (S (n + n))) -> exists bcf_value_bpfpsp_odd_middle_table_zero_row. ((((exists bcf_height_bpfpsp_odd_middle_table_zero_row_entry. bcf_height_bpfpsp_odd_middle_table_zero_row_entry + S (bcf_value_bpfpsp_odd_middle_table_zero_row) = S ((S (bcf_index_bpfpsp_odd_middle_table_zero_row)) * bcf_row_scale_bpfpsp_odd_middle_table)) /\ exists bcf_quotient_bpfpsp_odd_middle_table_zero_row_entry. bcf_row_code_bpfpsp_odd_middle_table = bcf_quotient_bpfpsp_odd_middle_table_zero_row_entry * S ((S (bcf_index_bpfpsp_odd_middle_table_zero_row)) * bcf_row_scale_bpfpsp_odd_middle_table) + (bcf_value_bpfpsp_odd_middle_table_zero_row))) /\ ((bcf_index_bpfpsp_odd_middle_table_zero_row = 0 /\ bcf_value_bpfpsp_odd_middle_table_zero_row = 1) \/ exists bcf_predecessor_bpfpsp_odd_middle_table_zero_row. bcf_index_bpfpsp_odd_middle_table_zero_row = S bcf_predecessor_bpfpsp_odd_middle_table_zero_row /\ bcf_value_bpfpsp_odd_middle_table_zero_row = 0)))) \/ exists bcf_predecessor_bpfpsp_odd_middle_table bcf_previous_code_bpfpsp_odd_middle_table bcf_previous_scale_bpfpsp_odd_middle_table. bcf_row_index_bpfpsp_odd_middle_table = S bcf_predecessor_bpfpsp_odd_middle_table /\ ((((exists bcf_height_bpfpsp_odd_middle_table_decoded_previous_code. bcf_height_bpfpsp_odd_middle_table_decoded_previous_code + S (bcf_previous_code_bpfpsp_odd_middle_table) = S ((S (bcf_predecessor_bpfpsp_odd_middle_table)) * bcf_row_code_scale_bpfpsp_odd_middle)) /\ exists bcf_quotient_bpfpsp_odd_middle_table_decoded_previous_code. bcf_row_code_code_bpfpsp_odd_middle = bcf_quotient_bpfpsp_odd_middle_table_decoded_previous_code * S ((S (bcf_predecessor_bpfpsp_odd_middle_table)) * bcf_row_code_scale_bpfpsp_odd_middle) + (bcf_previous_code_bpfpsp_odd_middle_table))) /\ ((((exists bcf_height_bpfpsp_odd_middle_table_decoded_previous_scale. bcf_height_bpfpsp_odd_middle_table_decoded_previous_scale + S (bcf_previous_scale_bpfpsp_odd_middle_table) = S ((S (bcf_predecessor_bpfpsp_odd_middle_table)) * bcf_row_scale_scale_bpfpsp_odd_middle)) /\ exists bcf_quotient_bpfpsp_odd_middle_table_decoded_previous_scale. bcf_row_scale_code_bpfpsp_odd_middle = bcf_quotient_bpfpsp_odd_middle_table_decoded_previous_scale * S ((S (bcf_predecessor_bpfpsp_odd_middle_table)) * bcf_row_scale_scale_bpfpsp_odd_middle) + (bcf_previous_scale_bpfpsp_odd_middle_table))) /\ (forall bcf_index_bpfpsp_odd_middle_table_row_step. (exists bcf_lt_gap_bpfpsp_odd_middle_table_row_step_bound. bcf_lt_gap_bpfpsp_odd_middle_table_row_step_bound + S (bcf_index_bpfpsp_odd_middle_table_row_step) = S (S (n + n))) -> exists bcf_value_bpfpsp_odd_middle_table_row_step. ((((exists bcf_height_bpfpsp_odd_middle_table_row_step_entry. bcf_height_bpfpsp_odd_middle_table_row_step_entry + S (bcf_value_bpfpsp_odd_middle_table_row_step) = S ((S (bcf_index_bpfpsp_odd_middle_table_row_step)) * bcf_row_scale_bpfpsp_odd_middle_table)) /\ exists bcf_quotient_bpfpsp_odd_middle_table_row_step_entry. bcf_row_code_bpfpsp_odd_middle_table = bcf_quotient_bpfpsp_odd_middle_table_row_step_entry * S ((S (bcf_index_bpfpsp_odd_middle_table_row_step)) * bcf_row_scale_bpfpsp_odd_middle_table) + (bcf_value_bpfpsp_odd_middle_table_row_step))) /\ ((bcf_index_bpfpsp_odd_middle_table_row_step = 0 /\ bcf_value_bpfpsp_odd_middle_table_row_step = 1) \/ exists bcf_predecessor_bpfpsp_odd_middle_table_row_step bcf_left_bpfpsp_odd_middle_table_row_step bcf_right_bpfpsp_odd_middle_table_row_step. bcf_index_bpfpsp_odd_middle_table_row_step = S bcf_predecessor_bpfpsp_odd_middle_table_row_step /\ ((((exists bcf_height_bpfpsp_odd_middle_table_row_step_previous_left. bcf_height_bpfpsp_odd_middle_table_row_step_previous_left + S (bcf_left_bpfpsp_odd_middle_table_row_step) = S ((S (bcf_predecessor_bpfpsp_odd_middle_table_row_step)) * bcf_previous_scale_bpfpsp_odd_middle_table)) /\ exists bcf_quotient_bpfpsp_odd_middle_table_row_step_previous_left. bcf_previous_code_bpfpsp_odd_middle_table = bcf_quotient_bpfpsp_odd_middle_table_row_step_previous_left * S ((S (bcf_predecessor_bpfpsp_odd_middle_table_row_step)) * bcf_previous_scale_bpfpsp_odd_middle_table) + (bcf_left_bpfpsp_odd_middle_table_row_step))) /\ ((((exists bcf_height_bpfpsp_odd_middle_table_row_step_previous_right. bcf_height_bpfpsp_odd_middle_table_row_step_previous_right + S (bcf_right_bpfpsp_odd_middle_table_row_step) = S ((S (S (bcf_predecessor_bpfpsp_odd_middle_table_row_step))) * bcf_previous_scale_bpfpsp_odd_middle_table)) /\ exists bcf_quotient_bpfpsp_odd_middle_table_row_step_previous_right. bcf_previous_code_bpfpsp_odd_middle_table = bcf_quotient_bpfpsp_odd_middle_table_row_step_previous_right * S ((S (S (bcf_predecessor_bpfpsp_odd_middle_table_row_step))) * bcf_previous_scale_bpfpsp_odd_middle_table) + (bcf_right_bpfpsp_odd_middle_table_row_step))) /\ bcf_value_bpfpsp_odd_middle_table_row_step = bcf_left_bpfpsp_odd_middle_table_row_step + bcf_right_bpfpsp_odd_middle_table_row_step))))))))))) /\ ((((exists bcf_height_bpfpsp_odd_middle_decoded_row_code. bcf_height_bpfpsp_odd_middle_decoded_row_code + S (bcf_row_code_bpfpsp_odd_middle) = S ((S (S (n + n))) * bcf_row_code_scale_bpfpsp_odd_middle)) /\ exists bcf_quotient_bpfpsp_odd_middle_decoded_row_code. bcf_row_code_code_bpfpsp_odd_middle = bcf_quotient_bpfpsp_odd_middle_decoded_row_code * S ((S (S (n + n))) * bcf_row_code_scale_bpfpsp_odd_middle) + (bcf_row_code_bpfpsp_odd_middle))) /\ ((((exists bcf_height_bpfpsp_odd_middle_decoded_row_scale. bcf_height_bpfpsp_odd_middle_decoded_row_scale + S (bcf_row_scale_bpfpsp_odd_middle) = S ((S (S (n + n))) * bcf_row_scale_scale_bpfpsp_odd_middle)) /\ exists bcf_quotient_bpfpsp_odd_middle_decoded_row_scale. bcf_row_scale_code_bpfpsp_odd_middle = bcf_quotient_bpfpsp_odd_middle_decoded_row_scale * S ((S (S (n + n))) * bcf_row_scale_scale_bpfpsp_odd_middle) + (bcf_row_scale_bpfpsp_odd_middle))) /\ (((exists bcf_height_bpfpsp_odd_middle_decoded_value. bcf_height_bpfpsp_odd_middle_decoded_value + S (c) = S ((S (n)) * bcf_row_scale_bpfpsp_odd_middle)) /\ exists bcf_quotient_bpfpsp_odd_middle_decoded_value. bcf_row_code_bpfpsp_odd_middle = bcf_quotient_bpfpsp_odd_middle_decoded_value * S ((S (n)) * bcf_row_scale_bpfpsp_odd_middle) + (c))))))))) -> (exists bcf_le_gap_bpfpsp_odd_result. bcf_le_gap_bpfpsp_odd_result + (z) = c)) /\ (forall n c q. (((exists bcf_lt_gap_bpfpsp_odd_upper_middle_out_of_range. bcf_lt_gap_bpfpsp_odd_upper_middle_out_of_range + S (S (n + n)) = n) /\ c = 0) \/ ((exists bcf_le_gap_bpfpsp_odd_upper_middle_in_range. bcf_le_gap_bpfpsp_odd_upper_middle_in_range + (n) = S (n + n)) /\ (exists bcf_row_code_code_bpfpsp_odd_upper_middle bcf_row_code_scale_bpfpsp_odd_upper_middle bcf_row_scale_code_bpfpsp_odd_upper_middle bcf_row_scale_scale_bpfpsp_odd_upper_middle bcf_row_code_bpfpsp_odd_upper_middle bcf_row_scale_bpfpsp_odd_upper_middle. ((forall bcf_row_index_bpfpsp_odd_upper_middle_table. (exists bcf_lt_gap_bpfpsp_odd_upper_middle_table_row_bound. bcf_lt_gap_bpfpsp_odd_upper_middle_table_row_bound + S (bcf_row_index_bpfpsp_odd_upper_middle_table) = S (S (n + n))) -> exists bcf_row_code_bpfpsp_odd_upper_middle_table bcf_row_scale_bpfpsp_odd_upper_middle_table. ((((exists bcf_height_bpfpsp_odd_upper_middle_table_decoded_row_code. bcf_height_bpfpsp_odd_upper_middle_table_decoded_row_code + S (bcf_row_code_bpfpsp_odd_upper_middle_table) = S ((S (bcf_row_index_bpfpsp_odd_upper_middle_table)) * bcf_row_code_scale_bpfpsp_odd_upper_middle)) /\ exists bcf_quotient_bpfpsp_odd_upper_middle_table_decoded_row_code. bcf_row_code_code_bpfpsp_odd_upper_middle = bcf_quotient_bpfpsp_odd_upper_middle_table_decoded_row_code * S ((S (bcf_row_index_bpfpsp_odd_upper_middle_table)) * bcf_row_code_scale_bpfpsp_odd_upper_middle) + (bcf_row_code_bpfpsp_odd_upper_middle_table))) /\ ((((exists bcf_height_bpfpsp_odd_upper_middle_table_decoded_row_scale. bcf_height_bpfpsp_odd_upper_middle_table_decoded_row_scale + S (bcf_row_scale_bpfpsp_odd_upper_middle_table) = S ((S (bcf_row_index_bpfpsp_odd_upper_middle_table)) * bcf_row_scale_scale_bpfpsp_odd_upper_middle)) /\ exists bcf_quotient_bpfpsp_odd_upper_middle_table_decoded_row_scale. bcf_row_scale_code_bpfpsp_odd_upper_middle = bcf_quotient_bpfpsp_odd_upper_middle_table_decoded_row_scale * S ((S (bcf_row_index_bpfpsp_odd_upper_middle_table)) * bcf_row_scale_scale_bpfpsp_odd_upper_middle) + (bcf_row_scale_bpfpsp_odd_upper_middle_table))) /\ ((bcf_row_index_bpfpsp_odd_upper_middle_table = 0 /\ (forall bcf_index_bpfpsp_odd_upper_middle_table_zero_row. (exists bcf_lt_gap_bpfpsp_odd_upper_middle_table_zero_row_bound. bcf_lt_gap_bpfpsp_odd_upper_middle_table_zero_row_bound + S (bcf_index_bpfpsp_odd_upper_middle_table_zero_row) = S (S (n + n))) -> exists bcf_value_bpfpsp_odd_upper_middle_table_zero_row. ((((exists bcf_height_bpfpsp_odd_upper_middle_table_zero_row_entry. bcf_height_bpfpsp_odd_upper_middle_table_zero_row_entry + S (bcf_value_bpfpsp_odd_upper_middle_table_zero_row) = S ((S (bcf_index_bpfpsp_odd_upper_middle_table_zero_row)) * bcf_row_scale_bpfpsp_odd_upper_middle_table)) /\ exists bcf_quotient_bpfpsp_odd_upper_middle_table_zero_row_entry. bcf_row_code_bpfpsp_odd_upper_middle_table = bcf_quotient_bpfpsp_odd_upper_middle_table_zero_row_entry * S ((S (bcf_index_bpfpsp_odd_upper_middle_table_zero_row)) * bcf_row_scale_bpfpsp_odd_upper_middle_table) + (bcf_value_bpfpsp_odd_upper_middle_table_zero_row))) /\ ((bcf_index_bpfpsp_odd_upper_middle_table_zero_row = 0 /\ bcf_value_bpfpsp_odd_upper_middle_table_zero_row = 1) \/ exists bcf_predecessor_bpfpsp_odd_upper_middle_table_zero_row. bcf_index_bpfpsp_odd_upper_middle_table_zero_row = S bcf_predecessor_bpfpsp_odd_upper_middle_table_zero_row /\ bcf_value_bpfpsp_odd_upper_middle_table_zero_row = 0)))) \/ exists bcf_predecessor_bpfpsp_odd_upper_middle_table bcf_previous_code_bpfpsp_odd_upper_middle_table bcf_previous_scale_bpfpsp_odd_upper_middle_table. bcf_row_index_bpfpsp_odd_upper_middle_table = S bcf_predecessor_bpfpsp_odd_upper_middle_table /\ ((((exists bcf_height_bpfpsp_odd_upper_middle_table_decoded_previous_code. bcf_height_bpfpsp_odd_upper_middle_table_decoded_previous_code + S (bcf_previous_code_bpfpsp_odd_upper_middle_table) = S ((S (bcf_predecessor_bpfpsp_odd_upper_middle_table)) * bcf_row_code_scale_bpfpsp_odd_upper_middle)) /\ exists bcf_quotient_bpfpsp_odd_upper_middle_table_decoded_previous_code. bcf_row_code_code_bpfpsp_odd_upper_middle = bcf_quotient_bpfpsp_odd_upper_middle_table_decoded_previous_code * S ((S (bcf_predecessor_bpfpsp_odd_upper_middle_table)) * bcf_row_code_scale_bpfpsp_odd_upper_middle) + (bcf_previous_code_bpfpsp_odd_upper_middle_table))) /\ ((((exists bcf_height_bpfpsp_odd_upper_middle_table_decoded_previous_scale. bcf_height_bpfpsp_odd_upper_middle_table_decoded_previous_scale + S (bcf_previous_scale_bpfpsp_odd_upper_middle_table) = S ((S (bcf_predecessor_bpfpsp_odd_upper_middle_table)) * bcf_row_scale_scale_bpfpsp_odd_upper_middle)) /\ exists bcf_quotient_bpfpsp_odd_upper_middle_table_decoded_previous_scale. bcf_row_scale_code_bpfpsp_odd_upper_middle = bcf_quotient_bpfpsp_odd_upper_middle_table_decoded_previous_scale * S ((S (bcf_predecessor_bpfpsp_odd_upper_middle_table)) * bcf_row_scale_scale_bpfpsp_odd_upper_middle) + (bcf_previous_scale_bpfpsp_odd_upper_middle_table))) /\ (forall bcf_index_bpfpsp_odd_upper_middle_table_row_step. (exists bcf_lt_gap_bpfpsp_odd_upper_middle_table_row_step_bound. bcf_lt_gap_bpfpsp_odd_upper_middle_table_row_step_bound + S (bcf_index_bpfpsp_odd_upper_middle_table_row_step) = S (S (n + n))) -> exists bcf_value_bpfpsp_odd_upper_middle_table_row_step. ((((exists bcf_height_bpfpsp_odd_upper_middle_table_row_step_entry. bcf_height_bpfpsp_odd_upper_middle_table_row_step_entry + S (bcf_value_bpfpsp_odd_upper_middle_table_row_step) = S ((S (bcf_index_bpfpsp_odd_upper_middle_table_row_step)) * bcf_row_scale_bpfpsp_odd_upper_middle_table)) /\ exists bcf_quotient_bpfpsp_odd_upper_middle_table_row_step_entry. bcf_row_code_bpfpsp_odd_upper_middle_table = bcf_quotient_bpfpsp_odd_upper_middle_table_row_step_entry * S ((S (bcf_index_bpfpsp_odd_upper_middle_table_row_step)) * bcf_row_scale_bpfpsp_odd_upper_middle_table) + (bcf_value_bpfpsp_odd_upper_middle_table_row_step))) /\ ((bcf_index_bpfpsp_odd_upper_middle_table_row_step = 0 /\ bcf_value_bpfpsp_odd_upper_middle_table_row_step = 1) \/ exists bcf_predecessor_bpfpsp_odd_upper_middle_table_row_step bcf_left_bpfpsp_odd_upper_middle_table_row_step bcf_right_bpfpsp_odd_upper_middle_table_row_step. bcf_index_bpfpsp_odd_upper_middle_table_row_step = S bcf_predecessor_bpfpsp_odd_upper_middle_table_row_step /\ ((((exists bcf_height_bpfpsp_odd_upper_middle_table_row_step_previous_left. bcf_height_bpfpsp_odd_upper_middle_table_row_step_previous_left + S (bcf_left_bpfpsp_odd_upper_middle_table_row_step) = S ((S (bcf_predecessor_bpfpsp_odd_upper_middle_table_row_step)) * bcf_previous_scale_bpfpsp_odd_upper_middle_table)) /\ exists bcf_quotient_bpfpsp_odd_upper_middle_table_row_step_previous_left. bcf_previous_code_bpfpsp_odd_upper_middle_table = bcf_quotient_bpfpsp_odd_upper_middle_table_row_step_previous_left * S ((S (bcf_predecessor_bpfpsp_odd_upper_middle_table_row_step)) * bcf_previous_scale_bpfpsp_odd_upper_middle_table) + (bcf_left_bpfpsp_odd_upper_middle_table_row_step))) /\ ((((exists bcf_height_bpfpsp_odd_upper_middle_table_row_step_previous_right. bcf_height_bpfpsp_odd_upper_middle_table_row_step_previous_right + S (bcf_right_bpfpsp_odd_upper_middle_table_row_step) = S ((S (S (bcf_predecessor_bpfpsp_odd_upper_middle_table_row_step))) * bcf_previous_scale_bpfpsp_odd_upper_middle_table)) /\ exists bcf_quotient_bpfpsp_odd_upper_middle_table_row_step_previous_right. bcf_previous_code_bpfpsp_odd_upper_middle_table = bcf_quotient_bpfpsp_odd_upper_middle_table_row_step_previous_right * S ((S (S (bcf_predecessor_bpfpsp_odd_upper_middle_table_row_step))) * bcf_previous_scale_bpfpsp_odd_upper_middle_table) + (bcf_right_bpfpsp_odd_upper_middle_table_row_step))) /\ bcf_value_bpfpsp_odd_upper_middle_table_row_step = bcf_left_bpfpsp_odd_upper_middle_table_row_step + bcf_right_bpfpsp_odd_upper_middle_table_row_step))))))))))) /\ ((((exists bcf_height_bpfpsp_odd_upper_middle_decoded_row_code. bcf_height_bpfpsp_odd_upper_middle_decoded_row_code + S (bcf_row_code_bpfpsp_odd_upper_middle) = S ((S (S (n + n))) * bcf_row_code_scale_bpfpsp_odd_upper_middle)) /\ exists bcf_quotient_bpfpsp_odd_upper_middle_decoded_row_code. bcf_row_code_code_bpfpsp_odd_upper_middle = bcf_quotient_bpfpsp_odd_upper_middle_decoded_row_code * S ((S (S (n + n))) * bcf_row_code_scale_bpfpsp_odd_upper_middle) + (bcf_row_code_bpfpsp_odd_upper_middle))) /\ ((((exists bcf_height_bpfpsp_odd_upper_middle_decoded_row_scale. bcf_height_bpfpsp_odd_upper_middle_decoded_row_scale + S (bcf_row_scale_bpfpsp_odd_upper_middle) = S ((S (S (n + n))) * bcf_row_scale_scale_bpfpsp_odd_upper_middle)) /\ exists bcf_quotient_bpfpsp_odd_upper_middle_decoded_row_scale. bcf_row_scale_code_bpfpsp_odd_upper_middle = bcf_quotient_bpfpsp_odd_upper_middle_decoded_row_scale * S ((S (S (n + n))) * bcf_row_scale_scale_bpfpsp_odd_upper_middle) + (bcf_row_scale_bpfpsp_odd_upper_middle))) /\ (((exists bcf_height_bpfpsp_odd_upper_middle_decoded_value. bcf_height_bpfpsp_odd_upper_middle_decoded_value + S (c) = S ((S (n)) * bcf_row_scale_bpfpsp_odd_upper_middle)) /\ exists bcf_quotient_bpfpsp_odd_upper_middle_decoded_value. bcf_row_code_bpfpsp_odd_upper_middle = bcf_quotient_bpfpsp_odd_upper_middle_decoded_value * S ((S (n)) * bcf_row_scale_bpfpsp_odd_upper_middle) + (c))))))))) -> (exists pa_b_bpfpsp_odd_upper_power pa_c_bpfpsp_odd_upper_power. ((forall pa_i_bpfpsp_odd_upper_power_repeat. (exists pa_lt_bpfpsp_odd_upper_power_repeat_bound. pa_lt_bpfpsp_odd_upper_power_repeat_bound + S pa_i_bpfpsp_odd_upper_power_repeat = n) -> (((exists pa_h_bpfpsp_odd_upper_power_repeat_decoded. pa_h_bpfpsp_odd_upper_power_repeat_decoded + S (4) = S ((S (pa_i_bpfpsp_odd_upper_power_repeat)) * pa_c_bpfpsp_odd_upper_power)) /\ exists pa_q_bpfpsp_odd_upper_power_repeat_decoded. pa_b_bpfpsp_odd_upper_power = pa_q_bpfpsp_odd_upper_power_repeat_decoded * S ((S (pa_i_bpfpsp_odd_upper_power_repeat)) * pa_c_bpfpsp_odd_upper_power) + (4)))) /\ (exists pa_u_bpfpsp_odd_upper_power_product pa_v_bpfpsp_odd_upper_power_product. ((((exists pa_h_bpfpsp_odd_upper_power_product_start. pa_h_bpfpsp_odd_upper_power_product_start + S (1) = S ((S (0)) * pa_v_bpfpsp_odd_upper_power_product)) /\ exists pa_q_bpfpsp_odd_upper_power_product_start. pa_u_bpfpsp_odd_upper_power_product = pa_q_bpfpsp_odd_upper_power_product_start * S ((S (0)) * pa_v_bpfpsp_odd_upper_power_product) + (1))) /\ ((((exists pa_h_bpfpsp_odd_upper_power_product_terminal. pa_h_bpfpsp_odd_upper_power_product_terminal + S (q) = S ((S (n)) * pa_v_bpfpsp_odd_upper_power_product)) /\ exists pa_q_bpfpsp_odd_upper_power_product_terminal. pa_u_bpfpsp_odd_upper_power_product = pa_q_bpfpsp_odd_upper_power_product_terminal * S ((S (n)) * pa_v_bpfpsp_odd_upper_power_product) + (q))) /\ forall pa_i_bpfpsp_odd_upper_power_product. (exists pa_lt_bpfpsp_odd_upper_power_product_bound. pa_lt_bpfpsp_odd_upper_power_product_bound + S pa_i_bpfpsp_odd_upper_power_product = n) -> exists pa_p_bpfpsp_odd_upper_power_product pa_r_bpfpsp_odd_upper_power_product pa_s_bpfpsp_odd_upper_power_product. ((((exists pa_h_bpfpsp_odd_upper_power_product_factor. pa_h_bpfpsp_odd_upper_power_product_factor + S (pa_p_bpfpsp_odd_upper_power_product) = S ((S (pa_i_bpfpsp_odd_upper_power_product)) * pa_c_bpfpsp_odd_upper_power)) /\ exists pa_q_bpfpsp_odd_upper_power_product_factor. pa_b_bpfpsp_odd_upper_power = pa_q_bpfpsp_odd_upper_power_product_factor * S ((S (pa_i_bpfpsp_odd_upper_power_product)) * pa_c_bpfpsp_odd_upper_power) + (pa_p_bpfpsp_odd_upper_power_product))) /\ ((((exists pa_h_bpfpsp_odd_upper_power_product_partial. pa_h_bpfpsp_odd_upper_power_product_partial + S (pa_r_bpfpsp_odd_upper_power_product) = S ((S (pa_i_bpfpsp_odd_upper_power_product)) * pa_v_bpfpsp_odd_upper_power_product)) /\ exists pa_q_bpfpsp_odd_upper_power_product_partial. pa_u_bpfpsp_odd_upper_power_product = pa_q_bpfpsp_odd_upper_power_product_partial * S ((S (pa_i_bpfpsp_odd_upper_power_product)) * pa_v_bpfpsp_odd_upper_power_product) + (pa_r_bpfpsp_odd_upper_power_product))) /\ ((((exists pa_h_bpfpsp_odd_upper_power_product_successor. pa_h_bpfpsp_odd_upper_power_product_successor + S (pa_s_bpfpsp_odd_upper_power_product) = S ((S (S pa_i_bpfpsp_odd_upper_power_product)) * pa_v_bpfpsp_odd_upper_power_product)) /\ exists pa_q_bpfpsp_odd_upper_power_product_successor. pa_u_bpfpsp_odd_upper_power_product = pa_q_bpfpsp_odd_upper_power_product_successor * S ((S (S pa_i_bpfpsp_odd_upper_power_product)) * pa_v_bpfpsp_odd_upper_power_product) + (pa_s_bpfpsp_odd_upper_power_product))) /\ pa_s_bpfpsp_odd_upper_power_product = pa_r_bpfpsp_odd_upper_power_product * pa_p_bpfpsp_odd_upper_power_product)))))))) -> (exists bcf_le_gap_bpfpsp_odd_upper_result. bcf_le_gap_bpfpsp_odd_upper_result + (c) = q))))))) -> (forall N n z q. (exists bcf_le_gap_bplfpb_index. bcf_le_gap_bplfpb_index + (n) = N) -> (exists bpr_code_bplfpb_primorial bpr_scale_bplfpb_primorial. ((forall bpr_index_bplfpb_primorial_mask. (exists bpr_gap_bplfpb_primorial_mask_bound. bpr_gap_bplfpb_primorial_mask_bound + S (bpr_index_bplfpb_primorial_mask) = n) -> exists bpr_value_bplfpb_primorial_mask. ((((exists bpr_height_bplfpb_primorial_mask_decoded. bpr_height_bplfpb_primorial_mask_decoded + S (bpr_value_bplfpb_primorial_mask) = S ((S (bpr_index_bplfpb_primorial_mask)) * bpr_scale_bplfpb_primorial)) /\ exists bpr_quotient_bplfpb_primorial_mask_decoded. bpr_code_bplfpb_primorial = bpr_quotient_bplfpb_primorial_mask_decoded * S ((S (bpr_index_bplfpb_primorial_mask)) * bpr_scale_bplfpb_primorial) + (bpr_value_bplfpb_primorial_mask))) /\ (((((~(S (bpr_index_bplfpb_primorial_mask) = 1) /\ forall bpr_left_bplfpb_primorial_mask_choice_prime bpr_right_bplfpb_primorial_mask_choice_prime. S (bpr_index_bplfpb_primorial_mask) = bpr_left_bplfpb_primorial_mask_choice_prime * bpr_right_bplfpb_primorial_mask_choice_prime -> bpr_left_bplfpb_primorial_mask_choice_prime = 1 \/ bpr_right_bplfpb_primorial_mask_choice_prime = 1)) /\ bpr_value_bplfpb_primorial_mask = S (bpr_index_bplfpb_primorial_mask)) \/ (~((~(S (bpr_index_bplfpb_primorial_mask) = 1) /\ forall bpr_left_bplfpb_primorial_mask_choice_prime bpr_right_bplfpb_primorial_mask_choice_prime. S (bpr_index_bplfpb_primorial_mask) = bpr_left_bplfpb_primorial_mask_choice_prime * bpr_right_bplfpb_primorial_mask_choice_prime -> bpr_left_bplfpb_primorial_mask_choice_prime = 1 \/ bpr_right_bplfpb_primorial_mask_choice_prime = 1)) /\ bpr_value_bplfpb_primorial_mask = 1))))) /\ (exists ff_u_bplfpb_primorial_product ff_v_bplfpb_primorial_product. ((((exists ff_h_bplfpb_primorial_product_start. ff_h_bplfpb_primorial_product_start + S (1) = S ((S (0)) * ff_v_bplfpb_primorial_product)) /\ exists ff_q_bplfpb_primorial_product_start. ff_u_bplfpb_primorial_product = ff_q_bplfpb_primorial_product_start * S ((S (0)) * ff_v_bplfpb_primorial_product) + (1))) /\ ((((exists ff_h_bplfpb_primorial_product_terminal. ff_h_bplfpb_primorial_product_terminal + S (z) = S ((S (n)) * ff_v_bplfpb_primorial_product)) /\ exists ff_q_bplfpb_primorial_product_terminal. ff_u_bplfpb_primorial_product = ff_q_bplfpb_primorial_product_terminal * S ((S (n)) * ff_v_bplfpb_primorial_product) + (z))) /\ forall ff_i_bplfpb_primorial_product. (exists ff_lt_bplfpb_primorial_product_bound. ff_lt_bplfpb_primorial_product_bound + S ff_i_bplfpb_primorial_product = n) -> exists ff_p_bplfpb_primorial_product ff_r_bplfpb_primorial_product ff_s_bplfpb_primorial_product. ((((exists ff_h_bplfpb_primorial_product_factor. ff_h_bplfpb_primorial_product_factor + S (ff_p_bplfpb_primorial_product) = S ((S (ff_i_bplfpb_primorial_product)) * bpr_scale_bplfpb_primorial)) /\ exists ff_q_bplfpb_primorial_product_factor. bpr_code_bplfpb_primorial = ff_q_bplfpb_primorial_product_factor * S ((S (ff_i_bplfpb_primorial_product)) * bpr_scale_bplfpb_primorial) + (ff_p_bplfpb_primorial_product))) /\ ((((exists ff_h_bplfpb_primorial_product_partial. ff_h_bplfpb_primorial_product_partial + S (ff_r_bplfpb_primorial_product) = S ((S (ff_i_bplfpb_primorial_product)) * ff_v_bplfpb_primorial_product)) /\ exists ff_q_bplfpb_primorial_product_partial. ff_u_bplfpb_primorial_product = ff_q_bplfpb_primorial_product_partial * S ((S (ff_i_bplfpb_primorial_product)) * ff_v_bplfpb_primorial_product) + (ff_r_bplfpb_primorial_product))) /\ ((((exists ff_h_bplfpb_primorial_product_successor. ff_h_bplfpb_primorial_product_successor + S (ff_s_bplfpb_primorial_product) = S ((S (S ff_i_bplfpb_primorial_product)) * ff_v_bplfpb_primorial_product)) /\ exists ff_q_bplfpb_primorial_product_successor. ff_u_bplfpb_primorial_product = ff_q_bplfpb_primorial_product_successor * S ((S (S ff_i_bplfpb_primorial_product)) * ff_v_bplfpb_primorial_product) + (ff_s_bplfpb_primorial_product))) /\ ff_s_bplfpb_primorial_product = ff_r_bplfpb_primorial_product * ff_p_bplfpb_primorial_product)))))))) -> (exists pa_b_bplfpb_power pa_c_bplfpb_power. ((forall pa_i_bplfpb_power_repeat. (exists pa_lt_bplfpb_power_repeat_bound. pa_lt_bplfpb_power_repeat_bound + S pa_i_bplfpb_power_repeat = n) -> (((exists pa_h_bplfpb_power_repeat_decoded. pa_h_bplfpb_power_repeat_decoded + S (4) = S ((S (pa_i_bplfpb_power_repeat)) * pa_c_bplfpb_power)) /\ exists pa_q_bplfpb_power_repeat_decoded. pa_b_bplfpb_power = pa_q_bplfpb_power_repeat_decoded * S ((S (pa_i_bplfpb_power_repeat)) * pa_c_bplfpb_power) + (4)))) /\ (exists pa_u_bplfpb_power_product pa_v_bplfpb_power_product. ((((exists pa_h_bplfpb_power_product_start. pa_h_bplfpb_power_product_start + S (1) = S ((S (0)) * pa_v_bplfpb_power_product)) /\ exists pa_q_bplfpb_power_product_start. pa_u_bplfpb_power_product = pa_q_bplfpb_power_product_start * S ((S (0)) * pa_v_bplfpb_power_product) + (1))) /\ ((((exists pa_h_bplfpb_power_product_terminal. pa_h_bplfpb_power_product_terminal + S (q) = S ((S (n)) * pa_v_bplfpb_power_product)) /\ exists pa_q_bplfpb_power_product_terminal. pa_u_bplfpb_power_product = pa_q_bplfpb_power_product_terminal * S ((S (n)) * pa_v_bplfpb_power_product) + (q))) /\ forall pa_i_bplfpb_power_product. (exists pa_lt_bplfpb_power_product_bound. pa_lt_bplfpb_power_product_bound + S pa_i_bplfpb_power_product = n) -> exists pa_p_bplfpb_power_product pa_r_bplfpb_power_product pa_s_bplfpb_power_product. ((((exists pa_h_bplfpb_power_product_factor. pa_h_bplfpb_power_product_factor + S (pa_p_bplfpb_power_product) = S ((S (pa_i_bplfpb_power_product)) * pa_c_bplfpb_power)) /\ exists pa_q_bplfpb_power_product_factor. pa_b_bplfpb_power = pa_q_bplfpb_power_product_factor * S ((S (pa_i_bplfpb_power_product)) * pa_c_bplfpb_power) + (pa_p_bplfpb_power_product))) /\ ((((exists pa_h_bplfpb_power_product_partial. pa_h_bplfpb_power_product_partial + S (pa_r_bplfpb_power_product) = S ((S (pa_i_bplfpb_power_product)) * pa_v_bplfpb_power_product)) /\ exists pa_q_bplfpb_power_product_partial. pa_u_bplfpb_power_product = pa_q_bplfpb_power_product_partial * S ((S (pa_i_bplfpb_power_product)) * pa_v_bplfpb_power_product) + (pa_r_bplfpb_power_product))) /\ ((((exists pa_h_bplfpb_power_product_successor. pa_h_bplfpb_power_product_successor + S (pa_s_bplfpb_power_product) = S ((S (S pa_i_bplfpb_power_product)) * pa_v_bplfpb_power_product)) /\ exists pa_q_bplfpb_power_product_successor. pa_u_bplfpb_power_product = pa_q_bplfpb_power_product_successor * S ((S (S pa_i_bplfpb_power_product)) * pa_v_bplfpb_power_product) + (pa_s_bplfpb_power_product))) /\ pa_s_bplfpb_power_product = pa_r_bplfpb_power_product * pa_p_bplfpb_power_product)))))))) -> (exists bcf_le_gap_bplfpb_result. bcf_le_gap_bplfpb_result + (z) = q))

Proof neighborhood

Direct theorem prerequisites

Direct 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

303 script commands · 67 reading checkpoints · 42 local claims

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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (20)
01Fix variables and assumptionsL1–1

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro hpackage
02Separate the logical casesL2–6

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L2
    cases hpackage
  2. L3
    cases hpackage_right
  3. L4
    cases hpackage_right_right
  4. L5
    cases hpackage_right_right_right
  5. L6
    cases hpackage_right_right_right_right
03Induction on NL7–13

Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.

  1. L7
    induction N
  2. L8
    intro n
  3. L9
    intro z
  4. L10
    intro q
  5. L11
    intro hbound
  6. L12
    intro hprimorial
  7. L13
    intro hpower
04Establish hnL14–16

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le zero.

  1. L14
    have hn : n = 0
  2. L15
    apply le_zero
  3. L16
    exact hbound
05Establish hzero_primorialL17–23

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply primorial index eq transport.

  1. L17
    have hzero_primorial : Primorial(0,z)Definitions: Primorial(0,z)Original native command in the exact edition
  2. L18
    specialize primorial_index_eq_transport n
  3. L19
    specialize primorial_index_eq_transport 0
  4. L20
    specialize primorial_index_eq_transport z
  5. L21
    apply primorial_index_eq_transport
  6. L22
    exact hn
  7. L23
    exact hprimorial
06Establish hzL24–26

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply primorial zero.

  1. L24
    have hz : z = 1
  2. L25
    apply primorial_zero
  3. L26
    exact hzero_primorial
07Establish hqL27–36

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow zero.

  1. L27
    have hq : q = 1
  2. L28
    specialize pow_zero 4
  3. L29
    specialize pow_zero n
  4. L30
    specialize pow_zero q
  5. L31
    apply pow_zero
  6. L32
    exact hn
  7. L33
    exact hpower
  8. L34
    rewrite hz
  9. L35
    rewrite hq
  10. L36
    specialize le_refl 1
08Use earlier factsL37–37

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L37
    exact le_refl
09Fix variables and assumptionsL38–43

Work with arbitrary variables or the premises of the current implication.

  1. L38
    intro n
  2. L39
    intro z
  3. L40
    intro q
  4. L41
    intro hbound
  5. L42
    intro hprimorial
  6. L43
    intro hpower
10Establish hboundaryL44–48

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le eq or lt.

  1. L44
    have hboundary : n = S N ∨ Lt(n,S N)Definitions: Lt(n,S N)Original native command in the exact edition
  2. L45
    specialize le_eq_or_lt n
  3. L46
    specialize le_eq_or_lt (S N)
  4. L47
    apply le_eq_or_lt
  5. L48
    exact hbound
11Separate the logical casesL49–49

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L49
    cases hboundary
12Establish hparityL50–52

Establish this local claim before using it. It is not an additional assumption.

  1. L50
    have hparity : exists k. n = 2 * k \/ n = 2 * k + 1
  2. L51
    specialize parity_cases n
  3. L52
    exact parity_cases
13Separate the logical casesL53–54

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L53
    cases hparity
  2. L54
    cases hparity_witness
14Establish hdoubleL55–59

Establish this local claim before using it. It is not an additional assumption.

  1. L55
    have hdouble : S N = 2 * x
  2. L56
    trans n
  3. L57
    symm
  4. L58
    exact hboundary_left
  5. L59
    exact hparity_witness_left
15Establish hhalf_dataL60–62

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply double half predecessor data.

  1. L60
    have hhalf_data : ¬x = 0 ∧ Le(x,N)Definitions: Le(x,N)Original native command in the exact edition
  2. L61
    apply double_half_predecessor_data
  3. L62
    exact hdouble
16Separate the logical casesL63–63

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L63
    cases hhalf_data
17Establish hsumL64–68

Establish this local claim before using it. It is not an additional assumption.

  1. L64
    have hsum : n = x + x
  2. L65
    trans 2 * x
  3. L66
    exact hparity_witness_left
  4. L67
    specialize two_mul_eq_add_self x
  5. L68
    exact two_mul_eq_add_self
18Establish heven_primorialL69–75

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply primorial index eq transport.

  1. L69
    have heven_primorial : Primorial(x + x,z)Definitions: Primorial(x + x,z)Original native command in the exact edition
  2. L70
    specialize primorial_index_eq_transport n
  3. L71
    specialize primorial_index_eq_transport (x + x)
  4. L72
    specialize primorial_index_eq_transport z
  5. L73
    apply primorial_index_eq_transport
  6. L74
    exact hsum
  7. L75
    exact hprimorial
19Establish hsplitL76–81

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hpackage right right left.

  1. L76
    have hsplit : ∃ a. ∃ b. Primorial(x,a) ∧ ((∃ y. ∃ n. (∀ m. Lt(m,x) → ∃ k. BetaAt(y,n,m,k) ∧ (Prime(S (x + m)) ∧ k = S (x + m) ∨ ¬Prime(S (x + m)) ∧ k = 1)) ∧ Product(y,n,x,b)) ∧ z = a · b)Definitions: Primorial(x,a)Lt(m,x)BetaAt(y,n,m,k)Prime(S (x + m))Product(y,n,x,b)Original native command in the exact edition
  2. L77
    specialize hpackage_right_right_left x
  3. L78
    specialize hpackage_right_right_left x
  4. L79
    specialize hpackage_right_right_left z
  5. L80
    apply hpackage_right_right_left
  6. L81
    exact heven_primorial
20Separate the logical casesL82–85

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L82
    cases hsplit
  2. L83
    cases hsplit_witness
  3. L84
    cases hsplit_witness_witness
  4. L85
    cases hsplit_witness_witness_right
21Establish hhalf_powerL86–89

Establish this local claim before using it. It is not an additional assumption.

  1. L86
    have hhalf_power : ∃ r. Pow(4,x,r)Definitions: Pow(4,x,r)Original native command in the exact edition
  2. L87
    specialize pow_exists 4
  3. L88
    specialize pow_exists x
  4. L89
    exact pow_exists
22Separate the logical casesL90–90

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L90
    cases hhalf_power
23Establish hcentralL91–93

Establish this local claim before using it. It is not an additional assumption.

  1. L91
    have hcentral : ∃ c. CentralBinom(x,c)Definitions: CentralBinom(x,c)Original native command in the exact edition
  2. L92
    specialize hpackage_left x
  3. L93
    exact hpackage_left
24Separate the logical casesL94–94

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L94
    cases hcentral
25Establish hprefix_boundL95–102

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.

  1. L95
    have hprefix_bound : Le(x1,x3)Definitions: Le(x1,x3)Original native command in the exact edition
  2. L96
    specialize IH x
  3. L97
    specialize IH x1
  4. L98
    specialize IH x3
  5. L99
    apply IH
  6. L100
    exact hhalf_data_right
  7. L101
    exact hsplit_witness_witness_left
  8. L102
    exact hhalf_power_witness
26Establish hinterval_boundL103–109

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hpackage right right right left.

  1. L103
    have hinterval_bound : Le(x2,x4)Definitions: Le(x2,x4)Original native command in the exact edition
  2. L104
    specialize hpackage_right_right_right_left x
  3. L105
    specialize hpackage_right_right_right_left x2
  4. L106
    specialize hpackage_right_right_right_left x4
  5. L107
    apply hpackage_right_right_right_left
  6. L108
    exact hsplit_witness_witness_right_left
  7. L109
    exact hcentral_witness
27Establish hstrongL110–117

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply central binom nonzero strong upper.

  1. L110
    have hstrong : Le(2 · x4,x3)Definitions: Le(2 · x4,x3)Original native command in the exact edition
  2. L111
    specialize central_binom_nonzero_strong_upper x
  3. L112
    specialize central_binom_nonzero_strong_upper x4
  4. L113
    specialize central_binom_nonzero_strong_upper x3
  5. L114
    apply central_binom_nonzero_strong_upper
  6. L115
    exact hhalf_data_left
  7. L116
    exact hcentral_witness
  8. L117
    exact hhalf_power_witness
28Establish hcentral_doubleL118–118

Establish this local claim before using it. It is not an additional assumption.

  1. L118
    have hcentral_double : Le(x4,2 · x4)Definitions: Le(x4,2 · x4)Original native command in the exact edition
29Establish hcentral_addL119–125

Establish this local claim before using it. It is not an additional assumption.

  1. L119
    have hcentral_add : Le(x4,x4 + x4)Definitions: Le(x4,x4 + x4)Original native command in the exact edition
  2. L120
    specialize le_add_right x4
  3. L121
    specialize le_add_right x4
  4. L122
    exact le_add_right
  5. L123
    specialize two_mul_eq_add_self x4
  6. L124
    rewrite two_mul_eq_add_self
  7. L125
    exact hcentral_add
30Establish hcentral_boundL126–132

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.

  1. L126
    have hcentral_bound : Le(x4,x3)Definitions: Le(x4,x3)Original native command in the exact edition
  2. L127
    specialize le_trans x4
  3. L128
    specialize le_trans (2 * x4)
  4. L129
    specialize le_trans x3
  5. L130
    apply le_trans
  6. L131
    exact hcentral_double
  7. L132
    exact hstrong
31Establish hinterval_power_boundL133–139

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.

  1. L133
    have hinterval_power_bound : Le(x2,x3)Definitions: Le(x2,x3)Original native command in the exact edition
  2. L134
    specialize le_trans x2
  3. L135
    specialize le_trans x4
  4. L136
    specialize le_trans x3
  5. L137
    apply le_trans
  6. L138
    exact hinterval_bound
  7. L139
    exact hcentral_bound
32Establish hproduct_boundL140–147

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul.

  1. L140
    have hproduct_bound : Le(x1 · x2,x3 · x3)Definitions: Le(x1 · x2,x3 · x3)Original native command in the exact edition
  2. L141
    specialize mul_le_mul x1
  3. L142
    specialize mul_le_mul x3
  4. L143
    specialize mul_le_mul x2
  5. L144
    specialize mul_le_mul x3
  6. L145
    apply mul_le_mul
  7. L146
    exact hprefix_bound
  8. L147
    exact hinterval_power_bound
33Establish hpower_productL148–157

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow add.

  1. L148
    have hpower_product : q = x3 * x3
  2. L149
    specialize pow_add 4
  3. L150
    specialize pow_add x
  4. L151
    specialize pow_add x
  5. L152
    specialize pow_add n
  6. L153
    specialize pow_add x3
  7. L154
    specialize pow_add x3
  8. L155
    specialize pow_add q
  9. L156
    apply pow_add
  10. L157
    exact hsum
34Use earlier factsL158–160

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L158
    exact hhalf_power_witness
  2. L159
    exact hhalf_power_witness
  3. L160
    exact hpower
35Calculate and transport equalitiesL161–162

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L161
    rewrite hsplit_witness_witness_right_right
  2. L162
    rewrite hpower_product
36Use earlier factsL163–163

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L163
    exact hproduct_bound
37Establish hxcaseL164–166

Establish this local claim before using it. It is not an additional assumption.

  1. L164
    have hxcase : x = 0 \/ exists h. x = S h
  2. L165
    specialize zero_or_succ x
  3. L166
    exact zero_or_succ
38Separate the logical casesL167–167

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L167
    cases hxcase
39Establish honeL168–172

Establish this local claim before using it. It is not an additional assumption.

  1. L168
    have hone : n = 1
  2. L169
    trans 2 * x + 1
  3. L170
    exact hparity_witness_right
  4. L171
    rewrite hxcase_left
  5. L172
    norm_num
40Establish hone_primorialL173–179

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply primorial index eq transport.

  1. L173
    have hone_primorial : Primorial(1,z)Definitions: Primorial(1,z)Original native command in the exact edition
  2. L174
    specialize primorial_index_eq_transport n
  3. L175
    specialize primorial_index_eq_transport 1
  4. L176
    specialize primorial_index_eq_transport z
  5. L177
    apply primorial_index_eq_transport
  6. L178
    exact hone
  7. L179
    exact hprimorial
41Establish hzL180–182

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply primorial one.

  1. L180
    have hz : z = 1
  2. L181
    apply primorial_one
  3. L182
    exact hone_primorial
42Establish hqL183–191

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow one.

  1. L183
    have hq : q = 4
  2. L184
    specialize pow_one 4
  3. L185
    specialize pow_one n
  4. L186
    specialize pow_one q
  5. L187
    apply pow_one
  6. L188
    exact hone
  7. L189
    exact hpower
  8. L190
    rewrite hz
  9. L191
    rewrite hq
43Construct an explicit witnessL192–192

Supply the displayed value, then prove that it has the required property.

  1. L192
    exists 3
44Calculate and transport equalitiesL193–193

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L193
    norm_num
45Establish hoddL194–198

Establish this local claim before using it. It is not an additional assumption.

  1. L194
    have hodd : S N = 2 * x + 1
  2. L195
    trans n
  3. L196
    symm
  4. L197
    exact hboundary_left
  5. L198
    exact hparity_witness_right
46Establish hprefix_index_boundL199–202

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply odd positive prefix predecessor bound.

  1. L199
    have hprefix_index_bound : Lt(x,N)Definitions: Lt(x,N)Original native command in the exact edition
  2. L200
    apply odd_positive_prefix_predecessor_bound
  3. L201
    exact hodd
  4. L202
    exact hxcase_right
47Establish hsumL203–206

Establish this local claim before using it. It is not an additional assumption.

  1. L203
    have hsum : n = S x + x
  2. L204
    trans 2 * x + 1
  3. L205
    exact hparity_witness_right
  4. L206
    simp [two_mul_eq_add_self, add_succ_left]
48Establish hodd_primorialL207–213

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply primorial index eq transport.

  1. L207
    have hodd_primorial : Primorial(S x + x,z)Definitions: Primorial(S x + x,z)Original native command in the exact edition
  2. L208
    specialize primorial_index_eq_transport n
  3. L209
    specialize primorial_index_eq_transport (S x + x)
  4. L210
    specialize primorial_index_eq_transport z
  5. L211
    apply primorial_index_eq_transport
  6. L212
    exact hsum
  7. L213
    exact hprimorial
49Establish hsplitL214–219

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hpackage right right left.

  1. L214
    have hsplit : ∃ a. ∃ b. Primorial(S x,a) ∧ ((∃ y. ∃ n. (∀ m. Lt(m,x) → ∃ k. BetaAt(y,n,m,k) ∧ (Prime(S (S x + m)) ∧ k = S (S x + m) ∨ ¬Prime(S (S x + m)) ∧ k = 1)) ∧ Product(y,n,x,b)) ∧ z = a · b)Definitions: Primorial(S x,a)Lt(m,x)BetaAt(y,n,m,k)Prime(S (S x + m))Product(y,n,x,b)Original native command in the exact edition
  2. L215
    specialize hpackage_right_right_left (S x)
  3. L216
    specialize hpackage_right_right_left x
  4. L217
    specialize hpackage_right_right_left z
  5. L218
    apply hpackage_right_right_left
  6. L219
    exact hodd_primorial
50Separate the logical casesL220–223

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L220
    cases hsplit
  2. L221
    cases hsplit_witness
  3. L222
    cases hsplit_witness_witness
  4. L223
    cases hsplit_witness_witness_right
51Establish hprefix_powerL224–227

Establish this local claim before using it. It is not an additional assumption.

  1. L224
    have hprefix_power : ∃ r. Pow(4,S x,r)Definitions: Pow(4,S x,r)Original native command in the exact edition
  2. L225
    specialize pow_exists 4
  3. L226
    specialize pow_exists (S x)
  4. L227
    exact pow_exists
52Separate the logical casesL228–228

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L228
    cases hprefix_power
53Establish hhalf_powerL229–232

Establish this local claim before using it. It is not an additional assumption.

  1. L229
    have hhalf_power : ∃ s. Pow(4,x,s)Definitions: Pow(4,x,s)Original native command in the exact edition
  2. L230
    specialize pow_exists 4
  3. L231
    specialize pow_exists x
  4. L232
    exact pow_exists
54Separate the logical casesL233–233

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L233
    cases hhalf_power
55Establish hprefix_boundL234–241

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.

  1. L234
    have hprefix_bound : Le(x1,x3)Definitions: Le(x1,x3)Original native command in the exact edition
  2. L235
    specialize IH (S x)
  3. L236
    specialize IH x1
  4. L237
    specialize IH x3
  5. L238
    apply IH
  6. L239
    exact hprefix_index_bound
  7. L240
    exact hsplit_witness_witness_left
  8. L241
    exact hprefix_power_witness
56Establish hmiddleL242–245

Establish this local claim before using it. It is not an additional assumption.

  1. L242
    have hmiddle : ∃ c. Choose(S (x + x),x,c)Definitions: Choose(S (x + x),x,c)Original native command in the exact edition
  2. L243
    specialize hpackage_right_left (S (x + x))
  3. L244
    specialize hpackage_right_left x
  4. L245
    exact hpackage_right_left
57Separate the logical casesL246–246

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L246
    cases hmiddle
58Establish hinterval_boundL247–253

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hpackage right right right right left.

  1. L247
    have hinterval_bound : Le(x2,x5)Definitions: Le(x2,x5)Original native command in the exact edition
  2. L248
    specialize hpackage_right_right_right_right_left x
  3. L249
    specialize hpackage_right_right_right_right_left x2
  4. L250
    specialize hpackage_right_right_right_right_left x5
  5. L251
    apply hpackage_right_right_right_right_left
  6. L252
    exact hsplit_witness_witness_right_left
  7. L253
    exact hmiddle_witness
59Establish hmiddle_boundL254–260

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hpackage right right right right right.

  1. L254
    have hmiddle_bound : Le(x5,x4)Definitions: Le(x5,x4)Original native command in the exact edition
  2. L255
    specialize hpackage_right_right_right_right_right x
  3. L256
    specialize hpackage_right_right_right_right_right x5
  4. L257
    specialize hpackage_right_right_right_right_right x4
  5. L258
    apply hpackage_right_right_right_right_right
  6. L259
    exact hmiddle_witness
  7. L260
    exact hhalf_power_witness
60Establish hinterval_power_boundL261–267

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.

  1. L261
    have hinterval_power_bound : Le(x2,x4)Definitions: Le(x2,x4)Original native command in the exact edition
  2. L262
    specialize le_trans x2
  3. L263
    specialize le_trans x5
  4. L264
    specialize le_trans x4
  5. L265
    apply le_trans
  6. L266
    exact hinterval_bound
  7. L267
    exact hmiddle_bound
61Establish hproduct_boundL268–275

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul.

  1. L268
    have hproduct_bound : Le(x1 · x2,x3 · x4)Definitions: Le(x1 · x2,x3 · x4)Original native command in the exact edition
  2. L269
    specialize mul_le_mul x1
  3. L270
    specialize mul_le_mul x3
  4. L271
    specialize mul_le_mul x2
  5. L272
    specialize mul_le_mul x4
  6. L273
    apply mul_le_mul
  7. L274
    exact hprefix_bound
  8. L275
    exact hinterval_power_bound
62Establish hpower_productL276–285

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow add.

  1. L276
    have hpower_product : q = x3 * x4
  2. L277
    specialize pow_add 4
  3. L278
    specialize pow_add (S x)
  4. L279
    specialize pow_add x
  5. L280
    specialize pow_add n
  6. L281
    specialize pow_add x3
  7. L282
    specialize pow_add x4
  8. L283
    specialize pow_add q
  9. L284
    apply pow_add
  10. L285
    exact hsum
63Use earlier factsL286–288

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L286
    exact hprefix_power_witness
  2. L287
    exact hhalf_power_witness
  3. L288
    exact hpower
64Calculate and transport equalitiesL289–290

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L289
    rewrite hsplit_witness_witness_right_right
  2. L290
    rewrite hpower_product
65Use earlier factsL291–291

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L291
    exact hproduct_bound
66Establish hpredecessor_boundL292–301

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le of succ le succ.

  1. L292
    have hpredecessor_bound : Le(n,N)Definitions: Le(n,N)Original native command in the exact edition
  2. L293
    specialize le_of_succ_le_succ n
  3. L294
    specialize le_of_succ_le_succ N
  4. L295
    apply le_of_succ_le_succ
  5. L296
    exact hboundary_right
  6. L297
    specialize IH n
  7. L298
    specialize IH z
  8. L299
    specialize IH q
  9. L300
    apply IH
  10. L301
    exact hpredecessor_bound
67Use earlier factsL302–303

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L302
    exact hprimorial
  2. L303
    exact hpower

Library-wide reading audit

Original defined command ledger · 303 lines
  1. 0001intro hpackage
  2. 0002cases hpackage
  3. 0003cases hpackage_right
  4. 0004cases hpackage_right_right
  5. 0005cases hpackage_right_right_right
  6. 0006cases hpackage_right_right_right_right
  7. 0007induction N
  8. 0008intro n
  9. 0009intro z
  10. 0010intro q
  11. 0011intro hbound
  12. 0012intro hprimorial
  13. 0013intro hpower
  14. 0014have hn : n = 0
  15. 0015apply le_zero
  16. 0016exact hbound
  17. 0017have hzero_primorial : Primorial(0,z)
    Exact native replay linehave hzero_primorial : exists bpr_code_bplfpb_zero_primorial bpr_scale_bplfpb_zero_primorial. ((forall bpr_index_bplfpb_zero_primorial_mask. (exists bpr_gap_bplfpb_zero_primorial_mask_bound. bpr_gap_bplfpb_zero_primorial_mask_bound + S (bpr_index_bplfpb_zero_primorial_mask) = 0) -> exists bpr_value_bplfpb_zero_primorial_mask. ((((exists bpr_height_bplfpb_zero_primorial_mask_decoded. bpr_height_bplfpb_zero_primorial_mask_decoded + S (bpr_value_bplfpb_zero_primorial_mask) = S ((S (bpr_index_bplfpb_zero_primorial_mask)) * bpr_scale_bplfpb_zero_primorial)) /\ exists bpr_quotient_bplfpb_zero_primorial_mask_decoded. bpr_code_bplfpb_zero_primorial = bpr_quotient_bplfpb_zero_primorial_mask_decoded * S ((S (bpr_index_bplfpb_zero_primorial_mask)) * bpr_scale_bplfpb_zero_primorial) + (bpr_value_bplfpb_zero_primorial_mask))) /\ (((((~(S (bpr_index_bplfpb_zero_primorial_mask) = 1) /\ forall bpr_left_bplfpb_zero_primorial_mask_choice_prime bpr_right_bplfpb_zero_primorial_mask_choice_prime. S (bpr_index_bplfpb_zero_primorial_mask) = bpr_left_bplfpb_zero_primorial_mask_choice_prime * bpr_right_bplfpb_zero_primorial_mask_choice_prime -> bpr_left_bplfpb_zero_primorial_mask_choice_prime = 1 \/ bpr_right_bplfpb_zero_primorial_mask_choice_prime = 1)) /\ bpr_value_bplfpb_zero_primorial_mask = S (bpr_index_bplfpb_zero_primorial_mask)) \/ (~((~(S (bpr_index_bplfpb_zero_primorial_mask) = 1) /\ forall bpr_left_bplfpb_zero_primorial_mask_choice_prime bpr_right_bplfpb_zero_primorial_mask_choice_prime. S (bpr_index_bplfpb_zero_primorial_mask) = bpr_left_bplfpb_zero_primorial_mask_choice_prime * bpr_right_bplfpb_zero_primorial_mask_choice_prime -> bpr_left_bplfpb_zero_primorial_mask_choice_prime = 1 \/ bpr_right_bplfpb_zero_primorial_mask_choice_prime = 1)) /\ bpr_value_bplfpb_zero_primorial_mask = 1))))) /\ (exists ff_u_bplfpb_zero_primorial_product ff_v_bplfpb_zero_primorial_product. ((((exists ff_h_bplfpb_zero_primorial_product_start. ff_h_bplfpb_zero_primorial_product_start + S (1) = S ((S (0)) * ff_v_bplfpb_zero_primorial_product)) /\ exists ff_q_bplfpb_zero_primorial_product_start. ff_u_bplfpb_zero_primorial_product = ff_q_bplfpb_zero_primorial_product_start * S ((S (0)) * ff_v_bplfpb_zero_primorial_product) + (1))) /\ ((((exists ff_h_bplfpb_zero_primorial_product_terminal. ff_h_bplfpb_zero_primorial_product_terminal + S (z) = S ((S (0)) * ff_v_bplfpb_zero_primorial_product)) /\ exists ff_q_bplfpb_zero_primorial_product_terminal. ff_u_bplfpb_zero_primorial_product = ff_q_bplfpb_zero_primorial_product_terminal * S ((S (0)) * ff_v_bplfpb_zero_primorial_product) + (z))) /\ forall ff_i_bplfpb_zero_primorial_product. (exists ff_lt_bplfpb_zero_primorial_product_bound. ff_lt_bplfpb_zero_primorial_product_bound + S ff_i_bplfpb_zero_primorial_product = 0) -> exists ff_p_bplfpb_zero_primorial_product ff_r_bplfpb_zero_primorial_product ff_s_bplfpb_zero_primorial_product. ((((exists ff_h_bplfpb_zero_primorial_product_factor. ff_h_bplfpb_zero_primorial_product_factor + S (ff_p_bplfpb_zero_primorial_product) = S ((S (ff_i_bplfpb_zero_primorial_product)) * bpr_scale_bplfpb_zero_primorial)) /\ exists ff_q_bplfpb_zero_primorial_product_factor. bpr_code_bplfpb_zero_primorial = ff_q_bplfpb_zero_primorial_product_factor * S ((S (ff_i_bplfpb_zero_primorial_product)) * bpr_scale_bplfpb_zero_primorial) + (ff_p_bplfpb_zero_primorial_product))) /\ ((((exists ff_h_bplfpb_zero_primorial_product_partial. ff_h_bplfpb_zero_primorial_product_partial + S (ff_r_bplfpb_zero_primorial_product) = S ((S (ff_i_bplfpb_zero_primorial_product)) * ff_v_bplfpb_zero_primorial_product)) /\ exists ff_q_bplfpb_zero_primorial_product_partial. ff_u_bplfpb_zero_primorial_product = ff_q_bplfpb_zero_primorial_product_partial * S ((S (ff_i_bplfpb_zero_primorial_product)) * ff_v_bplfpb_zero_primorial_product) + (ff_r_bplfpb_zero_primorial_product))) /\ ((((exists ff_h_bplfpb_zero_primorial_product_successor. ff_h_bplfpb_zero_primorial_product_successor + S (ff_s_bplfpb_zero_primorial_product) = S ((S (S ff_i_bplfpb_zero_primorial_product)) * ff_v_bplfpb_zero_primorial_product)) /\ exists ff_q_bplfpb_zero_primorial_product_successor. ff_u_bplfpb_zero_primorial_product = ff_q_bplfpb_zero_primorial_product_successor * S ((S (S ff_i_bplfpb_zero_primorial_product)) * ff_v_bplfpb_zero_primorial_product) + (ff_s_bplfpb_zero_primorial_product))) /\ ff_s_bplfpb_zero_primorial_product = ff_r_bplfpb_zero_primorial_product * ff_p_bplfpb_zero_primorial_product)))))))
  18. 0018specialize primorial_index_eq_transport n
  19. 0019specialize primorial_index_eq_transport 0
  20. 0020specialize primorial_index_eq_transport z
  21. 0021apply primorial_index_eq_transport
  22. 0022exact hn
  23. 0023exact hprimorial
  24. 0024have hz : z = 1
  25. 0025apply primorial_zero
  26. 0026exact hzero_primorial
  27. 0027have hq : q = 1
  28. 0028specialize pow_zero 4
  29. 0029specialize pow_zero n
  30. 0030specialize pow_zero q
  31. 0031apply pow_zero
  32. 0032exact hn
  33. 0033exact hpower
  34. 0034rewrite hz
  35. 0035rewrite hq
  36. 0036specialize le_refl 1
  37. 0037exact le_refl
  38. 0038intro n
  39. 0039intro z
  40. 0040intro q
  41. 0041intro hbound
  42. 0042intro hprimorial
  43. 0043intro hpower
  44. 0044have hboundary : n = S N ∨ Lt(n,S N)
    Exact native replay linehave hboundary : n = S N \/ exists g. g + S n = S N
  45. 0045specialize le_eq_or_lt n
  46. 0046specialize le_eq_or_lt (S N)
  47. 0047apply le_eq_or_lt
  48. 0048exact hbound
  49. 0049cases hboundary
  50. 0050have hparity : exists k. n = 2 * k \/ n = 2 * k + 1
  51. 0051specialize parity_cases n
  52. 0052exact parity_cases
  53. 0053cases hparity
  54. 0054cases hparity_witness
  55. 0055have hdouble : S N = 2 * x
  56. 0056trans n
  57. 0057symm
  58. 0058exact hboundary_left
  59. 0059exact hparity_witness_left
  60. 0060have hhalf_data : ¬x = 0 ∧ Le(x,N)
    Exact native replay linehave hhalf_data : ~(x = 0) /\ exists g. g + x = N
  61. 0061apply double_half_predecessor_data
  62. 0062exact hdouble
  63. 0063cases hhalf_data
  64. 0064have hsum : n = x + x
  65. 0065trans 2 * x
  66. 0066exact hparity_witness_left
  67. 0067specialize two_mul_eq_add_self x
  68. 0068exact two_mul_eq_add_self
  69. 0069have heven_primorial : Primorial(x + x,z)
    Exact native replay linehave heven_primorial : exists bpr_code_bplfpb_even_primorial bpr_scale_bplfpb_even_primorial. ((forall bpr_index_bplfpb_even_primorial_mask. (exists bpr_gap_bplfpb_even_primorial_mask_bound. bpr_gap_bplfpb_even_primorial_mask_bound + S (bpr_index_bplfpb_even_primorial_mask) = x + x) -> exists bpr_value_bplfpb_even_primorial_mask. ((((exists bpr_height_bplfpb_even_primorial_mask_decoded. bpr_height_bplfpb_even_primorial_mask_decoded + S (bpr_value_bplfpb_even_primorial_mask) = S ((S (bpr_index_bplfpb_even_primorial_mask)) * bpr_scale_bplfpb_even_primorial)) /\ exists bpr_quotient_bplfpb_even_primorial_mask_decoded. bpr_code_bplfpb_even_primorial = bpr_quotient_bplfpb_even_primorial_mask_decoded * S ((S (bpr_index_bplfpb_even_primorial_mask)) * bpr_scale_bplfpb_even_primorial) + (bpr_value_bplfpb_even_primorial_mask))) /\ (((((~(S (bpr_index_bplfpb_even_primorial_mask) = 1) /\ forall bpr_left_bplfpb_even_primorial_mask_choice_prime bpr_right_bplfpb_even_primorial_mask_choice_prime. S (bpr_index_bplfpb_even_primorial_mask) = bpr_left_bplfpb_even_primorial_mask_choice_prime * bpr_right_bplfpb_even_primorial_mask_choice_prime -> bpr_left_bplfpb_even_primorial_mask_choice_prime = 1 \/ bpr_right_bplfpb_even_primorial_mask_choice_prime = 1)) /\ bpr_value_bplfpb_even_primorial_mask = S (bpr_index_bplfpb_even_primorial_mask)) \/ (~((~(S (bpr_index_bplfpb_even_primorial_mask) = 1) /\ forall bpr_left_bplfpb_even_primorial_mask_choice_prime bpr_right_bplfpb_even_primorial_mask_choice_prime. S (bpr_index_bplfpb_even_primorial_mask) = bpr_left_bplfpb_even_primorial_mask_choice_prime * bpr_right_bplfpb_even_primorial_mask_choice_prime -> bpr_left_bplfpb_even_primorial_mask_choice_prime = 1 \/ bpr_right_bplfpb_even_primorial_mask_choice_prime = 1)) /\ bpr_value_bplfpb_even_primorial_mask = 1))))) /\ (exists ff_u_bplfpb_even_primorial_product ff_v_bplfpb_even_primorial_product. ((((exists ff_h_bplfpb_even_primorial_product_start. ff_h_bplfpb_even_primorial_product_start + S (1) = S ((S (0)) * ff_v_bplfpb_even_primorial_product)) /\ exists ff_q_bplfpb_even_primorial_product_start. ff_u_bplfpb_even_primorial_product = ff_q_bplfpb_even_primorial_product_start * S ((S (0)) * ff_v_bplfpb_even_primorial_product) + (1))) /\ ((((exists ff_h_bplfpb_even_primorial_product_terminal. ff_h_bplfpb_even_primorial_product_terminal + S (z) = S ((S (x + x)) * ff_v_bplfpb_even_primorial_product)) /\ exists ff_q_bplfpb_even_primorial_product_terminal. ff_u_bplfpb_even_primorial_product = ff_q_bplfpb_even_primorial_product_terminal * S ((S (x + x)) * ff_v_bplfpb_even_primorial_product) + (z))) /\ forall ff_i_bplfpb_even_primorial_product. (exists ff_lt_bplfpb_even_primorial_product_bound. ff_lt_bplfpb_even_primorial_product_bound + S ff_i_bplfpb_even_primorial_product = x + x) -> exists ff_p_bplfpb_even_primorial_product ff_r_bplfpb_even_primorial_product ff_s_bplfpb_even_primorial_product. ((((exists ff_h_bplfpb_even_primorial_product_factor. ff_h_bplfpb_even_primorial_product_factor + S (ff_p_bplfpb_even_primorial_product) = S ((S (ff_i_bplfpb_even_primorial_product)) * bpr_scale_bplfpb_even_primorial)) /\ exists ff_q_bplfpb_even_primorial_product_factor. bpr_code_bplfpb_even_primorial = ff_q_bplfpb_even_primorial_product_factor * S ((S (ff_i_bplfpb_even_primorial_product)) * bpr_scale_bplfpb_even_primorial) + (ff_p_bplfpb_even_primorial_product))) /\ ((((exists ff_h_bplfpb_even_primorial_product_partial. ff_h_bplfpb_even_primorial_product_partial + S (ff_r_bplfpb_even_primorial_product) = S ((S (ff_i_bplfpb_even_primorial_product)) * ff_v_bplfpb_even_primorial_product)) /\ exists ff_q_bplfpb_even_primorial_product_partial. ff_u_bplfpb_even_primorial_product = ff_q_bplfpb_even_primorial_product_partial * S ((S (ff_i_bplfpb_even_primorial_product)) * ff_v_bplfpb_even_primorial_product) + (ff_r_bplfpb_even_primorial_product))) /\ ((((exists ff_h_bplfpb_even_primorial_product_successor. ff_h_bplfpb_even_primorial_product_successor + S (ff_s_bplfpb_even_primorial_product) = S ((S (S ff_i_bplfpb_even_primorial_product)) * ff_v_bplfpb_even_primorial_product)) /\ exists ff_q_bplfpb_even_primorial_product_successor. ff_u_bplfpb_even_primorial_product = ff_q_bplfpb_even_primorial_product_successor * S ((S (S ff_i_bplfpb_even_primorial_product)) * ff_v_bplfpb_even_primorial_product) + (ff_s_bplfpb_even_primorial_product))) /\ ff_s_bplfpb_even_primorial_product = ff_r_bplfpb_even_primorial_product * ff_p_bplfpb_even_primorial_product)))))))
  70. 0070specialize primorial_index_eq_transport n
  71. 0071specialize primorial_index_eq_transport (x + x)
  72. 0072specialize primorial_index_eq_transport z
  73. 0073apply primorial_index_eq_transport
  74. 0074exact hsum
  75. 0075exact hprimorial
  76. 0076have hsplit : ∃ a. ∃ b. Primorial(x,a) ∧ ((∃ y. ∃ n. (∀ m. Lt(m,x) → ∃ k. BetaAt(y,n,m,k) ∧ (Prime(S (x + m)) ∧ k = S (x + m) ∨ ¬Prime(S (x + m)) ∧ k = 1)) ∧ Product(y,n,x,b)) ∧ z = a · b)
    Exact native replay linehave hsplit : exists a b. (exists bpr_code_bplfpb_even_prefix bpr_scale_bplfpb_even_prefix. ((forall bpr_index_bplfpb_even_prefix_mask. (exists bpr_gap_bplfpb_even_prefix_mask_bound. bpr_gap_bplfpb_even_prefix_mask_bound + S (bpr_index_bplfpb_even_prefix_mask) = x) -> exists bpr_value_bplfpb_even_prefix_mask. ((((exists bpr_height_bplfpb_even_prefix_mask_decoded. bpr_height_bplfpb_even_prefix_mask_decoded + S (bpr_value_bplfpb_even_prefix_mask) = S ((S (bpr_index_bplfpb_even_prefix_mask)) * bpr_scale_bplfpb_even_prefix)) /\ exists bpr_quotient_bplfpb_even_prefix_mask_decoded. bpr_code_bplfpb_even_prefix = bpr_quotient_bplfpb_even_prefix_mask_decoded * S ((S (bpr_index_bplfpb_even_prefix_mask)) * bpr_scale_bplfpb_even_prefix) + (bpr_value_bplfpb_even_prefix_mask))) /\ (((((~(S (bpr_index_bplfpb_even_prefix_mask) = 1) /\ forall bpr_left_bplfpb_even_prefix_mask_choice_prime bpr_right_bplfpb_even_prefix_mask_choice_prime. S (bpr_index_bplfpb_even_prefix_mask) = bpr_left_bplfpb_even_prefix_mask_choice_prime * bpr_right_bplfpb_even_prefix_mask_choice_prime -> bpr_left_bplfpb_even_prefix_mask_choice_prime = 1 \/ bpr_right_bplfpb_even_prefix_mask_choice_prime = 1)) /\ bpr_value_bplfpb_even_prefix_mask = S (bpr_index_bplfpb_even_prefix_mask)) \/ (~((~(S (bpr_index_bplfpb_even_prefix_mask) = 1) /\ forall bpr_left_bplfpb_even_prefix_mask_choice_prime bpr_right_bplfpb_even_prefix_mask_choice_prime. S (bpr_index_bplfpb_even_prefix_mask) = bpr_left_bplfpb_even_prefix_mask_choice_prime * bpr_right_bplfpb_even_prefix_mask_choice_prime -> bpr_left_bplfpb_even_prefix_mask_choice_prime = 1 \/ bpr_right_bplfpb_even_prefix_mask_choice_prime = 1)) /\ bpr_value_bplfpb_even_prefix_mask = 1))))) /\ (exists ff_u_bplfpb_even_prefix_product ff_v_bplfpb_even_prefix_product. ((((exists ff_h_bplfpb_even_prefix_product_start. ff_h_bplfpb_even_prefix_product_start + S (1) = S ((S (0)) * ff_v_bplfpb_even_prefix_product)) /\ exists ff_q_bplfpb_even_prefix_product_start. ff_u_bplfpb_even_prefix_product = ff_q_bplfpb_even_prefix_product_start * S ((S (0)) * ff_v_bplfpb_even_prefix_product) + (1))) /\ ((((exists ff_h_bplfpb_even_prefix_product_terminal. ff_h_bplfpb_even_prefix_product_terminal + S (a) = S ((S (x)) * ff_v_bplfpb_even_prefix_product)) /\ exists ff_q_bplfpb_even_prefix_product_terminal. ff_u_bplfpb_even_prefix_product = ff_q_bplfpb_even_prefix_product_terminal * S ((S (x)) * ff_v_bplfpb_even_prefix_product) + (a))) /\ forall ff_i_bplfpb_even_prefix_product. (exists ff_lt_bplfpb_even_prefix_product_bound. ff_lt_bplfpb_even_prefix_product_bound + S ff_i_bplfpb_even_prefix_product = x) -> exists ff_p_bplfpb_even_prefix_product ff_r_bplfpb_even_prefix_product ff_s_bplfpb_even_prefix_product. ((((exists ff_h_bplfpb_even_prefix_product_factor. ff_h_bplfpb_even_prefix_product_factor + S (ff_p_bplfpb_even_prefix_product) = S ((S (ff_i_bplfpb_even_prefix_product)) * bpr_scale_bplfpb_even_prefix)) /\ exists ff_q_bplfpb_even_prefix_product_factor. bpr_code_bplfpb_even_prefix = ff_q_bplfpb_even_prefix_product_factor * S ((S (ff_i_bplfpb_even_prefix_product)) * bpr_scale_bplfpb_even_prefix) + (ff_p_bplfpb_even_prefix_product))) /\ ((((exists ff_h_bplfpb_even_prefix_product_partial. ff_h_bplfpb_even_prefix_product_partial + S (ff_r_bplfpb_even_prefix_product) = S ((S (ff_i_bplfpb_even_prefix_product)) * ff_v_bplfpb_even_prefix_product)) /\ exists ff_q_bplfpb_even_prefix_product_partial. ff_u_bplfpb_even_prefix_product = ff_q_bplfpb_even_prefix_product_partial * S ((S (ff_i_bplfpb_even_prefix_product)) * ff_v_bplfpb_even_prefix_product) + (ff_r_bplfpb_even_prefix_product))) /\ ((((exists ff_h_bplfpb_even_prefix_product_successor. ff_h_bplfpb_even_prefix_product_successor + S (ff_s_bplfpb_even_prefix_product) = S ((S (S ff_i_bplfpb_even_prefix_product)) * ff_v_bplfpb_even_prefix_product)) /\ exists ff_q_bplfpb_even_prefix_product_successor. ff_u_bplfpb_even_prefix_product = ff_q_bplfpb_even_prefix_product_successor * S ((S (S ff_i_bplfpb_even_prefix_product)) * ff_v_bplfpb_even_prefix_product) + (ff_s_bplfpb_even_prefix_product))) /\ ff_s_bplfpb_even_prefix_product = ff_r_bplfpb_even_prefix_product * ff_p_bplfpb_even_prefix_product)))))))) /\ ((exists bpr_code_bplfpb_even_interval bpr_scale_bplfpb_even_interval. ((forall bpr_index_bplfpb_even_interval_mask. (exists bpr_gap_bplfpb_even_interval_mask_bound. bpr_gap_bplfpb_even_interval_mask_bound + S (bpr_index_bplfpb_even_interval_mask) = x) -> exists bpr_value_bplfpb_even_interval_mask. ((((exists bpr_height_bplfpb_even_interval_mask_decoded. bpr_height_bplfpb_even_interval_mask_decoded + S (bpr_value_bplfpb_even_interval_mask) = S ((S (bpr_index_bplfpb_even_interval_mask)) * bpr_scale_bplfpb_even_interval)) /\ exists bpr_quotient_bplfpb_even_interval_mask_decoded. bpr_code_bplfpb_even_interval = bpr_quotient_bplfpb_even_interval_mask_decoded * S ((S (bpr_index_bplfpb_even_interval_mask)) * bpr_scale_bplfpb_even_interval) + (bpr_value_bplfpb_even_interval_mask))) /\ (((((~(S (x + bpr_index_bplfpb_even_interval_mask) = 1) /\ forall bpr_left_bplfpb_even_interval_mask_choice_prime bpr_right_bplfpb_even_interval_mask_choice_prime. S (x + bpr_index_bplfpb_even_interval_mask) = bpr_left_bplfpb_even_interval_mask_choice_prime * bpr_right_bplfpb_even_interval_mask_choice_prime -> bpr_left_bplfpb_even_interval_mask_choice_prime = 1 \/ bpr_right_bplfpb_even_interval_mask_choice_prime = 1)) /\ bpr_value_bplfpb_even_interval_mask = S (x + bpr_index_bplfpb_even_interval_mask)) \/ (~((~(S (x + bpr_index_bplfpb_even_interval_mask) = 1) /\ forall bpr_left_bplfpb_even_interval_mask_choice_prime bpr_right_bplfpb_even_interval_mask_choice_prime. S (x + bpr_index_bplfpb_even_interval_mask) = bpr_left_bplfpb_even_interval_mask_choice_prime * bpr_right_bplfpb_even_interval_mask_choice_prime -> bpr_left_bplfpb_even_interval_mask_choice_prime = 1 \/ bpr_right_bplfpb_even_interval_mask_choice_prime = 1)) /\ bpr_value_bplfpb_even_interval_mask = 1))))) /\ (exists ff_u_bplfpb_even_interval_product ff_v_bplfpb_even_interval_product. ((((exists ff_h_bplfpb_even_interval_product_start. ff_h_bplfpb_even_interval_product_start + S (1) = S ((S (0)) * ff_v_bplfpb_even_interval_product)) /\ exists ff_q_bplfpb_even_interval_product_start. ff_u_bplfpb_even_interval_product = ff_q_bplfpb_even_interval_product_start * S ((S (0)) * ff_v_bplfpb_even_interval_product) + (1))) /\ ((((exists ff_h_bplfpb_even_interval_product_terminal. ff_h_bplfpb_even_interval_product_terminal + S (b) = S ((S (x)) * ff_v_bplfpb_even_interval_product)) /\ exists ff_q_bplfpb_even_interval_product_terminal. ff_u_bplfpb_even_interval_product = ff_q_bplfpb_even_interval_product_terminal * S ((S (x)) * ff_v_bplfpb_even_interval_product) + (b))) /\ forall ff_i_bplfpb_even_interval_product. (exists ff_lt_bplfpb_even_interval_product_bound. ff_lt_bplfpb_even_interval_product_bound + S ff_i_bplfpb_even_interval_product = x) -> exists ff_p_bplfpb_even_interval_product ff_r_bplfpb_even_interval_product ff_s_bplfpb_even_interval_product. ((((exists ff_h_bplfpb_even_interval_product_factor. ff_h_bplfpb_even_interval_product_factor + S (ff_p_bplfpb_even_interval_product) = S ((S (ff_i_bplfpb_even_interval_product)) * bpr_scale_bplfpb_even_interval)) /\ exists ff_q_bplfpb_even_interval_product_factor. bpr_code_bplfpb_even_interval = ff_q_bplfpb_even_interval_product_factor * S ((S (ff_i_bplfpb_even_interval_product)) * bpr_scale_bplfpb_even_interval) + (ff_p_bplfpb_even_interval_product))) /\ ((((exists ff_h_bplfpb_even_interval_product_partial. ff_h_bplfpb_even_interval_product_partial + S (ff_r_bplfpb_even_interval_product) = S ((S (ff_i_bplfpb_even_interval_product)) * ff_v_bplfpb_even_interval_product)) /\ exists ff_q_bplfpb_even_interval_product_partial. ff_u_bplfpb_even_interval_product = ff_q_bplfpb_even_interval_product_partial * S ((S (ff_i_bplfpb_even_interval_product)) * ff_v_bplfpb_even_interval_product) + (ff_r_bplfpb_even_interval_product))) /\ ((((exists ff_h_bplfpb_even_interval_product_successor. ff_h_bplfpb_even_interval_product_successor + S (ff_s_bplfpb_even_interval_product) = S ((S (S ff_i_bplfpb_even_interval_product)) * ff_v_bplfpb_even_interval_product)) /\ exists ff_q_bplfpb_even_interval_product_successor. ff_u_bplfpb_even_interval_product = ff_q_bplfpb_even_interval_product_successor * S ((S (S ff_i_bplfpb_even_interval_product)) * ff_v_bplfpb_even_interval_product) + (ff_s_bplfpb_even_interval_product))) /\ ff_s_bplfpb_even_interval_product = ff_r_bplfpb_even_interval_product * ff_p_bplfpb_even_interval_product)))))))) /\ z = a * b)
  77. 0077specialize hpackage_right_right_left x
  78. 0078specialize hpackage_right_right_left x
  79. 0079specialize hpackage_right_right_left z
  80. 0080apply hpackage_right_right_left
  81. 0081exact heven_primorial
  82. 0082cases hsplit
  83. 0083cases hsplit_witness
  84. 0084cases hsplit_witness_witness
  85. 0085cases hsplit_witness_witness_right
  86. 0086have hhalf_power : ∃ r. Pow(4,x,r)
    Exact native replay linehave hhalf_power : exists r. (exists pa_b_bplfpb_even_power pa_c_bplfpb_even_power. ((forall pa_i_bplfpb_even_power_repeat. (exists pa_lt_bplfpb_even_power_repeat_bound. pa_lt_bplfpb_even_power_repeat_bound + S pa_i_bplfpb_even_power_repeat = x) -> (((exists pa_h_bplfpb_even_power_repeat_decoded. pa_h_bplfpb_even_power_repeat_decoded + S (4) = S ((S (pa_i_bplfpb_even_power_repeat)) * pa_c_bplfpb_even_power)) /\ exists pa_q_bplfpb_even_power_repeat_decoded. pa_b_bplfpb_even_power = pa_q_bplfpb_even_power_repeat_decoded * S ((S (pa_i_bplfpb_even_power_repeat)) * pa_c_bplfpb_even_power) + (4)))) /\ (exists pa_u_bplfpb_even_power_product pa_v_bplfpb_even_power_product. ((((exists pa_h_bplfpb_even_power_product_start. pa_h_bplfpb_even_power_product_start + S (1) = S ((S (0)) * pa_v_bplfpb_even_power_product)) /\ exists pa_q_bplfpb_even_power_product_start. pa_u_bplfpb_even_power_product = pa_q_bplfpb_even_power_product_start * S ((S (0)) * pa_v_bplfpb_even_power_product) + (1))) /\ ((((exists pa_h_bplfpb_even_power_product_terminal. pa_h_bplfpb_even_power_product_terminal + S (r) = S ((S (x)) * pa_v_bplfpb_even_power_product)) /\ exists pa_q_bplfpb_even_power_product_terminal. pa_u_bplfpb_even_power_product = pa_q_bplfpb_even_power_product_terminal * S ((S (x)) * pa_v_bplfpb_even_power_product) + (r))) /\ forall pa_i_bplfpb_even_power_product. (exists pa_lt_bplfpb_even_power_product_bound. pa_lt_bplfpb_even_power_product_bound + S pa_i_bplfpb_even_power_product = x) -> exists pa_p_bplfpb_even_power_product pa_r_bplfpb_even_power_product pa_s_bplfpb_even_power_product. ((((exists pa_h_bplfpb_even_power_product_factor. pa_h_bplfpb_even_power_product_factor + S (pa_p_bplfpb_even_power_product) = S ((S (pa_i_bplfpb_even_power_product)) * pa_c_bplfpb_even_power)) /\ exists pa_q_bplfpb_even_power_product_factor. pa_b_bplfpb_even_power = pa_q_bplfpb_even_power_product_factor * S ((S (pa_i_bplfpb_even_power_product)) * pa_c_bplfpb_even_power) + (pa_p_bplfpb_even_power_product))) /\ ((((exists pa_h_bplfpb_even_power_product_partial. pa_h_bplfpb_even_power_product_partial + S (pa_r_bplfpb_even_power_product) = S ((S (pa_i_bplfpb_even_power_product)) * pa_v_bplfpb_even_power_product)) /\ exists pa_q_bplfpb_even_power_product_partial. pa_u_bplfpb_even_power_product = pa_q_bplfpb_even_power_product_partial * S ((S (pa_i_bplfpb_even_power_product)) * pa_v_bplfpb_even_power_product) + (pa_r_bplfpb_even_power_product))) /\ ((((exists pa_h_bplfpb_even_power_product_successor. pa_h_bplfpb_even_power_product_successor + S (pa_s_bplfpb_even_power_product) = S ((S (S pa_i_bplfpb_even_power_product)) * pa_v_bplfpb_even_power_product)) /\ exists pa_q_bplfpb_even_power_product_successor. pa_u_bplfpb_even_power_product = pa_q_bplfpb_even_power_product_successor * S ((S (S pa_i_bplfpb_even_power_product)) * pa_v_bplfpb_even_power_product) + (pa_s_bplfpb_even_power_product))) /\ pa_s_bplfpb_even_power_product = pa_r_bplfpb_even_power_product * pa_p_bplfpb_even_power_product))))))))
  87. 0087specialize pow_exists 4
  88. 0088specialize pow_exists x
  89. 0089exact pow_exists
  90. 0090cases hhalf_power
  91. 0091have hcentral : ∃ c. CentralBinom(x,c)
    Exact native replay linehave hcentral : exists c. (((exists bcf_lt_gap_bplfpb_even_central_out_of_range. bcf_lt_gap_bplfpb_even_central_out_of_range + S (x + x) = x) /\ c = 0) \/ ((exists bcf_le_gap_bplfpb_even_central_in_range. bcf_le_gap_bplfpb_even_central_in_range + (x) = x + x) /\ (exists bcf_row_code_code_bplfpb_even_central bcf_row_code_scale_bplfpb_even_central bcf_row_scale_code_bplfpb_even_central bcf_row_scale_scale_bplfpb_even_central bcf_row_code_bplfpb_even_central bcf_row_scale_bplfpb_even_central. ((forall bcf_row_index_bplfpb_even_central_table. (exists bcf_lt_gap_bplfpb_even_central_table_row_bound. bcf_lt_gap_bplfpb_even_central_table_row_bound + S (bcf_row_index_bplfpb_even_central_table) = S (x + x)) -> exists bcf_row_code_bplfpb_even_central_table bcf_row_scale_bplfpb_even_central_table. ((((exists bcf_height_bplfpb_even_central_table_decoded_row_code. bcf_height_bplfpb_even_central_table_decoded_row_code + S (bcf_row_code_bplfpb_even_central_table) = S ((S (bcf_row_index_bplfpb_even_central_table)) * bcf_row_code_scale_bplfpb_even_central)) /\ exists bcf_quotient_bplfpb_even_central_table_decoded_row_code. bcf_row_code_code_bplfpb_even_central = bcf_quotient_bplfpb_even_central_table_decoded_row_code * S ((S (bcf_row_index_bplfpb_even_central_table)) * bcf_row_code_scale_bplfpb_even_central) + (bcf_row_code_bplfpb_even_central_table))) /\ ((((exists bcf_height_bplfpb_even_central_table_decoded_row_scale. bcf_height_bplfpb_even_central_table_decoded_row_scale + S (bcf_row_scale_bplfpb_even_central_table) = S ((S (bcf_row_index_bplfpb_even_central_table)) * bcf_row_scale_scale_bplfpb_even_central)) /\ exists bcf_quotient_bplfpb_even_central_table_decoded_row_scale. bcf_row_scale_code_bplfpb_even_central = bcf_quotient_bplfpb_even_central_table_decoded_row_scale * S ((S (bcf_row_index_bplfpb_even_central_table)) * bcf_row_scale_scale_bplfpb_even_central) + (bcf_row_scale_bplfpb_even_central_table))) /\ ((bcf_row_index_bplfpb_even_central_table = 0 /\ (forall bcf_index_bplfpb_even_central_table_zero_row. (exists bcf_lt_gap_bplfpb_even_central_table_zero_row_bound. bcf_lt_gap_bplfpb_even_central_table_zero_row_bound + S (bcf_index_bplfpb_even_central_table_zero_row) = S (x + x)) -> exists bcf_value_bplfpb_even_central_table_zero_row. ((((exists bcf_height_bplfpb_even_central_table_zero_row_entry. bcf_height_bplfpb_even_central_table_zero_row_entry + S (bcf_value_bplfpb_even_central_table_zero_row) = S ((S (bcf_index_bplfpb_even_central_table_zero_row)) * bcf_row_scale_bplfpb_even_central_table)) /\ exists bcf_quotient_bplfpb_even_central_table_zero_row_entry. bcf_row_code_bplfpb_even_central_table = bcf_quotient_bplfpb_even_central_table_zero_row_entry * S ((S (bcf_index_bplfpb_even_central_table_zero_row)) * bcf_row_scale_bplfpb_even_central_table) + (bcf_value_bplfpb_even_central_table_zero_row))) /\ ((bcf_index_bplfpb_even_central_table_zero_row = 0 /\ bcf_value_bplfpb_even_central_table_zero_row = 1) \/ exists bcf_predecessor_bplfpb_even_central_table_zero_row. bcf_index_bplfpb_even_central_table_zero_row = S bcf_predecessor_bplfpb_even_central_table_zero_row /\ bcf_value_bplfpb_even_central_table_zero_row = 0)))) \/ exists bcf_predecessor_bplfpb_even_central_table bcf_previous_code_bplfpb_even_central_table bcf_previous_scale_bplfpb_even_central_table. bcf_row_index_bplfpb_even_central_table = S bcf_predecessor_bplfpb_even_central_table /\ ((((exists bcf_height_bplfpb_even_central_table_decoded_previous_code. bcf_height_bplfpb_even_central_table_decoded_previous_code + S (bcf_previous_code_bplfpb_even_central_table) = S ((S (bcf_predecessor_bplfpb_even_central_table)) * bcf_row_code_scale_bplfpb_even_central)) /\ exists bcf_quotient_bplfpb_even_central_table_decoded_previous_code. bcf_row_code_code_bplfpb_even_central = bcf_quotient_bplfpb_even_central_table_decoded_previous_code * S ((S (bcf_predecessor_bplfpb_even_central_table)) * bcf_row_code_scale_bplfpb_even_central) + (bcf_previous_code_bplfpb_even_central_table))) /\ ((((exists bcf_height_bplfpb_even_central_table_decoded_previous_scale. bcf_height_bplfpb_even_central_table_decoded_previous_scale + S (bcf_previous_scale_bplfpb_even_central_table) = S ((S (bcf_predecessor_bplfpb_even_central_table)) * bcf_row_scale_scale_bplfpb_even_central)) /\ exists bcf_quotient_bplfpb_even_central_table_decoded_previous_scale. bcf_row_scale_code_bplfpb_even_central = bcf_quotient_bplfpb_even_central_table_decoded_previous_scale * S ((S (bcf_predecessor_bplfpb_even_central_table)) * bcf_row_scale_scale_bplfpb_even_central) + (bcf_previous_scale_bplfpb_even_central_table))) /\ (forall bcf_index_bplfpb_even_central_table_row_step. (exists bcf_lt_gap_bplfpb_even_central_table_row_step_bound. bcf_lt_gap_bplfpb_even_central_table_row_step_bound + S (bcf_index_bplfpb_even_central_table_row_step) = S (x + x)) -> exists bcf_value_bplfpb_even_central_table_row_step. ((((exists bcf_height_bplfpb_even_central_table_row_step_entry. bcf_height_bplfpb_even_central_table_row_step_entry + S (bcf_value_bplfpb_even_central_table_row_step) = S ((S (bcf_index_bplfpb_even_central_table_row_step)) * bcf_row_scale_bplfpb_even_central_table)) /\ exists bcf_quotient_bplfpb_even_central_table_row_step_entry. bcf_row_code_bplfpb_even_central_table = bcf_quotient_bplfpb_even_central_table_row_step_entry * S ((S (bcf_index_bplfpb_even_central_table_row_step)) * bcf_row_scale_bplfpb_even_central_table) + (bcf_value_bplfpb_even_central_table_row_step))) /\ ((bcf_index_bplfpb_even_central_table_row_step = 0 /\ bcf_value_bplfpb_even_central_table_row_step = 1) \/ exists bcf_predecessor_bplfpb_even_central_table_row_step bcf_left_bplfpb_even_central_table_row_step bcf_right_bplfpb_even_central_table_row_step. bcf_index_bplfpb_even_central_table_row_step = S bcf_predecessor_bplfpb_even_central_table_row_step /\ ((((exists bcf_height_bplfpb_even_central_table_row_step_previous_left. bcf_height_bplfpb_even_central_table_row_step_previous_left + S (bcf_left_bplfpb_even_central_table_row_step) = S ((S (bcf_predecessor_bplfpb_even_central_table_row_step)) * bcf_previous_scale_bplfpb_even_central_table)) /\ exists bcf_quotient_bplfpb_even_central_table_row_step_previous_left. bcf_previous_code_bplfpb_even_central_table = bcf_quotient_bplfpb_even_central_table_row_step_previous_left * S ((S (bcf_predecessor_bplfpb_even_central_table_row_step)) * bcf_previous_scale_bplfpb_even_central_table) + (bcf_left_bplfpb_even_central_table_row_step))) /\ ((((exists bcf_height_bplfpb_even_central_table_row_step_previous_right. bcf_height_bplfpb_even_central_table_row_step_previous_right + S (bcf_right_bplfpb_even_central_table_row_step) = S ((S (S (bcf_predecessor_bplfpb_even_central_table_row_step))) * bcf_previous_scale_bplfpb_even_central_table)) /\ exists bcf_quotient_bplfpb_even_central_table_row_step_previous_right. bcf_previous_code_bplfpb_even_central_table = bcf_quotient_bplfpb_even_central_table_row_step_previous_right * S ((S (S (bcf_predecessor_bplfpb_even_central_table_row_step))) * bcf_previous_scale_bplfpb_even_central_table) + (bcf_right_bplfpb_even_central_table_row_step))) /\ bcf_value_bplfpb_even_central_table_row_step = bcf_left_bplfpb_even_central_table_row_step + bcf_right_bplfpb_even_central_table_row_step))))))))))) /\ ((((exists bcf_height_bplfpb_even_central_decoded_row_code. bcf_height_bplfpb_even_central_decoded_row_code + S (bcf_row_code_bplfpb_even_central) = S ((S (x + x)) * bcf_row_code_scale_bplfpb_even_central)) /\ exists bcf_quotient_bplfpb_even_central_decoded_row_code. bcf_row_code_code_bplfpb_even_central = bcf_quotient_bplfpb_even_central_decoded_row_code * S ((S (x + x)) * bcf_row_code_scale_bplfpb_even_central) + (bcf_row_code_bplfpb_even_central))) /\ ((((exists bcf_height_bplfpb_even_central_decoded_row_scale. bcf_height_bplfpb_even_central_decoded_row_scale + S (bcf_row_scale_bplfpb_even_central) = S ((S (x + x)) * bcf_row_scale_scale_bplfpb_even_central)) /\ exists bcf_quotient_bplfpb_even_central_decoded_row_scale. bcf_row_scale_code_bplfpb_even_central = bcf_quotient_bplfpb_even_central_decoded_row_scale * S ((S (x + x)) * bcf_row_scale_scale_bplfpb_even_central) + (bcf_row_scale_bplfpb_even_central))) /\ (((exists bcf_height_bplfpb_even_central_decoded_value. bcf_height_bplfpb_even_central_decoded_value + S (c) = S ((S (x)) * bcf_row_scale_bplfpb_even_central)) /\ exists bcf_quotient_bplfpb_even_central_decoded_value. bcf_row_code_bplfpb_even_central = bcf_quotient_bplfpb_even_central_decoded_value * S ((S (x)) * bcf_row_scale_bplfpb_even_central) + (c)))))))))
  92. 0092specialize hpackage_left x
  93. 0093exact hpackage_left
  94. 0094cases hcentral
  95. 0095have hprefix_bound : Le(x1,x3)
    Exact native replay linehave hprefix_bound : exists g. g + x1 = x3
  96. 0096specialize IH x
  97. 0097specialize IH x1
  98. 0098specialize IH x3
  99. 0099apply IH
  100. 0100exact hhalf_data_right
  101. 0101exact hsplit_witness_witness_left
  102. 0102exact hhalf_power_witness
  103. 0103have hinterval_bound : Le(x2,x4)
    Exact native replay linehave hinterval_bound : exists g. g + x2 = x4
  104. 0104specialize hpackage_right_right_right_left x
  105. 0105specialize hpackage_right_right_right_left x2
  106. 0106specialize hpackage_right_right_right_left x4
  107. 0107apply hpackage_right_right_right_left
  108. 0108exact hsplit_witness_witness_right_left
  109. 0109exact hcentral_witness
  110. 0110have hstrong : Le(2 · x4,x3)
    Exact native replay linehave hstrong : exists g. g + 2 * x4 = x3
  111. 0111specialize central_binom_nonzero_strong_upper x
  112. 0112specialize central_binom_nonzero_strong_upper x4
  113. 0113specialize central_binom_nonzero_strong_upper x3
  114. 0114apply central_binom_nonzero_strong_upper
  115. 0115exact hhalf_data_left
  116. 0116exact hcentral_witness
  117. 0117exact hhalf_power_witness
  118. 0118have hcentral_double : Le(x4,2 · x4)
    Exact native replay linehave hcentral_double : exists g. g + x4 = 2 * x4
  119. 0119have hcentral_add : Le(x4,x4 + x4)
    Exact native replay linehave hcentral_add : exists g. g + x4 = x4 + x4
  120. 0120specialize le_add_right x4
  121. 0121specialize le_add_right x4
  122. 0122exact le_add_right
  123. 0123specialize two_mul_eq_add_self x4
  124. 0124rewrite two_mul_eq_add_self
  125. 0125exact hcentral_add
  126. 0126have hcentral_bound : Le(x4,x3)
    Exact native replay linehave hcentral_bound : exists g. g + x4 = x3
  127. 0127specialize le_trans x4
  128. 0128specialize le_trans (2 * x4)
  129. 0129specialize le_trans x3
  130. 0130apply le_trans
  131. 0131exact hcentral_double
  132. 0132exact hstrong
  133. 0133have hinterval_power_bound : Le(x2,x3)
    Exact native replay linehave hinterval_power_bound : exists g. g + x2 = x3
  134. 0134specialize le_trans x2
  135. 0135specialize le_trans x4
  136. 0136specialize le_trans x3
  137. 0137apply le_trans
  138. 0138exact hinterval_bound
  139. 0139exact hcentral_bound
  140. 0140have hproduct_bound : Le(x1 · x2,x3 · x3)
    Exact native replay linehave hproduct_bound : exists g. g + x1 * x2 = x3 * x3
  141. 0141specialize mul_le_mul x1
  142. 0142specialize mul_le_mul x3
  143. 0143specialize mul_le_mul x2
  144. 0144specialize mul_le_mul x3
  145. 0145apply mul_le_mul
  146. 0146exact hprefix_bound
  147. 0147exact hinterval_power_bound
  148. 0148have hpower_product : q = x3 * x3
  149. 0149specialize pow_add 4
  150. 0150specialize pow_add x
  151. 0151specialize pow_add x
  152. 0152specialize pow_add n
  153. 0153specialize pow_add x3
  154. 0154specialize pow_add x3
  155. 0155specialize pow_add q
  156. 0156apply pow_add
  157. 0157exact hsum
  158. 0158exact hhalf_power_witness
  159. 0159exact hhalf_power_witness
  160. 0160exact hpower
  161. 0161rewrite hsplit_witness_witness_right_right
  162. 0162rewrite hpower_product
  163. 0163exact hproduct_bound
  164. 0164have hxcase : x = 0 \/ exists h. x = S h
  165. 0165specialize zero_or_succ x
  166. 0166exact zero_or_succ
  167. 0167cases hxcase
  168. 0168have hone : n = 1
  169. 0169trans 2 * x + 1
  170. 0170exact hparity_witness_right
  171. 0171rewrite hxcase_left
  172. 0172norm_num
  173. 0173have hone_primorial : Primorial(1,z)
    Exact native replay linehave hone_primorial : exists bpr_code_bplfpb_one_primorial bpr_scale_bplfpb_one_primorial. ((forall bpr_index_bplfpb_one_primorial_mask. (exists bpr_gap_bplfpb_one_primorial_mask_bound. bpr_gap_bplfpb_one_primorial_mask_bound + S (bpr_index_bplfpb_one_primorial_mask) = 1) -> exists bpr_value_bplfpb_one_primorial_mask. ((((exists bpr_height_bplfpb_one_primorial_mask_decoded. bpr_height_bplfpb_one_primorial_mask_decoded + S (bpr_value_bplfpb_one_primorial_mask) = S ((S (bpr_index_bplfpb_one_primorial_mask)) * bpr_scale_bplfpb_one_primorial)) /\ exists bpr_quotient_bplfpb_one_primorial_mask_decoded. bpr_code_bplfpb_one_primorial = bpr_quotient_bplfpb_one_primorial_mask_decoded * S ((S (bpr_index_bplfpb_one_primorial_mask)) * bpr_scale_bplfpb_one_primorial) + (bpr_value_bplfpb_one_primorial_mask))) /\ (((((~(S (bpr_index_bplfpb_one_primorial_mask) = 1) /\ forall bpr_left_bplfpb_one_primorial_mask_choice_prime bpr_right_bplfpb_one_primorial_mask_choice_prime. S (bpr_index_bplfpb_one_primorial_mask) = bpr_left_bplfpb_one_primorial_mask_choice_prime * bpr_right_bplfpb_one_primorial_mask_choice_prime -> bpr_left_bplfpb_one_primorial_mask_choice_prime = 1 \/ bpr_right_bplfpb_one_primorial_mask_choice_prime = 1)) /\ bpr_value_bplfpb_one_primorial_mask = S (bpr_index_bplfpb_one_primorial_mask)) \/ (~((~(S (bpr_index_bplfpb_one_primorial_mask) = 1) /\ forall bpr_left_bplfpb_one_primorial_mask_choice_prime bpr_right_bplfpb_one_primorial_mask_choice_prime. S (bpr_index_bplfpb_one_primorial_mask) = bpr_left_bplfpb_one_primorial_mask_choice_prime * bpr_right_bplfpb_one_primorial_mask_choice_prime -> bpr_left_bplfpb_one_primorial_mask_choice_prime = 1 \/ bpr_right_bplfpb_one_primorial_mask_choice_prime = 1)) /\ bpr_value_bplfpb_one_primorial_mask = 1))))) /\ (exists ff_u_bplfpb_one_primorial_product ff_v_bplfpb_one_primorial_product. ((((exists ff_h_bplfpb_one_primorial_product_start. ff_h_bplfpb_one_primorial_product_start + S (1) = S ((S (0)) * ff_v_bplfpb_one_primorial_product)) /\ exists ff_q_bplfpb_one_primorial_product_start. ff_u_bplfpb_one_primorial_product = ff_q_bplfpb_one_primorial_product_start * S ((S (0)) * ff_v_bplfpb_one_primorial_product) + (1))) /\ ((((exists ff_h_bplfpb_one_primorial_product_terminal. ff_h_bplfpb_one_primorial_product_terminal + S (z) = S ((S (1)) * ff_v_bplfpb_one_primorial_product)) /\ exists ff_q_bplfpb_one_primorial_product_terminal. ff_u_bplfpb_one_primorial_product = ff_q_bplfpb_one_primorial_product_terminal * S ((S (1)) * ff_v_bplfpb_one_primorial_product) + (z))) /\ forall ff_i_bplfpb_one_primorial_product. (exists ff_lt_bplfpb_one_primorial_product_bound. ff_lt_bplfpb_one_primorial_product_bound + S ff_i_bplfpb_one_primorial_product = 1) -> exists ff_p_bplfpb_one_primorial_product ff_r_bplfpb_one_primorial_product ff_s_bplfpb_one_primorial_product. ((((exists ff_h_bplfpb_one_primorial_product_factor. ff_h_bplfpb_one_primorial_product_factor + S (ff_p_bplfpb_one_primorial_product) = S ((S (ff_i_bplfpb_one_primorial_product)) * bpr_scale_bplfpb_one_primorial)) /\ exists ff_q_bplfpb_one_primorial_product_factor. bpr_code_bplfpb_one_primorial = ff_q_bplfpb_one_primorial_product_factor * S ((S (ff_i_bplfpb_one_primorial_product)) * bpr_scale_bplfpb_one_primorial) + (ff_p_bplfpb_one_primorial_product))) /\ ((((exists ff_h_bplfpb_one_primorial_product_partial. ff_h_bplfpb_one_primorial_product_partial + S (ff_r_bplfpb_one_primorial_product) = S ((S (ff_i_bplfpb_one_primorial_product)) * ff_v_bplfpb_one_primorial_product)) /\ exists ff_q_bplfpb_one_primorial_product_partial. ff_u_bplfpb_one_primorial_product = ff_q_bplfpb_one_primorial_product_partial * S ((S (ff_i_bplfpb_one_primorial_product)) * ff_v_bplfpb_one_primorial_product) + (ff_r_bplfpb_one_primorial_product))) /\ ((((exists ff_h_bplfpb_one_primorial_product_successor. ff_h_bplfpb_one_primorial_product_successor + S (ff_s_bplfpb_one_primorial_product) = S ((S (S ff_i_bplfpb_one_primorial_product)) * ff_v_bplfpb_one_primorial_product)) /\ exists ff_q_bplfpb_one_primorial_product_successor. ff_u_bplfpb_one_primorial_product = ff_q_bplfpb_one_primorial_product_successor * S ((S (S ff_i_bplfpb_one_primorial_product)) * ff_v_bplfpb_one_primorial_product) + (ff_s_bplfpb_one_primorial_product))) /\ ff_s_bplfpb_one_primorial_product = ff_r_bplfpb_one_primorial_product * ff_p_bplfpb_one_primorial_product)))))))
  174. 0174specialize primorial_index_eq_transport n
  175. 0175specialize primorial_index_eq_transport 1
  176. 0176specialize primorial_index_eq_transport z
  177. 0177apply primorial_index_eq_transport
  178. 0178exact hone
  179. 0179exact hprimorial
  180. 0180have hz : z = 1
  181. 0181apply primorial_one
  182. 0182exact hone_primorial
  183. 0183have hq : q = 4
  184. 0184specialize pow_one 4
  185. 0185specialize pow_one n
  186. 0186specialize pow_one q
  187. 0187apply pow_one
  188. 0188exact hone
  189. 0189exact hpower
  190. 0190rewrite hz
  191. 0191rewrite hq
  192. 0192exists 3
  193. 0193norm_num
  194. 0194have hodd : S N = 2 * x + 1
  195. 0195trans n
  196. 0196symm
  197. 0197exact hboundary_left
  198. 0198exact hparity_witness_right
  199. 0199have hprefix_index_bound : Lt(x,N)
    Exact native replay linehave hprefix_index_bound : exists bcf_le_gap_bplfpb_prefix_index. bcf_le_gap_bplfpb_prefix_index + (S x) = N
  200. 0200apply odd_positive_prefix_predecessor_bound
  201. 0201exact hodd
  202. 0202exact hxcase_right
  203. 0203have hsum : n = S x + x
  204. 0204trans 2 * x + 1
  205. 0205exact hparity_witness_right
  206. 0206simp [two_mul_eq_add_self, add_succ_left]
  207. 0207have hodd_primorial : Primorial(S x + x,z)
    Exact native replay linehave hodd_primorial : exists bpr_code_bplfpb_odd_primorial bpr_scale_bplfpb_odd_primorial. ((forall bpr_index_bplfpb_odd_primorial_mask. (exists bpr_gap_bplfpb_odd_primorial_mask_bound. bpr_gap_bplfpb_odd_primorial_mask_bound + S (bpr_index_bplfpb_odd_primorial_mask) = S x + x) -> exists bpr_value_bplfpb_odd_primorial_mask. ((((exists bpr_height_bplfpb_odd_primorial_mask_decoded. bpr_height_bplfpb_odd_primorial_mask_decoded + S (bpr_value_bplfpb_odd_primorial_mask) = S ((S (bpr_index_bplfpb_odd_primorial_mask)) * bpr_scale_bplfpb_odd_primorial)) /\ exists bpr_quotient_bplfpb_odd_primorial_mask_decoded. bpr_code_bplfpb_odd_primorial = bpr_quotient_bplfpb_odd_primorial_mask_decoded * S ((S (bpr_index_bplfpb_odd_primorial_mask)) * bpr_scale_bplfpb_odd_primorial) + (bpr_value_bplfpb_odd_primorial_mask))) /\ (((((~(S (bpr_index_bplfpb_odd_primorial_mask) = 1) /\ forall bpr_left_bplfpb_odd_primorial_mask_choice_prime bpr_right_bplfpb_odd_primorial_mask_choice_prime. S (bpr_index_bplfpb_odd_primorial_mask) = bpr_left_bplfpb_odd_primorial_mask_choice_prime * bpr_right_bplfpb_odd_primorial_mask_choice_prime -> bpr_left_bplfpb_odd_primorial_mask_choice_prime = 1 \/ bpr_right_bplfpb_odd_primorial_mask_choice_prime = 1)) /\ bpr_value_bplfpb_odd_primorial_mask = S (bpr_index_bplfpb_odd_primorial_mask)) \/ (~((~(S (bpr_index_bplfpb_odd_primorial_mask) = 1) /\ forall bpr_left_bplfpb_odd_primorial_mask_choice_prime bpr_right_bplfpb_odd_primorial_mask_choice_prime. S (bpr_index_bplfpb_odd_primorial_mask) = bpr_left_bplfpb_odd_primorial_mask_choice_prime * bpr_right_bplfpb_odd_primorial_mask_choice_prime -> bpr_left_bplfpb_odd_primorial_mask_choice_prime = 1 \/ bpr_right_bplfpb_odd_primorial_mask_choice_prime = 1)) /\ bpr_value_bplfpb_odd_primorial_mask = 1))))) /\ (exists ff_u_bplfpb_odd_primorial_product ff_v_bplfpb_odd_primorial_product. ((((exists ff_h_bplfpb_odd_primorial_product_start. ff_h_bplfpb_odd_primorial_product_start + S (1) = S ((S (0)) * ff_v_bplfpb_odd_primorial_product)) /\ exists ff_q_bplfpb_odd_primorial_product_start. ff_u_bplfpb_odd_primorial_product = ff_q_bplfpb_odd_primorial_product_start * S ((S (0)) * ff_v_bplfpb_odd_primorial_product) + (1))) /\ ((((exists ff_h_bplfpb_odd_primorial_product_terminal. ff_h_bplfpb_odd_primorial_product_terminal + S (z) = S ((S (S x + x)) * ff_v_bplfpb_odd_primorial_product)) /\ exists ff_q_bplfpb_odd_primorial_product_terminal. ff_u_bplfpb_odd_primorial_product = ff_q_bplfpb_odd_primorial_product_terminal * S ((S (S x + x)) * ff_v_bplfpb_odd_primorial_product) + (z))) /\ forall ff_i_bplfpb_odd_primorial_product. (exists ff_lt_bplfpb_odd_primorial_product_bound. ff_lt_bplfpb_odd_primorial_product_bound + S ff_i_bplfpb_odd_primorial_product = S x + x) -> exists ff_p_bplfpb_odd_primorial_product ff_r_bplfpb_odd_primorial_product ff_s_bplfpb_odd_primorial_product. ((((exists ff_h_bplfpb_odd_primorial_product_factor. ff_h_bplfpb_odd_primorial_product_factor + S (ff_p_bplfpb_odd_primorial_product) = S ((S (ff_i_bplfpb_odd_primorial_product)) * bpr_scale_bplfpb_odd_primorial)) /\ exists ff_q_bplfpb_odd_primorial_product_factor. bpr_code_bplfpb_odd_primorial = ff_q_bplfpb_odd_primorial_product_factor * S ((S (ff_i_bplfpb_odd_primorial_product)) * bpr_scale_bplfpb_odd_primorial) + (ff_p_bplfpb_odd_primorial_product))) /\ ((((exists ff_h_bplfpb_odd_primorial_product_partial. ff_h_bplfpb_odd_primorial_product_partial + S (ff_r_bplfpb_odd_primorial_product) = S ((S (ff_i_bplfpb_odd_primorial_product)) * ff_v_bplfpb_odd_primorial_product)) /\ exists ff_q_bplfpb_odd_primorial_product_partial. ff_u_bplfpb_odd_primorial_product = ff_q_bplfpb_odd_primorial_product_partial * S ((S (ff_i_bplfpb_odd_primorial_product)) * ff_v_bplfpb_odd_primorial_product) + (ff_r_bplfpb_odd_primorial_product))) /\ ((((exists ff_h_bplfpb_odd_primorial_product_successor. ff_h_bplfpb_odd_primorial_product_successor + S (ff_s_bplfpb_odd_primorial_product) = S ((S (S ff_i_bplfpb_odd_primorial_product)) * ff_v_bplfpb_odd_primorial_product)) /\ exists ff_q_bplfpb_odd_primorial_product_successor. ff_u_bplfpb_odd_primorial_product = ff_q_bplfpb_odd_primorial_product_successor * S ((S (S ff_i_bplfpb_odd_primorial_product)) * ff_v_bplfpb_odd_primorial_product) + (ff_s_bplfpb_odd_primorial_product))) /\ ff_s_bplfpb_odd_primorial_product = ff_r_bplfpb_odd_primorial_product * ff_p_bplfpb_odd_primorial_product)))))))
  208. 0208specialize primorial_index_eq_transport n
  209. 0209specialize primorial_index_eq_transport (S x + x)
  210. 0210specialize primorial_index_eq_transport z
  211. 0211apply primorial_index_eq_transport
  212. 0212exact hsum
  213. 0213exact hprimorial
  214. 0214have hsplit : ∃ a. ∃ b. Primorial(S x,a) ∧ ((∃ y. ∃ n. (∀ m. Lt(m,x) → ∃ k. BetaAt(y,n,m,k) ∧ (Prime(S (S x + m)) ∧ k = S (S x + m) ∨ ¬Prime(S (S x + m)) ∧ k = 1)) ∧ Product(y,n,x,b)) ∧ z = a · b)
    Exact native replay linehave hsplit : exists a b. (exists bpr_code_bplfpb_odd_prefix bpr_scale_bplfpb_odd_prefix. ((forall bpr_index_bplfpb_odd_prefix_mask. (exists bpr_gap_bplfpb_odd_prefix_mask_bound. bpr_gap_bplfpb_odd_prefix_mask_bound + S (bpr_index_bplfpb_odd_prefix_mask) = S x) -> exists bpr_value_bplfpb_odd_prefix_mask. ((((exists bpr_height_bplfpb_odd_prefix_mask_decoded. bpr_height_bplfpb_odd_prefix_mask_decoded + S (bpr_value_bplfpb_odd_prefix_mask) = S ((S (bpr_index_bplfpb_odd_prefix_mask)) * bpr_scale_bplfpb_odd_prefix)) /\ exists bpr_quotient_bplfpb_odd_prefix_mask_decoded. bpr_code_bplfpb_odd_prefix = bpr_quotient_bplfpb_odd_prefix_mask_decoded * S ((S (bpr_index_bplfpb_odd_prefix_mask)) * bpr_scale_bplfpb_odd_prefix) + (bpr_value_bplfpb_odd_prefix_mask))) /\ (((((~(S (bpr_index_bplfpb_odd_prefix_mask) = 1) /\ forall bpr_left_bplfpb_odd_prefix_mask_choice_prime bpr_right_bplfpb_odd_prefix_mask_choice_prime. S (bpr_index_bplfpb_odd_prefix_mask) = bpr_left_bplfpb_odd_prefix_mask_choice_prime * bpr_right_bplfpb_odd_prefix_mask_choice_prime -> bpr_left_bplfpb_odd_prefix_mask_choice_prime = 1 \/ bpr_right_bplfpb_odd_prefix_mask_choice_prime = 1)) /\ bpr_value_bplfpb_odd_prefix_mask = S (bpr_index_bplfpb_odd_prefix_mask)) \/ (~((~(S (bpr_index_bplfpb_odd_prefix_mask) = 1) /\ forall bpr_left_bplfpb_odd_prefix_mask_choice_prime bpr_right_bplfpb_odd_prefix_mask_choice_prime. S (bpr_index_bplfpb_odd_prefix_mask) = bpr_left_bplfpb_odd_prefix_mask_choice_prime * bpr_right_bplfpb_odd_prefix_mask_choice_prime -> bpr_left_bplfpb_odd_prefix_mask_choice_prime = 1 \/ bpr_right_bplfpb_odd_prefix_mask_choice_prime = 1)) /\ bpr_value_bplfpb_odd_prefix_mask = 1))))) /\ (exists ff_u_bplfpb_odd_prefix_product ff_v_bplfpb_odd_prefix_product. ((((exists ff_h_bplfpb_odd_prefix_product_start. ff_h_bplfpb_odd_prefix_product_start + S (1) = S ((S (0)) * ff_v_bplfpb_odd_prefix_product)) /\ exists ff_q_bplfpb_odd_prefix_product_start. ff_u_bplfpb_odd_prefix_product = ff_q_bplfpb_odd_prefix_product_start * S ((S (0)) * ff_v_bplfpb_odd_prefix_product) + (1))) /\ ((((exists ff_h_bplfpb_odd_prefix_product_terminal. ff_h_bplfpb_odd_prefix_product_terminal + S (a) = S ((S (S x)) * ff_v_bplfpb_odd_prefix_product)) /\ exists ff_q_bplfpb_odd_prefix_product_terminal. ff_u_bplfpb_odd_prefix_product = ff_q_bplfpb_odd_prefix_product_terminal * S ((S (S x)) * ff_v_bplfpb_odd_prefix_product) + (a))) /\ forall ff_i_bplfpb_odd_prefix_product. (exists ff_lt_bplfpb_odd_prefix_product_bound. ff_lt_bplfpb_odd_prefix_product_bound + S ff_i_bplfpb_odd_prefix_product = S x) -> exists ff_p_bplfpb_odd_prefix_product ff_r_bplfpb_odd_prefix_product ff_s_bplfpb_odd_prefix_product. ((((exists ff_h_bplfpb_odd_prefix_product_factor. ff_h_bplfpb_odd_prefix_product_factor + S (ff_p_bplfpb_odd_prefix_product) = S ((S (ff_i_bplfpb_odd_prefix_product)) * bpr_scale_bplfpb_odd_prefix)) /\ exists ff_q_bplfpb_odd_prefix_product_factor. bpr_code_bplfpb_odd_prefix = ff_q_bplfpb_odd_prefix_product_factor * S ((S (ff_i_bplfpb_odd_prefix_product)) * bpr_scale_bplfpb_odd_prefix) + (ff_p_bplfpb_odd_prefix_product))) /\ ((((exists ff_h_bplfpb_odd_prefix_product_partial. ff_h_bplfpb_odd_prefix_product_partial + S (ff_r_bplfpb_odd_prefix_product) = S ((S (ff_i_bplfpb_odd_prefix_product)) * ff_v_bplfpb_odd_prefix_product)) /\ exists ff_q_bplfpb_odd_prefix_product_partial. ff_u_bplfpb_odd_prefix_product = ff_q_bplfpb_odd_prefix_product_partial * S ((S (ff_i_bplfpb_odd_prefix_product)) * ff_v_bplfpb_odd_prefix_product) + (ff_r_bplfpb_odd_prefix_product))) /\ ((((exists ff_h_bplfpb_odd_prefix_product_successor. ff_h_bplfpb_odd_prefix_product_successor + S (ff_s_bplfpb_odd_prefix_product) = S ((S (S ff_i_bplfpb_odd_prefix_product)) * ff_v_bplfpb_odd_prefix_product)) /\ exists ff_q_bplfpb_odd_prefix_product_successor. ff_u_bplfpb_odd_prefix_product = ff_q_bplfpb_odd_prefix_product_successor * S ((S (S ff_i_bplfpb_odd_prefix_product)) * ff_v_bplfpb_odd_prefix_product) + (ff_s_bplfpb_odd_prefix_product))) /\ ff_s_bplfpb_odd_prefix_product = ff_r_bplfpb_odd_prefix_product * ff_p_bplfpb_odd_prefix_product)))))))) /\ ((exists bpr_code_bplfpb_odd_interval bpr_scale_bplfpb_odd_interval. ((forall bpr_index_bplfpb_odd_interval_mask. (exists bpr_gap_bplfpb_odd_interval_mask_bound. bpr_gap_bplfpb_odd_interval_mask_bound + S (bpr_index_bplfpb_odd_interval_mask) = x) -> exists bpr_value_bplfpb_odd_interval_mask. ((((exists bpr_height_bplfpb_odd_interval_mask_decoded. bpr_height_bplfpb_odd_interval_mask_decoded + S (bpr_value_bplfpb_odd_interval_mask) = S ((S (bpr_index_bplfpb_odd_interval_mask)) * bpr_scale_bplfpb_odd_interval)) /\ exists bpr_quotient_bplfpb_odd_interval_mask_decoded. bpr_code_bplfpb_odd_interval = bpr_quotient_bplfpb_odd_interval_mask_decoded * S ((S (bpr_index_bplfpb_odd_interval_mask)) * bpr_scale_bplfpb_odd_interval) + (bpr_value_bplfpb_odd_interval_mask))) /\ (((((~(S (S x + bpr_index_bplfpb_odd_interval_mask) = 1) /\ forall bpr_left_bplfpb_odd_interval_mask_choice_prime bpr_right_bplfpb_odd_interval_mask_choice_prime. S (S x + bpr_index_bplfpb_odd_interval_mask) = bpr_left_bplfpb_odd_interval_mask_choice_prime * bpr_right_bplfpb_odd_interval_mask_choice_prime -> bpr_left_bplfpb_odd_interval_mask_choice_prime = 1 \/ bpr_right_bplfpb_odd_interval_mask_choice_prime = 1)) /\ bpr_value_bplfpb_odd_interval_mask = S (S x + bpr_index_bplfpb_odd_interval_mask)) \/ (~((~(S (S x + bpr_index_bplfpb_odd_interval_mask) = 1) /\ forall bpr_left_bplfpb_odd_interval_mask_choice_prime bpr_right_bplfpb_odd_interval_mask_choice_prime. S (S x + bpr_index_bplfpb_odd_interval_mask) = bpr_left_bplfpb_odd_interval_mask_choice_prime * bpr_right_bplfpb_odd_interval_mask_choice_prime -> bpr_left_bplfpb_odd_interval_mask_choice_prime = 1 \/ bpr_right_bplfpb_odd_interval_mask_choice_prime = 1)) /\ bpr_value_bplfpb_odd_interval_mask = 1))))) /\ (exists ff_u_bplfpb_odd_interval_product ff_v_bplfpb_odd_interval_product. ((((exists ff_h_bplfpb_odd_interval_product_start. ff_h_bplfpb_odd_interval_product_start + S (1) = S ((S (0)) * ff_v_bplfpb_odd_interval_product)) /\ exists ff_q_bplfpb_odd_interval_product_start. ff_u_bplfpb_odd_interval_product = ff_q_bplfpb_odd_interval_product_start * S ((S (0)) * ff_v_bplfpb_odd_interval_product) + (1))) /\ ((((exists ff_h_bplfpb_odd_interval_product_terminal. ff_h_bplfpb_odd_interval_product_terminal + S (b) = S ((S (x)) * ff_v_bplfpb_odd_interval_product)) /\ exists ff_q_bplfpb_odd_interval_product_terminal. ff_u_bplfpb_odd_interval_product = ff_q_bplfpb_odd_interval_product_terminal * S ((S (x)) * ff_v_bplfpb_odd_interval_product) + (b))) /\ forall ff_i_bplfpb_odd_interval_product. (exists ff_lt_bplfpb_odd_interval_product_bound. ff_lt_bplfpb_odd_interval_product_bound + S ff_i_bplfpb_odd_interval_product = x) -> exists ff_p_bplfpb_odd_interval_product ff_r_bplfpb_odd_interval_product ff_s_bplfpb_odd_interval_product. ((((exists ff_h_bplfpb_odd_interval_product_factor. ff_h_bplfpb_odd_interval_product_factor + S (ff_p_bplfpb_odd_interval_product) = S ((S (ff_i_bplfpb_odd_interval_product)) * bpr_scale_bplfpb_odd_interval)) /\ exists ff_q_bplfpb_odd_interval_product_factor. bpr_code_bplfpb_odd_interval = ff_q_bplfpb_odd_interval_product_factor * S ((S (ff_i_bplfpb_odd_interval_product)) * bpr_scale_bplfpb_odd_interval) + (ff_p_bplfpb_odd_interval_product))) /\ ((((exists ff_h_bplfpb_odd_interval_product_partial. ff_h_bplfpb_odd_interval_product_partial + S (ff_r_bplfpb_odd_interval_product) = S ((S (ff_i_bplfpb_odd_interval_product)) * ff_v_bplfpb_odd_interval_product)) /\ exists ff_q_bplfpb_odd_interval_product_partial. ff_u_bplfpb_odd_interval_product = ff_q_bplfpb_odd_interval_product_partial * S ((S (ff_i_bplfpb_odd_interval_product)) * ff_v_bplfpb_odd_interval_product) + (ff_r_bplfpb_odd_interval_product))) /\ ((((exists ff_h_bplfpb_odd_interval_product_successor. ff_h_bplfpb_odd_interval_product_successor + S (ff_s_bplfpb_odd_interval_product) = S ((S (S ff_i_bplfpb_odd_interval_product)) * ff_v_bplfpb_odd_interval_product)) /\ exists ff_q_bplfpb_odd_interval_product_successor. ff_u_bplfpb_odd_interval_product = ff_q_bplfpb_odd_interval_product_successor * S ((S (S ff_i_bplfpb_odd_interval_product)) * ff_v_bplfpb_odd_interval_product) + (ff_s_bplfpb_odd_interval_product))) /\ ff_s_bplfpb_odd_interval_product = ff_r_bplfpb_odd_interval_product * ff_p_bplfpb_odd_interval_product)))))))) /\ z = a * b)
  215. 0215specialize hpackage_right_right_left (S x)
  216. 0216specialize hpackage_right_right_left x
  217. 0217specialize hpackage_right_right_left z
  218. 0218apply hpackage_right_right_left
  219. 0219exact hodd_primorial
  220. 0220cases hsplit
  221. 0221cases hsplit_witness
  222. 0222cases hsplit_witness_witness
  223. 0223cases hsplit_witness_witness_right
  224. 0224have hprefix_power : ∃ r. Pow(4,S x,r)
    Exact native replay linehave hprefix_power : exists r. (exists pa_b_bplfpb_odd_prefix_power pa_c_bplfpb_odd_prefix_power. ((forall pa_i_bplfpb_odd_prefix_power_repeat. (exists pa_lt_bplfpb_odd_prefix_power_repeat_bound. pa_lt_bplfpb_odd_prefix_power_repeat_bound + S pa_i_bplfpb_odd_prefix_power_repeat = S x) -> (((exists pa_h_bplfpb_odd_prefix_power_repeat_decoded. pa_h_bplfpb_odd_prefix_power_repeat_decoded + S (4) = S ((S (pa_i_bplfpb_odd_prefix_power_repeat)) * pa_c_bplfpb_odd_prefix_power)) /\ exists pa_q_bplfpb_odd_prefix_power_repeat_decoded. pa_b_bplfpb_odd_prefix_power = pa_q_bplfpb_odd_prefix_power_repeat_decoded * S ((S (pa_i_bplfpb_odd_prefix_power_repeat)) * pa_c_bplfpb_odd_prefix_power) + (4)))) /\ (exists pa_u_bplfpb_odd_prefix_power_product pa_v_bplfpb_odd_prefix_power_product. ((((exists pa_h_bplfpb_odd_prefix_power_product_start. pa_h_bplfpb_odd_prefix_power_product_start + S (1) = S ((S (0)) * pa_v_bplfpb_odd_prefix_power_product)) /\ exists pa_q_bplfpb_odd_prefix_power_product_start. pa_u_bplfpb_odd_prefix_power_product = pa_q_bplfpb_odd_prefix_power_product_start * S ((S (0)) * pa_v_bplfpb_odd_prefix_power_product) + (1))) /\ ((((exists pa_h_bplfpb_odd_prefix_power_product_terminal. pa_h_bplfpb_odd_prefix_power_product_terminal + S (r) = S ((S (S x)) * pa_v_bplfpb_odd_prefix_power_product)) /\ exists pa_q_bplfpb_odd_prefix_power_product_terminal. pa_u_bplfpb_odd_prefix_power_product = pa_q_bplfpb_odd_prefix_power_product_terminal * S ((S (S x)) * pa_v_bplfpb_odd_prefix_power_product) + (r))) /\ forall pa_i_bplfpb_odd_prefix_power_product. (exists pa_lt_bplfpb_odd_prefix_power_product_bound. pa_lt_bplfpb_odd_prefix_power_product_bound + S pa_i_bplfpb_odd_prefix_power_product = S x) -> exists pa_p_bplfpb_odd_prefix_power_product pa_r_bplfpb_odd_prefix_power_product pa_s_bplfpb_odd_prefix_power_product. ((((exists pa_h_bplfpb_odd_prefix_power_product_factor. pa_h_bplfpb_odd_prefix_power_product_factor + S (pa_p_bplfpb_odd_prefix_power_product) = S ((S (pa_i_bplfpb_odd_prefix_power_product)) * pa_c_bplfpb_odd_prefix_power)) /\ exists pa_q_bplfpb_odd_prefix_power_product_factor. pa_b_bplfpb_odd_prefix_power = pa_q_bplfpb_odd_prefix_power_product_factor * S ((S (pa_i_bplfpb_odd_prefix_power_product)) * pa_c_bplfpb_odd_prefix_power) + (pa_p_bplfpb_odd_prefix_power_product))) /\ ((((exists pa_h_bplfpb_odd_prefix_power_product_partial. pa_h_bplfpb_odd_prefix_power_product_partial + S (pa_r_bplfpb_odd_prefix_power_product) = S ((S (pa_i_bplfpb_odd_prefix_power_product)) * pa_v_bplfpb_odd_prefix_power_product)) /\ exists pa_q_bplfpb_odd_prefix_power_product_partial. pa_u_bplfpb_odd_prefix_power_product = pa_q_bplfpb_odd_prefix_power_product_partial * S ((S (pa_i_bplfpb_odd_prefix_power_product)) * pa_v_bplfpb_odd_prefix_power_product) + (pa_r_bplfpb_odd_prefix_power_product))) /\ ((((exists pa_h_bplfpb_odd_prefix_power_product_successor. pa_h_bplfpb_odd_prefix_power_product_successor + S (pa_s_bplfpb_odd_prefix_power_product) = S ((S (S pa_i_bplfpb_odd_prefix_power_product)) * pa_v_bplfpb_odd_prefix_power_product)) /\ exists pa_q_bplfpb_odd_prefix_power_product_successor. pa_u_bplfpb_odd_prefix_power_product = pa_q_bplfpb_odd_prefix_power_product_successor * S ((S (S pa_i_bplfpb_odd_prefix_power_product)) * pa_v_bplfpb_odd_prefix_power_product) + (pa_s_bplfpb_odd_prefix_power_product))) /\ pa_s_bplfpb_odd_prefix_power_product = pa_r_bplfpb_odd_prefix_power_product * pa_p_bplfpb_odd_prefix_power_product))))))))
  225. 0225specialize pow_exists 4
  226. 0226specialize pow_exists (S x)
  227. 0227exact pow_exists
  228. 0228cases hprefix_power
  229. 0229have hhalf_power : ∃ s. Pow(4,x,s)
    Exact native replay linehave hhalf_power : exists s. (exists pa_b_bplfpb_odd_half_power pa_c_bplfpb_odd_half_power. ((forall pa_i_bplfpb_odd_half_power_repeat. (exists pa_lt_bplfpb_odd_half_power_repeat_bound. pa_lt_bplfpb_odd_half_power_repeat_bound + S pa_i_bplfpb_odd_half_power_repeat = x) -> (((exists pa_h_bplfpb_odd_half_power_repeat_decoded. pa_h_bplfpb_odd_half_power_repeat_decoded + S (4) = S ((S (pa_i_bplfpb_odd_half_power_repeat)) * pa_c_bplfpb_odd_half_power)) /\ exists pa_q_bplfpb_odd_half_power_repeat_decoded. pa_b_bplfpb_odd_half_power = pa_q_bplfpb_odd_half_power_repeat_decoded * S ((S (pa_i_bplfpb_odd_half_power_repeat)) * pa_c_bplfpb_odd_half_power) + (4)))) /\ (exists pa_u_bplfpb_odd_half_power_product pa_v_bplfpb_odd_half_power_product. ((((exists pa_h_bplfpb_odd_half_power_product_start. pa_h_bplfpb_odd_half_power_product_start + S (1) = S ((S (0)) * pa_v_bplfpb_odd_half_power_product)) /\ exists pa_q_bplfpb_odd_half_power_product_start. pa_u_bplfpb_odd_half_power_product = pa_q_bplfpb_odd_half_power_product_start * S ((S (0)) * pa_v_bplfpb_odd_half_power_product) + (1))) /\ ((((exists pa_h_bplfpb_odd_half_power_product_terminal. pa_h_bplfpb_odd_half_power_product_terminal + S (s) = S ((S (x)) * pa_v_bplfpb_odd_half_power_product)) /\ exists pa_q_bplfpb_odd_half_power_product_terminal. pa_u_bplfpb_odd_half_power_product = pa_q_bplfpb_odd_half_power_product_terminal * S ((S (x)) * pa_v_bplfpb_odd_half_power_product) + (s))) /\ forall pa_i_bplfpb_odd_half_power_product. (exists pa_lt_bplfpb_odd_half_power_product_bound. pa_lt_bplfpb_odd_half_power_product_bound + S pa_i_bplfpb_odd_half_power_product = x) -> exists pa_p_bplfpb_odd_half_power_product pa_r_bplfpb_odd_half_power_product pa_s_bplfpb_odd_half_power_product. ((((exists pa_h_bplfpb_odd_half_power_product_factor. pa_h_bplfpb_odd_half_power_product_factor + S (pa_p_bplfpb_odd_half_power_product) = S ((S (pa_i_bplfpb_odd_half_power_product)) * pa_c_bplfpb_odd_half_power)) /\ exists pa_q_bplfpb_odd_half_power_product_factor. pa_b_bplfpb_odd_half_power = pa_q_bplfpb_odd_half_power_product_factor * S ((S (pa_i_bplfpb_odd_half_power_product)) * pa_c_bplfpb_odd_half_power) + (pa_p_bplfpb_odd_half_power_product))) /\ ((((exists pa_h_bplfpb_odd_half_power_product_partial. pa_h_bplfpb_odd_half_power_product_partial + S (pa_r_bplfpb_odd_half_power_product) = S ((S (pa_i_bplfpb_odd_half_power_product)) * pa_v_bplfpb_odd_half_power_product)) /\ exists pa_q_bplfpb_odd_half_power_product_partial. pa_u_bplfpb_odd_half_power_product = pa_q_bplfpb_odd_half_power_product_partial * S ((S (pa_i_bplfpb_odd_half_power_product)) * pa_v_bplfpb_odd_half_power_product) + (pa_r_bplfpb_odd_half_power_product))) /\ ((((exists pa_h_bplfpb_odd_half_power_product_successor. pa_h_bplfpb_odd_half_power_product_successor + S (pa_s_bplfpb_odd_half_power_product) = S ((S (S pa_i_bplfpb_odd_half_power_product)) * pa_v_bplfpb_odd_half_power_product)) /\ exists pa_q_bplfpb_odd_half_power_product_successor. pa_u_bplfpb_odd_half_power_product = pa_q_bplfpb_odd_half_power_product_successor * S ((S (S pa_i_bplfpb_odd_half_power_product)) * pa_v_bplfpb_odd_half_power_product) + (pa_s_bplfpb_odd_half_power_product))) /\ pa_s_bplfpb_odd_half_power_product = pa_r_bplfpb_odd_half_power_product * pa_p_bplfpb_odd_half_power_product))))))))
  230. 0230specialize pow_exists 4
  231. 0231specialize pow_exists x
  232. 0232exact pow_exists
  233. 0233cases hhalf_power
  234. 0234have hprefix_bound : Le(x1,x3)
    Exact native replay linehave hprefix_bound : exists g. g + x1 = x3
  235. 0235specialize IH (S x)
  236. 0236specialize IH x1
  237. 0237specialize IH x3
  238. 0238apply IH
  239. 0239exact hprefix_index_bound
  240. 0240exact hsplit_witness_witness_left
  241. 0241exact hprefix_power_witness
  242. 0242have hmiddle : ∃ c. Choose(S (x + x),x,c)
    Exact native replay linehave hmiddle : exists c. (((exists bcf_lt_gap_bplfpb_odd_middle_out_of_range. bcf_lt_gap_bplfpb_odd_middle_out_of_range + S (S (x + x)) = x) /\ c = 0) \/ ((exists bcf_le_gap_bplfpb_odd_middle_in_range. bcf_le_gap_bplfpb_odd_middle_in_range + (x) = S (x + x)) /\ (exists bcf_row_code_code_bplfpb_odd_middle bcf_row_code_scale_bplfpb_odd_middle bcf_row_scale_code_bplfpb_odd_middle bcf_row_scale_scale_bplfpb_odd_middle bcf_row_code_bplfpb_odd_middle bcf_row_scale_bplfpb_odd_middle. ((forall bcf_row_index_bplfpb_odd_middle_table. (exists bcf_lt_gap_bplfpb_odd_middle_table_row_bound. bcf_lt_gap_bplfpb_odd_middle_table_row_bound + S (bcf_row_index_bplfpb_odd_middle_table) = S (S (x + x))) -> exists bcf_row_code_bplfpb_odd_middle_table bcf_row_scale_bplfpb_odd_middle_table. ((((exists bcf_height_bplfpb_odd_middle_table_decoded_row_code. bcf_height_bplfpb_odd_middle_table_decoded_row_code + S (bcf_row_code_bplfpb_odd_middle_table) = S ((S (bcf_row_index_bplfpb_odd_middle_table)) * bcf_row_code_scale_bplfpb_odd_middle)) /\ exists bcf_quotient_bplfpb_odd_middle_table_decoded_row_code. bcf_row_code_code_bplfpb_odd_middle = bcf_quotient_bplfpb_odd_middle_table_decoded_row_code * S ((S (bcf_row_index_bplfpb_odd_middle_table)) * bcf_row_code_scale_bplfpb_odd_middle) + (bcf_row_code_bplfpb_odd_middle_table))) /\ ((((exists bcf_height_bplfpb_odd_middle_table_decoded_row_scale. bcf_height_bplfpb_odd_middle_table_decoded_row_scale + S (bcf_row_scale_bplfpb_odd_middle_table) = S ((S (bcf_row_index_bplfpb_odd_middle_table)) * bcf_row_scale_scale_bplfpb_odd_middle)) /\ exists bcf_quotient_bplfpb_odd_middle_table_decoded_row_scale. bcf_row_scale_code_bplfpb_odd_middle = bcf_quotient_bplfpb_odd_middle_table_decoded_row_scale * S ((S (bcf_row_index_bplfpb_odd_middle_table)) * bcf_row_scale_scale_bplfpb_odd_middle) + (bcf_row_scale_bplfpb_odd_middle_table))) /\ ((bcf_row_index_bplfpb_odd_middle_table = 0 /\ (forall bcf_index_bplfpb_odd_middle_table_zero_row. (exists bcf_lt_gap_bplfpb_odd_middle_table_zero_row_bound. bcf_lt_gap_bplfpb_odd_middle_table_zero_row_bound + S (bcf_index_bplfpb_odd_middle_table_zero_row) = S (S (x + x))) -> exists bcf_value_bplfpb_odd_middle_table_zero_row. ((((exists bcf_height_bplfpb_odd_middle_table_zero_row_entry. bcf_height_bplfpb_odd_middle_table_zero_row_entry + S (bcf_value_bplfpb_odd_middle_table_zero_row) = S ((S (bcf_index_bplfpb_odd_middle_table_zero_row)) * bcf_row_scale_bplfpb_odd_middle_table)) /\ exists bcf_quotient_bplfpb_odd_middle_table_zero_row_entry. bcf_row_code_bplfpb_odd_middle_table = bcf_quotient_bplfpb_odd_middle_table_zero_row_entry * S ((S (bcf_index_bplfpb_odd_middle_table_zero_row)) * bcf_row_scale_bplfpb_odd_middle_table) + (bcf_value_bplfpb_odd_middle_table_zero_row))) /\ ((bcf_index_bplfpb_odd_middle_table_zero_row = 0 /\ bcf_value_bplfpb_odd_middle_table_zero_row = 1) \/ exists bcf_predecessor_bplfpb_odd_middle_table_zero_row. bcf_index_bplfpb_odd_middle_table_zero_row = S bcf_predecessor_bplfpb_odd_middle_table_zero_row /\ bcf_value_bplfpb_odd_middle_table_zero_row = 0)))) \/ exists bcf_predecessor_bplfpb_odd_middle_table bcf_previous_code_bplfpb_odd_middle_table bcf_previous_scale_bplfpb_odd_middle_table. bcf_row_index_bplfpb_odd_middle_table = S bcf_predecessor_bplfpb_odd_middle_table /\ ((((exists bcf_height_bplfpb_odd_middle_table_decoded_previous_code. bcf_height_bplfpb_odd_middle_table_decoded_previous_code + S (bcf_previous_code_bplfpb_odd_middle_table) = S ((S (bcf_predecessor_bplfpb_odd_middle_table)) * bcf_row_code_scale_bplfpb_odd_middle)) /\ exists bcf_quotient_bplfpb_odd_middle_table_decoded_previous_code. bcf_row_code_code_bplfpb_odd_middle = bcf_quotient_bplfpb_odd_middle_table_decoded_previous_code * S ((S (bcf_predecessor_bplfpb_odd_middle_table)) * bcf_row_code_scale_bplfpb_odd_middle) + (bcf_previous_code_bplfpb_odd_middle_table))) /\ ((((exists bcf_height_bplfpb_odd_middle_table_decoded_previous_scale. bcf_height_bplfpb_odd_middle_table_decoded_previous_scale + S (bcf_previous_scale_bplfpb_odd_middle_table) = S ((S (bcf_predecessor_bplfpb_odd_middle_table)) * bcf_row_scale_scale_bplfpb_odd_middle)) /\ exists bcf_quotient_bplfpb_odd_middle_table_decoded_previous_scale. bcf_row_scale_code_bplfpb_odd_middle = bcf_quotient_bplfpb_odd_middle_table_decoded_previous_scale * S ((S (bcf_predecessor_bplfpb_odd_middle_table)) * bcf_row_scale_scale_bplfpb_odd_middle) + (bcf_previous_scale_bplfpb_odd_middle_table))) /\ (forall bcf_index_bplfpb_odd_middle_table_row_step. (exists bcf_lt_gap_bplfpb_odd_middle_table_row_step_bound. bcf_lt_gap_bplfpb_odd_middle_table_row_step_bound + S (bcf_index_bplfpb_odd_middle_table_row_step) = S (S (x + x))) -> exists bcf_value_bplfpb_odd_middle_table_row_step. ((((exists bcf_height_bplfpb_odd_middle_table_row_step_entry. bcf_height_bplfpb_odd_middle_table_row_step_entry + S (bcf_value_bplfpb_odd_middle_table_row_step) = S ((S (bcf_index_bplfpb_odd_middle_table_row_step)) * bcf_row_scale_bplfpb_odd_middle_table)) /\ exists bcf_quotient_bplfpb_odd_middle_table_row_step_entry. bcf_row_code_bplfpb_odd_middle_table = bcf_quotient_bplfpb_odd_middle_table_row_step_entry * S ((S (bcf_index_bplfpb_odd_middle_table_row_step)) * bcf_row_scale_bplfpb_odd_middle_table) + (bcf_value_bplfpb_odd_middle_table_row_step))) /\ ((bcf_index_bplfpb_odd_middle_table_row_step = 0 /\ bcf_value_bplfpb_odd_middle_table_row_step = 1) \/ exists bcf_predecessor_bplfpb_odd_middle_table_row_step bcf_left_bplfpb_odd_middle_table_row_step bcf_right_bplfpb_odd_middle_table_row_step. bcf_index_bplfpb_odd_middle_table_row_step = S bcf_predecessor_bplfpb_odd_middle_table_row_step /\ ((((exists bcf_height_bplfpb_odd_middle_table_row_step_previous_left. bcf_height_bplfpb_odd_middle_table_row_step_previous_left + S (bcf_left_bplfpb_odd_middle_table_row_step) = S ((S (bcf_predecessor_bplfpb_odd_middle_table_row_step)) * bcf_previous_scale_bplfpb_odd_middle_table)) /\ exists bcf_quotient_bplfpb_odd_middle_table_row_step_previous_left. bcf_previous_code_bplfpb_odd_middle_table = bcf_quotient_bplfpb_odd_middle_table_row_step_previous_left * S ((S (bcf_predecessor_bplfpb_odd_middle_table_row_step)) * bcf_previous_scale_bplfpb_odd_middle_table) + (bcf_left_bplfpb_odd_middle_table_row_step))) /\ ((((exists bcf_height_bplfpb_odd_middle_table_row_step_previous_right. bcf_height_bplfpb_odd_middle_table_row_step_previous_right + S (bcf_right_bplfpb_odd_middle_table_row_step) = S ((S (S (bcf_predecessor_bplfpb_odd_middle_table_row_step))) * bcf_previous_scale_bplfpb_odd_middle_table)) /\ exists bcf_quotient_bplfpb_odd_middle_table_row_step_previous_right. bcf_previous_code_bplfpb_odd_middle_table = bcf_quotient_bplfpb_odd_middle_table_row_step_previous_right * S ((S (S (bcf_predecessor_bplfpb_odd_middle_table_row_step))) * bcf_previous_scale_bplfpb_odd_middle_table) + (bcf_right_bplfpb_odd_middle_table_row_step))) /\ bcf_value_bplfpb_odd_middle_table_row_step = bcf_left_bplfpb_odd_middle_table_row_step + bcf_right_bplfpb_odd_middle_table_row_step))))))))))) /\ ((((exists bcf_height_bplfpb_odd_middle_decoded_row_code. bcf_height_bplfpb_odd_middle_decoded_row_code + S (bcf_row_code_bplfpb_odd_middle) = S ((S (S (x + x))) * bcf_row_code_scale_bplfpb_odd_middle)) /\ exists bcf_quotient_bplfpb_odd_middle_decoded_row_code. bcf_row_code_code_bplfpb_odd_middle = bcf_quotient_bplfpb_odd_middle_decoded_row_code * S ((S (S (x + x))) * bcf_row_code_scale_bplfpb_odd_middle) + (bcf_row_code_bplfpb_odd_middle))) /\ ((((exists bcf_height_bplfpb_odd_middle_decoded_row_scale. bcf_height_bplfpb_odd_middle_decoded_row_scale + S (bcf_row_scale_bplfpb_odd_middle) = S ((S (S (x + x))) * bcf_row_scale_scale_bplfpb_odd_middle)) /\ exists bcf_quotient_bplfpb_odd_middle_decoded_row_scale. bcf_row_scale_code_bplfpb_odd_middle = bcf_quotient_bplfpb_odd_middle_decoded_row_scale * S ((S (S (x + x))) * bcf_row_scale_scale_bplfpb_odd_middle) + (bcf_row_scale_bplfpb_odd_middle))) /\ (((exists bcf_height_bplfpb_odd_middle_decoded_value. bcf_height_bplfpb_odd_middle_decoded_value + S (c) = S ((S (x)) * bcf_row_scale_bplfpb_odd_middle)) /\ exists bcf_quotient_bplfpb_odd_middle_decoded_value. bcf_row_code_bplfpb_odd_middle = bcf_quotient_bplfpb_odd_middle_decoded_value * S ((S (x)) * bcf_row_scale_bplfpb_odd_middle) + (c)))))))))
  243. 0243specialize hpackage_right_left (S (x + x))
  244. 0244specialize hpackage_right_left x
  245. 0245exact hpackage_right_left
  246. 0246cases hmiddle
  247. 0247have hinterval_bound : Le(x2,x5)
    Exact native replay linehave hinterval_bound : exists g. g + x2 = x5
  248. 0248specialize hpackage_right_right_right_right_left x
  249. 0249specialize hpackage_right_right_right_right_left x2
  250. 0250specialize hpackage_right_right_right_right_left x5
  251. 0251apply hpackage_right_right_right_right_left
  252. 0252exact hsplit_witness_witness_right_left
  253. 0253exact hmiddle_witness
  254. 0254have hmiddle_bound : Le(x5,x4)
    Exact native replay linehave hmiddle_bound : exists g. g + x5 = x4
  255. 0255specialize hpackage_right_right_right_right_right x
  256. 0256specialize hpackage_right_right_right_right_right x5
  257. 0257specialize hpackage_right_right_right_right_right x4
  258. 0258apply hpackage_right_right_right_right_right
  259. 0259exact hmiddle_witness
  260. 0260exact hhalf_power_witness
  261. 0261have hinterval_power_bound : Le(x2,x4)
    Exact native replay linehave hinterval_power_bound : exists g. g + x2 = x4
  262. 0262specialize le_trans x2
  263. 0263specialize le_trans x5
  264. 0264specialize le_trans x4
  265. 0265apply le_trans
  266. 0266exact hinterval_bound
  267. 0267exact hmiddle_bound
  268. 0268have hproduct_bound : Le(x1 · x2,x3 · x4)
    Exact native replay linehave hproduct_bound : exists g. g + x1 * x2 = x3 * x4
  269. 0269specialize mul_le_mul x1
  270. 0270specialize mul_le_mul x3
  271. 0271specialize mul_le_mul x2
  272. 0272specialize mul_le_mul x4
  273. 0273apply mul_le_mul
  274. 0274exact hprefix_bound
  275. 0275exact hinterval_power_bound
  276. 0276have hpower_product : q = x3 * x4
  277. 0277specialize pow_add 4
  278. 0278specialize pow_add (S x)
  279. 0279specialize pow_add x
  280. 0280specialize pow_add n
  281. 0281specialize pow_add x3
  282. 0282specialize pow_add x4
  283. 0283specialize pow_add q
  284. 0284apply pow_add
  285. 0285exact hsum
  286. 0286exact hprefix_power_witness
  287. 0287exact hhalf_power_witness
  288. 0288exact hpower
  289. 0289rewrite hsplit_witness_witness_right_right
  290. 0290rewrite hpower_product
  291. 0291exact hproduct_bound
  292. 0292have hpredecessor_bound : Le(n,N)
    Exact native replay linehave hpredecessor_bound : exists g. g + n = N
  293. 0293specialize le_of_succ_le_succ n
  294. 0294specialize le_of_succ_le_succ N
  295. 0295apply le_of_succ_le_succ
  296. 0296exact hboundary_right
  297. 0297specialize IH n
  298. 0298specialize IH z
  299. 0299specialize IH q
  300. 0300apply IH
  301. 0301exact hpredecessor_bound
  302. 0302exact hprimorial
  303. 0303exact hpower