Exact expanded PA statement
forall p n b c d e l. (forall bls_index_b5ccpx_left. (exists bls_gap_b5ccpx_left_bound. bls_gap_b5ccpx_left_bound + S (bls_index_b5ccpx_left) = (l)) -> exists bls_power_b5ccpx_left bls_quotient_b5ccpx_left bls_remainder_b5ccpx_left. ((exists bpvi_b_bls_b5ccpx_left_power bpvi_c_bls_b5ccpx_left_power. ((forall bpvi_i_bls_b5ccpx_left_power. (exists bpvi_repeat_gap_bls_b5ccpx_left_power. bpvi_repeat_gap_bls_b5ccpx_left_power + S bpvi_i_bls_b5ccpx_left_power = S bls_index_b5ccpx_left) -> (((exists bpvi_h_bls_b5ccpx_left_power_repeat. bpvi_h_bls_b5ccpx_left_power_repeat + S (p) = S ((S (bpvi_i_bls_b5ccpx_left_power)) * bpvi_c_bls_b5ccpx_left_power)) /\ exists bpvi_q_bls_b5ccpx_left_power_repeat. bpvi_b_bls_b5ccpx_left_power = bpvi_q_bls_b5ccpx_left_power_repeat * S ((S (bpvi_i_bls_b5ccpx_left_power)) * bpvi_c_bls_b5ccpx_left_power) + (p)))) /\ (exists bpvi_u_bls_b5ccpx_left_power bpvi_v_bls_b5ccpx_left_power. ((((exists bpvi_h_bls_b5ccpx_left_power_start. bpvi_h_bls_b5ccpx_left_power_start + S (1) = S ((S (0)) * bpvi_v_bls_b5ccpx_left_power)) /\ exists bpvi_q_bls_b5ccpx_left_power_start. bpvi_u_bls_b5ccpx_left_power = bpvi_q_bls_b5ccpx_left_power_start * S ((S (0)) * bpvi_v_bls_b5ccpx_left_power) + (1))) /\ ((((exists bpvi_h_bls_b5ccpx_left_power_terminal. bpvi_h_bls_b5ccpx_left_power_terminal + S (bls_power_b5ccpx_left) = S ((S (S bls_index_b5ccpx_left)) * bpvi_v_bls_b5ccpx_left_power)) /\ exists bpvi_q_bls_b5ccpx_left_power_terminal. bpvi_u_bls_b5ccpx_left_power = bpvi_q_bls_b5ccpx_left_power_terminal * S ((S (S bls_index_b5ccpx_left)) * bpvi_v_bls_b5ccpx_left_power) + (bls_power_b5ccpx_left))) /\ forall bpvi_j_bls_b5ccpx_left_power. (exists bpvi_product_gap_bls_b5ccpx_left_power. bpvi_product_gap_bls_b5ccpx_left_power + S bpvi_j_bls_b5ccpx_left_power = S bls_index_b5ccpx_left) -> exists bpvi_factor_bls_b5ccpx_left_power bpvi_partial_bls_b5ccpx_left_power bpvi_successor_bls_b5ccpx_left_power. ((((exists bpvi_h_bls_b5ccpx_left_power_factor. bpvi_h_bls_b5ccpx_left_power_factor + S (bpvi_factor_bls_b5ccpx_left_power) = S ((S (bpvi_j_bls_b5ccpx_left_power)) * bpvi_c_bls_b5ccpx_left_power)) /\ exists bpvi_q_bls_b5ccpx_left_power_factor. bpvi_b_bls_b5ccpx_left_power = bpvi_q_bls_b5ccpx_left_power_factor * S ((S (bpvi_j_bls_b5ccpx_left_power)) * bpvi_c_bls_b5ccpx_left_power) + (bpvi_factor_bls_b5ccpx_left_power))) /\ ((((exists bpvi_h_bls_b5ccpx_left_power_partial. bpvi_h_bls_b5ccpx_left_power_partial + S (bpvi_partial_bls_b5ccpx_left_power) = S ((S (bpvi_j_bls_b5ccpx_left_power)) * bpvi_v_bls_b5ccpx_left_power)) /\ exists bpvi_q_bls_b5ccpx_left_power_partial. bpvi_u_bls_b5ccpx_left_power = bpvi_q_bls_b5ccpx_left_power_partial * S ((S (bpvi_j_bls_b5ccpx_left_power)) * bpvi_v_bls_b5ccpx_left_power) + (bpvi_partial_bls_b5ccpx_left_power))) /\ ((((exists bpvi_h_bls_b5ccpx_left_power_successor. bpvi_h_bls_b5ccpx_left_power_successor + S (bpvi_successor_bls_b5ccpx_left_power) = S ((S (S bpvi_j_bls_b5ccpx_left_power)) * bpvi_v_bls_b5ccpx_left_power)) /\ exists bpvi_q_bls_b5ccpx_left_power_successor. bpvi_u_bls_b5ccpx_left_power = bpvi_q_bls_b5ccpx_left_power_successor * S ((S (S bpvi_j_bls_b5ccpx_left_power)) * bpvi_v_bls_b5ccpx_left_power) + (bpvi_successor_bls_b5ccpx_left_power))) /\ bpvi_successor_bls_b5ccpx_left_power = bpvi_partial_bls_b5ccpx_left_power * bpvi_factor_bls_b5ccpx_left_power)))))))) /\ ((((exists ff_h_bls_b5ccpx_left_quotient_entry. ff_h_bls_b5ccpx_left_quotient_entry + S (bls_quotient_b5ccpx_left) = S ((S (bls_index_b5ccpx_left)) * c)) /\ exists ff_q_bls_b5ccpx_left_quotient_entry. b = ff_q_bls_b5ccpx_left_quotient_entry * S ((S (bls_index_b5ccpx_left)) * c) + (bls_quotient_b5ccpx_left))) /\ ((n = bls_power_b5ccpx_left * bls_quotient_b5ccpx_left + bls_remainder_b5ccpx_left /\ exists bls_remainder_gap_b5ccpx_left_division. bls_remainder_gap_b5ccpx_left_division + S (bls_remainder_b5ccpx_left) = bls_power_b5ccpx_left))))) -> (forall bls_index_b5ccpx_right. (exists bls_gap_b5ccpx_right_bound. bls_gap_b5ccpx_right_bound + S (bls_index_b5ccpx_right) = (l)) -> exists bls_power_b5ccpx_right bls_quotient_b5ccpx_right bls_remainder_b5ccpx_right. ((exists bpvi_b_bls_b5ccpx_right_power bpvi_c_bls_b5ccpx_right_power. ((forall bpvi_i_bls_b5ccpx_right_power. (exists bpvi_repeat_gap_bls_b5ccpx_right_power. bpvi_repeat_gap_bls_b5ccpx_right_power + S bpvi_i_bls_b5ccpx_right_power = S bls_index_b5ccpx_right) -> (((exists bpvi_h_bls_b5ccpx_right_power_repeat. bpvi_h_bls_b5ccpx_right_power_repeat + S (p) = S ((S (bpvi_i_bls_b5ccpx_right_power)) * bpvi_c_bls_b5ccpx_right_power)) /\ exists bpvi_q_bls_b5ccpx_right_power_repeat. bpvi_b_bls_b5ccpx_right_power = bpvi_q_bls_b5ccpx_right_power_repeat * S ((S (bpvi_i_bls_b5ccpx_right_power)) * bpvi_c_bls_b5ccpx_right_power) + (p)))) /\ (exists bpvi_u_bls_b5ccpx_right_power bpvi_v_bls_b5ccpx_right_power. ((((exists bpvi_h_bls_b5ccpx_right_power_start. bpvi_h_bls_b5ccpx_right_power_start + S (1) = S ((S (0)) * bpvi_v_bls_b5ccpx_right_power)) /\ exists bpvi_q_bls_b5ccpx_right_power_start. bpvi_u_bls_b5ccpx_right_power = bpvi_q_bls_b5ccpx_right_power_start * S ((S (0)) * bpvi_v_bls_b5ccpx_right_power) + (1))) /\ ((((exists bpvi_h_bls_b5ccpx_right_power_terminal. bpvi_h_bls_b5ccpx_right_power_terminal + S (bls_power_b5ccpx_right) = S ((S (S bls_index_b5ccpx_right)) * bpvi_v_bls_b5ccpx_right_power)) /\ exists bpvi_q_bls_b5ccpx_right_power_terminal. bpvi_u_bls_b5ccpx_right_power = bpvi_q_bls_b5ccpx_right_power_terminal * S ((S (S bls_index_b5ccpx_right)) * bpvi_v_bls_b5ccpx_right_power) + (bls_power_b5ccpx_right))) /\ forall bpvi_j_bls_b5ccpx_right_power. (exists bpvi_product_gap_bls_b5ccpx_right_power. bpvi_product_gap_bls_b5ccpx_right_power + S bpvi_j_bls_b5ccpx_right_power = S bls_index_b5ccpx_right) -> exists bpvi_factor_bls_b5ccpx_right_power bpvi_partial_bls_b5ccpx_right_power bpvi_successor_bls_b5ccpx_right_power. ((((exists bpvi_h_bls_b5ccpx_right_power_factor. bpvi_h_bls_b5ccpx_right_power_factor + S (bpvi_factor_bls_b5ccpx_right_power) = S ((S (bpvi_j_bls_b5ccpx_right_power)) * bpvi_c_bls_b5ccpx_right_power)) /\ exists bpvi_q_bls_b5ccpx_right_power_factor. bpvi_b_bls_b5ccpx_right_power = bpvi_q_bls_b5ccpx_right_power_factor * S ((S (bpvi_j_bls_b5ccpx_right_power)) * bpvi_c_bls_b5ccpx_right_power) + (bpvi_factor_bls_b5ccpx_right_power))) /\ ((((exists bpvi_h_bls_b5ccpx_right_power_partial. bpvi_h_bls_b5ccpx_right_power_partial + S (bpvi_partial_bls_b5ccpx_right_power) = S ((S (bpvi_j_bls_b5ccpx_right_power)) * bpvi_v_bls_b5ccpx_right_power)) /\ exists bpvi_q_bls_b5ccpx_right_power_partial. bpvi_u_bls_b5ccpx_right_power = bpvi_q_bls_b5ccpx_right_power_partial * S ((S (bpvi_j_bls_b5ccpx_right_power)) * bpvi_v_bls_b5ccpx_right_power) + (bpvi_partial_bls_b5ccpx_right_power))) /\ ((((exists bpvi_h_bls_b5ccpx_right_power_successor. bpvi_h_bls_b5ccpx_right_power_successor + S (bpvi_successor_bls_b5ccpx_right_power) = S ((S (S bpvi_j_bls_b5ccpx_right_power)) * bpvi_v_bls_b5ccpx_right_power)) /\ exists bpvi_q_bls_b5ccpx_right_power_successor. bpvi_u_bls_b5ccpx_right_power = bpvi_q_bls_b5ccpx_right_power_successor * S ((S (S bpvi_j_bls_b5ccpx_right_power)) * bpvi_v_bls_b5ccpx_right_power) + (bpvi_successor_bls_b5ccpx_right_power))) /\ bpvi_successor_bls_b5ccpx_right_power = bpvi_partial_bls_b5ccpx_right_power * bpvi_factor_bls_b5ccpx_right_power)))))))) /\ ((((exists ff_h_bls_b5ccpx_right_quotient_entry. ff_h_bls_b5ccpx_right_quotient_entry + S (bls_quotient_b5ccpx_right) = S ((S (bls_index_b5ccpx_right)) * e)) /\ exists ff_q_bls_b5ccpx_right_quotient_entry. d = ff_q_bls_b5ccpx_right_quotient_entry * S ((S (bls_index_b5ccpx_right)) * e) + (bls_quotient_b5ccpx_right))) /\ ((n + n = bls_power_b5ccpx_right * bls_quotient_b5ccpx_right + bls_remainder_b5ccpx_right /\ exists bls_remainder_gap_b5ccpx_right_division. bls_remainder_gap_b5ccpx_right_division + S (bls_remainder_b5ccpx_right) = bls_power_b5ccpx_right))))) -> exists f g. (forall b5cc_index_b5ccpx_result. (exists bcf_lt_gap_b5ccpx_result_bound. bcf_lt_gap_b5ccpx_result_bound + S (b5cc_index_b5ccpx_result) = l) -> exists b5cc_left_b5ccpx_result b5cc_right_b5ccpx_result b5cc_bit_b5ccpx_result. (((exists fs_h_b5cc_b5ccpx_result_left. fs_h_b5cc_b5ccpx_result_left + S (b5cc_left_b5ccpx_result) = S ((S (b5cc_index_b5ccpx_result)) * c)) /\ exists fs_q_b5cc_b5ccpx_result_left. b = fs_q_b5cc_b5ccpx_result_left * S ((S (b5cc_index_b5ccpx_result)) * c) + (b5cc_left_b5ccpx_result))) /\ ((((exists fs_h_b5cc_b5ccpx_result_right. fs_h_b5cc_b5ccpx_result_right + S (b5cc_right_b5ccpx_result) = S ((S (b5cc_index_b5ccpx_result)) * e)) /\ exists fs_q_b5cc_b5ccpx_result_right. d = fs_q_b5cc_b5ccpx_result_right * S ((S (b5cc_index_b5ccpx_result)) * e) + (b5cc_right_b5ccpx_result))) /\ ((((exists fs_h_b5cc_b5ccpx_result_bit. fs_h_b5cc_b5ccpx_result_bit + S (b5cc_bit_b5ccpx_result) = S ((S (b5cc_index_b5ccpx_result)) * g)) /\ exists fs_q_b5cc_b5ccpx_result_bit. f = fs_q_b5cc_b5ccpx_result_bit * S ((S (b5cc_index_b5ccpx_result)) * g) + (b5cc_bit_b5ccpx_result))) /\ (((b5cc_bit_b5ccpx_result = 0 /\ b5cc_right_b5ccpx_result = b5cc_left_b5ccpx_result + b5cc_left_b5ccpx_result) \/ (b5cc_bit_b5ccpx_result = 1 /\ b5cc_right_b5ccpx_result = S (b5cc_left_b5ccpx_result + b5cc_left_b5ccpx_result)))))))Structural proof guide
Doubled quotient prefixes admit a beta-coded carry prefix.
Direct prerequisites: add_eq_zero_right, succ_ne_zero, le_succ, le_refl, double_quotient_carry_choice, double_quotient_carry_prefix_extend. The authored body proceeds by structural induction (1), case analysis (3), intermediate claims (5).
Proof neighborhood
Direct dependencies
BT000L add_eq_zero_right BT000C succ_ne_zero BT0018 le_succ BT000E le_refl BT00XV double_quotient_carry_choice BT00XW double_quotient_carry_prefix_extendDirect dependents
Formal native tactic body
Dependencies are hypotheses of this body receipt. The focused endpoint audits separately check the complete empty-context certificates.
- 0001
intro p - 0002
intro n - 0003
intro b - 0004
intro c - 0005
intro d - 0006
intro e - 0007
induction l - 0008
intro hleft - 0009
intro hright - 0010
exists 0 - 0011
exists 0 - 0012
intro i - 0013
intro hi - 0014
exfalso - 0015
cases hi - 0016
have hzero : S i = 0 - 0017
specialize add_eq_zero_right x - 0018
specialize add_eq_zero_right (S i) - 0019
apply add_eq_zero_right - 0020
exact hi_witness - 0021
specialize succ_ne_zero i - 0022
apply succ_ne_zero - 0023
exact hzero - 0024
intro hleft - 0025
intro hright - 0026
have hleft_prefix : forall bls_index_b5ccpx_left_prefix. (exists bls_gap_b5ccpx_left_prefix_bound. bls_gap_b5ccpx_left_prefix_bound + S (bls_index_b5ccpx_left_prefix) = (l)) -> exists bls_power_b5ccpx_left_prefix bls_quotient_b5ccpx_left_prefix bls_remainder_b5ccpx_left_prefix. ((exists bpvi_b_bls_b5ccpx_left_prefix_power bpvi_c_bls_b5ccpx_left_prefix_power. ((forall bpvi_i_bls_b5ccpx_left_prefix_power. (exists bpvi_repeat_gap_bls_b5ccpx_left_prefix_power. bpvi_repeat_gap_bls_b5ccpx_left_prefix_power + S bpvi_i_bls_b5ccpx_left_prefix_power = S bls_index_b5ccpx_left_prefix) -> (((exists bpvi_h_bls_b5ccpx_left_prefix_power_repeat. bpvi_h_bls_b5ccpx_left_prefix_power_repeat + S (p) = S ((S (bpvi_i_bls_b5ccpx_left_prefix_power)) * bpvi_c_bls_b5ccpx_left_prefix_power)) /\ exists bpvi_q_bls_b5ccpx_left_prefix_power_repeat. bpvi_b_bls_b5ccpx_left_prefix_power = bpvi_q_bls_b5ccpx_left_prefix_power_repeat * S ((S (bpvi_i_bls_b5ccpx_left_prefix_power)) * bpvi_c_bls_b5ccpx_left_prefix_power) + (p)))) /\ (exists bpvi_u_bls_b5ccpx_left_prefix_power bpvi_v_bls_b5ccpx_left_prefix_power. ((((exists bpvi_h_bls_b5ccpx_left_prefix_power_start. bpvi_h_bls_b5ccpx_left_prefix_power_start + S (1) = S ((S (0)) * bpvi_v_bls_b5ccpx_left_prefix_power)) /\ exists bpvi_q_bls_b5ccpx_left_prefix_power_start. bpvi_u_bls_b5ccpx_left_prefix_power = bpvi_q_bls_b5ccpx_left_prefix_power_start * S ((S (0)) * bpvi_v_bls_b5ccpx_left_prefix_power) + (1))) /\ ((((exists bpvi_h_bls_b5ccpx_left_prefix_power_terminal. bpvi_h_bls_b5ccpx_left_prefix_power_terminal + S (bls_power_b5ccpx_left_prefix) = S ((S (S bls_index_b5ccpx_left_prefix)) * bpvi_v_bls_b5ccpx_left_prefix_power)) /\ exists bpvi_q_bls_b5ccpx_left_prefix_power_terminal. bpvi_u_bls_b5ccpx_left_prefix_power = bpvi_q_bls_b5ccpx_left_prefix_power_terminal * S ((S (S bls_index_b5ccpx_left_prefix)) * bpvi_v_bls_b5ccpx_left_prefix_power) + (bls_power_b5ccpx_left_prefix))) /\ forall bpvi_j_bls_b5ccpx_left_prefix_power. (exists bpvi_product_gap_bls_b5ccpx_left_prefix_power. bpvi_product_gap_bls_b5ccpx_left_prefix_power + S bpvi_j_bls_b5ccpx_left_prefix_power = S bls_index_b5ccpx_left_prefix) -> exists bpvi_factor_bls_b5ccpx_left_prefix_power bpvi_partial_bls_b5ccpx_left_prefix_power bpvi_successor_bls_b5ccpx_left_prefix_power. ((((exists bpvi_h_bls_b5ccpx_left_prefix_power_factor. bpvi_h_bls_b5ccpx_left_prefix_power_factor + S (bpvi_factor_bls_b5ccpx_left_prefix_power) = S ((S (bpvi_j_bls_b5ccpx_left_prefix_power)) * bpvi_c_bls_b5ccpx_left_prefix_power)) /\ exists bpvi_q_bls_b5ccpx_left_prefix_power_factor. bpvi_b_bls_b5ccpx_left_prefix_power = bpvi_q_bls_b5ccpx_left_prefix_power_factor * S ((S (bpvi_j_bls_b5ccpx_left_prefix_power)) * bpvi_c_bls_b5ccpx_left_prefix_power) + (bpvi_factor_bls_b5ccpx_left_prefix_power))) /\ ((((exists bpvi_h_bls_b5ccpx_left_prefix_power_partial. bpvi_h_bls_b5ccpx_left_prefix_power_partial + S (bpvi_partial_bls_b5ccpx_left_prefix_power) = S ((S (bpvi_j_bls_b5ccpx_left_prefix_power)) * bpvi_v_bls_b5ccpx_left_prefix_power)) /\ exists bpvi_q_bls_b5ccpx_left_prefix_power_partial. bpvi_u_bls_b5ccpx_left_prefix_power = bpvi_q_bls_b5ccpx_left_prefix_power_partial * S ((S (bpvi_j_bls_b5ccpx_left_prefix_power)) * bpvi_v_bls_b5ccpx_left_prefix_power) + (bpvi_partial_bls_b5ccpx_left_prefix_power))) /\ ((((exists bpvi_h_bls_b5ccpx_left_prefix_power_successor. bpvi_h_bls_b5ccpx_left_prefix_power_successor + S (bpvi_successor_bls_b5ccpx_left_prefix_power) = S ((S (S bpvi_j_bls_b5ccpx_left_prefix_power)) * bpvi_v_bls_b5ccpx_left_prefix_power)) /\ exists bpvi_q_bls_b5ccpx_left_prefix_power_successor. bpvi_u_bls_b5ccpx_left_prefix_power = bpvi_q_bls_b5ccpx_left_prefix_power_successor * S ((S (S bpvi_j_bls_b5ccpx_left_prefix_power)) * bpvi_v_bls_b5ccpx_left_prefix_power) + (bpvi_successor_bls_b5ccpx_left_prefix_power))) /\ bpvi_successor_bls_b5ccpx_left_prefix_power = bpvi_partial_bls_b5ccpx_left_prefix_power * bpvi_factor_bls_b5ccpx_left_prefix_power)))))))) /\ ((((exists ff_h_bls_b5ccpx_left_prefix_quotient_entry. ff_h_bls_b5ccpx_left_prefix_quotient_entry + S (bls_quotient_b5ccpx_left_prefix) = S ((S (bls_index_b5ccpx_left_prefix)) * c)) /\ exists ff_q_bls_b5ccpx_left_prefix_quotient_entry. b = ff_q_bls_b5ccpx_left_prefix_quotient_entry * S ((S (bls_index_b5ccpx_left_prefix)) * c) + (bls_quotient_b5ccpx_left_prefix))) /\ ((n = bls_power_b5ccpx_left_prefix * bls_quotient_b5ccpx_left_prefix + bls_remainder_b5ccpx_left_prefix /\ exists bls_remainder_gap_b5ccpx_left_prefix_division. bls_remainder_gap_b5ccpx_left_prefix_division + S (bls_remainder_b5ccpx_left_prefix) = bls_power_b5ccpx_left_prefix)))) - 0027
intro i - 0028
intro hi - 0029
specialize hleft i - 0030
apply hleft - 0031
specialize le_succ (S i) - 0032
specialize le_succ l - 0033
apply le_succ - 0034
exact hi - 0035
have hright_prefix : forall bls_index_b5ccpx_right_prefix. (exists bls_gap_b5ccpx_right_prefix_bound. bls_gap_b5ccpx_right_prefix_bound + S (bls_index_b5ccpx_right_prefix) = (l)) -> exists bls_power_b5ccpx_right_prefix bls_quotient_b5ccpx_right_prefix bls_remainder_b5ccpx_right_prefix. ((exists bpvi_b_bls_b5ccpx_right_prefix_power bpvi_c_bls_b5ccpx_right_prefix_power. ((forall bpvi_i_bls_b5ccpx_right_prefix_power. (exists bpvi_repeat_gap_bls_b5ccpx_right_prefix_power. bpvi_repeat_gap_bls_b5ccpx_right_prefix_power + S bpvi_i_bls_b5ccpx_right_prefix_power = S bls_index_b5ccpx_right_prefix) -> (((exists bpvi_h_bls_b5ccpx_right_prefix_power_repeat. bpvi_h_bls_b5ccpx_right_prefix_power_repeat + S (p) = S ((S (bpvi_i_bls_b5ccpx_right_prefix_power)) * bpvi_c_bls_b5ccpx_right_prefix_power)) /\ exists bpvi_q_bls_b5ccpx_right_prefix_power_repeat. bpvi_b_bls_b5ccpx_right_prefix_power = bpvi_q_bls_b5ccpx_right_prefix_power_repeat * S ((S (bpvi_i_bls_b5ccpx_right_prefix_power)) * bpvi_c_bls_b5ccpx_right_prefix_power) + (p)))) /\ (exists bpvi_u_bls_b5ccpx_right_prefix_power bpvi_v_bls_b5ccpx_right_prefix_power. ((((exists bpvi_h_bls_b5ccpx_right_prefix_power_start. bpvi_h_bls_b5ccpx_right_prefix_power_start + S (1) = S ((S (0)) * bpvi_v_bls_b5ccpx_right_prefix_power)) /\ exists bpvi_q_bls_b5ccpx_right_prefix_power_start. bpvi_u_bls_b5ccpx_right_prefix_power = bpvi_q_bls_b5ccpx_right_prefix_power_start * S ((S (0)) * bpvi_v_bls_b5ccpx_right_prefix_power) + (1))) /\ ((((exists bpvi_h_bls_b5ccpx_right_prefix_power_terminal. bpvi_h_bls_b5ccpx_right_prefix_power_terminal + S (bls_power_b5ccpx_right_prefix) = S ((S (S bls_index_b5ccpx_right_prefix)) * bpvi_v_bls_b5ccpx_right_prefix_power)) /\ exists bpvi_q_bls_b5ccpx_right_prefix_power_terminal. bpvi_u_bls_b5ccpx_right_prefix_power = bpvi_q_bls_b5ccpx_right_prefix_power_terminal * S ((S (S bls_index_b5ccpx_right_prefix)) * bpvi_v_bls_b5ccpx_right_prefix_power) + (bls_power_b5ccpx_right_prefix))) /\ forall bpvi_j_bls_b5ccpx_right_prefix_power. (exists bpvi_product_gap_bls_b5ccpx_right_prefix_power. bpvi_product_gap_bls_b5ccpx_right_prefix_power + S bpvi_j_bls_b5ccpx_right_prefix_power = S bls_index_b5ccpx_right_prefix) -> exists bpvi_factor_bls_b5ccpx_right_prefix_power bpvi_partial_bls_b5ccpx_right_prefix_power bpvi_successor_bls_b5ccpx_right_prefix_power. ((((exists bpvi_h_bls_b5ccpx_right_prefix_power_factor. bpvi_h_bls_b5ccpx_right_prefix_power_factor + S (bpvi_factor_bls_b5ccpx_right_prefix_power) = S ((S (bpvi_j_bls_b5ccpx_right_prefix_power)) * bpvi_c_bls_b5ccpx_right_prefix_power)) /\ exists bpvi_q_bls_b5ccpx_right_prefix_power_factor. bpvi_b_bls_b5ccpx_right_prefix_power = bpvi_q_bls_b5ccpx_right_prefix_power_factor * S ((S (bpvi_j_bls_b5ccpx_right_prefix_power)) * bpvi_c_bls_b5ccpx_right_prefix_power) + (bpvi_factor_bls_b5ccpx_right_prefix_power))) /\ ((((exists bpvi_h_bls_b5ccpx_right_prefix_power_partial. bpvi_h_bls_b5ccpx_right_prefix_power_partial + S (bpvi_partial_bls_b5ccpx_right_prefix_power) = S ((S (bpvi_j_bls_b5ccpx_right_prefix_power)) * bpvi_v_bls_b5ccpx_right_prefix_power)) /\ exists bpvi_q_bls_b5ccpx_right_prefix_power_partial. bpvi_u_bls_b5ccpx_right_prefix_power = bpvi_q_bls_b5ccpx_right_prefix_power_partial * S ((S (bpvi_j_bls_b5ccpx_right_prefix_power)) * bpvi_v_bls_b5ccpx_right_prefix_power) + (bpvi_partial_bls_b5ccpx_right_prefix_power))) /\ ((((exists bpvi_h_bls_b5ccpx_right_prefix_power_successor. bpvi_h_bls_b5ccpx_right_prefix_power_successor + S (bpvi_successor_bls_b5ccpx_right_prefix_power) = S ((S (S bpvi_j_bls_b5ccpx_right_prefix_power)) * bpvi_v_bls_b5ccpx_right_prefix_power)) /\ exists bpvi_q_bls_b5ccpx_right_prefix_power_successor. bpvi_u_bls_b5ccpx_right_prefix_power = bpvi_q_bls_b5ccpx_right_prefix_power_successor * S ((S (S bpvi_j_bls_b5ccpx_right_prefix_power)) * bpvi_v_bls_b5ccpx_right_prefix_power) + (bpvi_successor_bls_b5ccpx_right_prefix_power))) /\ bpvi_successor_bls_b5ccpx_right_prefix_power = bpvi_partial_bls_b5ccpx_right_prefix_power * bpvi_factor_bls_b5ccpx_right_prefix_power)))))))) /\ ((((exists ff_h_bls_b5ccpx_right_prefix_quotient_entry. ff_h_bls_b5ccpx_right_prefix_quotient_entry + S (bls_quotient_b5ccpx_right_prefix) = S ((S (bls_index_b5ccpx_right_prefix)) * e)) /\ exists ff_q_bls_b5ccpx_right_prefix_quotient_entry. d = ff_q_bls_b5ccpx_right_prefix_quotient_entry * S ((S (bls_index_b5ccpx_right_prefix)) * e) + (bls_quotient_b5ccpx_right_prefix))) /\ ((n + n = bls_power_b5ccpx_right_prefix * bls_quotient_b5ccpx_right_prefix + bls_remainder_b5ccpx_right_prefix /\ exists bls_remainder_gap_b5ccpx_right_prefix_division. bls_remainder_gap_b5ccpx_right_prefix_division + S (bls_remainder_b5ccpx_right_prefix) = bls_power_b5ccpx_right_prefix)))) - 0036
intro i - 0037
intro hi - 0038
specialize hright i - 0039
apply hright - 0040
specialize le_succ (S i) - 0041
specialize le_succ l - 0042
apply le_succ - 0043
exact hi - 0044
have hprefix : exists f g. forall b5cc_index_b5ccpx_previous. (exists bcf_lt_gap_b5ccpx_previous_bound. bcf_lt_gap_b5ccpx_previous_bound + S (b5cc_index_b5ccpx_previous) = l) -> exists b5cc_left_b5ccpx_previous b5cc_right_b5ccpx_previous b5cc_bit_b5ccpx_previous. (((exists fs_h_b5cc_b5ccpx_previous_left. fs_h_b5cc_b5ccpx_previous_left + S (b5cc_left_b5ccpx_previous) = S ((S (b5cc_index_b5ccpx_previous)) * c)) /\ exists fs_q_b5cc_b5ccpx_previous_left. b = fs_q_b5cc_b5ccpx_previous_left * S ((S (b5cc_index_b5ccpx_previous)) * c) + (b5cc_left_b5ccpx_previous))) /\ ((((exists fs_h_b5cc_b5ccpx_previous_right. fs_h_b5cc_b5ccpx_previous_right + S (b5cc_right_b5ccpx_previous) = S ((S (b5cc_index_b5ccpx_previous)) * e)) /\ exists fs_q_b5cc_b5ccpx_previous_right. d = fs_q_b5cc_b5ccpx_previous_right * S ((S (b5cc_index_b5ccpx_previous)) * e) + (b5cc_right_b5ccpx_previous))) /\ ((((exists fs_h_b5cc_b5ccpx_previous_bit. fs_h_b5cc_b5ccpx_previous_bit + S (b5cc_bit_b5ccpx_previous) = S ((S (b5cc_index_b5ccpx_previous)) * g)) /\ exists fs_q_b5cc_b5ccpx_previous_bit. f = fs_q_b5cc_b5ccpx_previous_bit * S ((S (b5cc_index_b5ccpx_previous)) * g) + (b5cc_bit_b5ccpx_previous))) /\ (((b5cc_bit_b5ccpx_previous = 0 /\ b5cc_right_b5ccpx_previous = b5cc_left_b5ccpx_previous + b5cc_left_b5ccpx_previous) \/ (b5cc_bit_b5ccpx_previous = 1 /\ b5cc_right_b5ccpx_previous = S (b5cc_left_b5ccpx_previous + b5cc_left_b5ccpx_previous)))))) - 0045
apply IH - 0046
exact hleft_prefix - 0047
exact hright_prefix - 0048
cases hprefix - 0049
cases hprefix_witness - 0050
have hlast : exists q Q bit. (((exists fs_h_b5ccpx_last_left. fs_h_b5ccpx_last_left + S (q) = S ((S (l)) * c)) /\ exists fs_q_b5ccpx_last_left. b = fs_q_b5ccpx_last_left * S ((S (l)) * c) + (q))) /\ ((((exists fs_h_b5ccpx_last_right. fs_h_b5ccpx_last_right + S (Q) = S ((S (l)) * e)) /\ exists fs_q_b5ccpx_last_right. d = fs_q_b5ccpx_last_right * S ((S (l)) * e) + (Q))) /\ (((bit = 0 /\ Q = q + q) \/ (bit = 1 /\ Q = S (q + q))))) - 0051
specialize double_quotient_carry_choice p - 0052
specialize double_quotient_carry_choice n - 0053
specialize double_quotient_carry_choice b - 0054
specialize double_quotient_carry_choice c - 0055
specialize double_quotient_carry_choice d - 0056
specialize double_quotient_carry_choice e - 0057
specialize double_quotient_carry_choice (S l) - 0058
specialize double_quotient_carry_choice l - 0059
apply double_quotient_carry_choice - 0060
exact hleft - 0061
exact hright - 0062
specialize le_refl (S l) - 0063
exact le_refl - 0064
specialize double_quotient_carry_prefix_extend b - 0065
specialize double_quotient_carry_prefix_extend c - 0066
specialize double_quotient_carry_prefix_extend d - 0067
specialize double_quotient_carry_prefix_extend e - 0068
specialize double_quotient_carry_prefix_extend x - 0069
specialize double_quotient_carry_prefix_extend x1 - 0070
specialize double_quotient_carry_prefix_extend l - 0071
apply double_quotient_carry_prefix_extend - 0072
exact hprefix_witness_witness - 0073
exact hlast