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
∀ p. ∀ n. ∀ b. ∀ c. ∀ d. ∀ e. ∀ l. PowerQuotPrefix(p,n,b,c,l) → PowerQuotPrefix(p,n + n,d,e,l) → ∃ x. ∃ y. ∀ z. Lt(z,l) → ∃ m. ∃ k. ∃ i. BetaAt(b,c,z,m) ∧ (BetaAt(d,e,z,k) ∧ (BetaAt(x,y,z,i) ∧ (i = 0 ∧ k = m + m ∨ i = 1 ∧ k = S (m + m))))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
6 occurrences
In local proof propositions
8 occurrences
Exact expanded native-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)))))))Proof neighborhood
Direct theorem prerequisites
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 theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. Every changed line has an exact-AST conservative-expansion receipt; the kernel still receives the immutable original tactic script.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (6)
01Fix variables and assumptionsL1–6
02Induction on lL7–9
03Construct an explicit witnessL10–11
04Fix variables and assumptionsL12–13
05Separate the logical casesL14–15
06Establish hzeroL16–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add eq zero right.
07Establish hleft_prefixL26–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hleft.
08Establish hright_prefixL35–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hright.
09Establish hprefixL44–47
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L44
have hprefix : ∃ f. ∃ g. ∀ b5cc_index_b5ccpx_previous. Lt(b5cc_index_b5ccpx_previous,l) → ∃ x. ∃ y. ∃ z. BetaAt(b,c,b5cc_index_b5ccpx_previous,x) ∧ (BetaAt(d,e,b5cc_index_b5ccpx_previous,y) ∧ (BetaAt(f,g,b5cc_index_b5ccpx_previous,z) ∧ (z = 0 ∧ y = x + x ∨ z = 1 ∧ y = S (x + x))))Definitions: Lt(b5cc_index_b5ccpx_previous,l)BetaAt(b,c,b5cc_index_b5ccpx_previous,x)BetaAt(d,e,b5cc_index_b5ccpx_previous,y)BetaAt(f,g,b5cc_index_b5ccpx_previous,z)Original native command in the exact edition - L45
apply IH - L46
exact hleft_prefix - L47
exact hright_prefix
10Separate the logical casesL48–49
11Establish hlastL50–59
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply double quotient carry choice.
- L50
have hlast : ∃ q. ∃ Q. ∃ bit. BetaAt(b,c,l,q) ∧ (BetaAt(d,e,l,Q) ∧ (bit = 0 ∧ Q = q + q ∨ bit = 1 ∧ Q = S (q + q)))Definitions: BetaAt(b,c,l,q)BetaAt(d,e,l,Q)Original native command in the exact edition - L51
specialize double_quotient_carry_choice p - L52
specialize double_quotient_carry_choice n - L53
specialize double_quotient_carry_choice b - L54
specialize double_quotient_carry_choice c - L55
specialize double_quotient_carry_choice d - L56
specialize double_quotient_carry_choice e - L57
specialize double_quotient_carry_choice (S l) - L58
specialize double_quotient_carry_choice l - L59
apply double_quotient_carry_choice
12Use earlier factsL60–69
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L60
exact hleft - L61
exact hright - L62
specialize le_refl (S l) - L63
exact le_refl - L64
specialize double_quotient_carry_prefix_extend b - L65
specialize double_quotient_carry_prefix_extend c - L66
specialize double_quotient_carry_prefix_extend d - L67
specialize double_quotient_carry_prefix_extend e - L68
specialize double_quotient_carry_prefix_extend x - L69
specialize double_quotient_carry_prefix_extend x1
Original defined command ledger · 73 lines
- 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 : PowerQuotPrefix(p,n,b,c,l)Exact native replay line
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 : PowerQuotPrefix(p,n + n,d,e,l)Exact native replay line
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 : ∃ f. ∃ g. ∀ b5cc_index_b5ccpx_previous. Lt(b5cc_index_b5ccpx_previous,l) → ∃ x. ∃ y. ∃ z. BetaAt(b,c,b5cc_index_b5ccpx_previous,x) ∧ (BetaAt(d,e,b5cc_index_b5ccpx_previous,y) ∧ (BetaAt(f,g,b5cc_index_b5ccpx_previous,z) ∧ (z = 0 ∧ y = x + x ∨ z = 1 ∧ y = S (x + x))))Exact native replay line
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 : ∃ q. ∃ Q. ∃ bit. BetaAt(b,c,l,q) ∧ (BetaAt(d,e,l,Q) ∧ (bit = 0 ∧ Q = q + q ∨ bit = 1 ∧ Q = S (q + q)))Exact native replay line
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