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. ∀ e. Prime(p) → LegendreSum(p,n,e) → ∃ x. ∃ y. PowerQuotPrefix(p,n,x,y,S n) ∧ Sum(x,y,S n,e)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
4 occurrences
In local proof propositions
6 occurrences
Exact expanded native-PA statement
forall p n e. ((~(p = 1) /\ forall frm_prime_left_blrr_tail_prime frm_prime_right_blrr_tail_prime. p = frm_prime_left_blrr_tail_prime * frm_prime_right_blrr_tail_prime -> frm_prime_left_blrr_tail_prime = 1 \/ frm_prime_right_blrr_tail_prime = 1)) -> (exists bls_code_blrr_extend_old bls_scale_blrr_extend_old. ((forall bls_index_blrr_extend_old_prefix. (exists bls_gap_blrr_extend_old_prefix_bound. bls_gap_blrr_extend_old_prefix_bound + S (bls_index_blrr_extend_old_prefix) = (n)) -> exists bls_power_blrr_extend_old_prefix bls_quotient_blrr_extend_old_prefix bls_remainder_blrr_extend_old_prefix. ((exists bpvi_b_bls_blrr_extend_old_prefix_power bpvi_c_bls_blrr_extend_old_prefix_power. ((forall bpvi_i_bls_blrr_extend_old_prefix_power. (exists bpvi_repeat_gap_bls_blrr_extend_old_prefix_power. bpvi_repeat_gap_bls_blrr_extend_old_prefix_power + S bpvi_i_bls_blrr_extend_old_prefix_power = S bls_index_blrr_extend_old_prefix) -> (((exists bpvi_h_bls_blrr_extend_old_prefix_power_repeat. bpvi_h_bls_blrr_extend_old_prefix_power_repeat + S (p) = S ((S (bpvi_i_bls_blrr_extend_old_prefix_power)) * bpvi_c_bls_blrr_extend_old_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_old_prefix_power_repeat. bpvi_b_bls_blrr_extend_old_prefix_power = bpvi_q_bls_blrr_extend_old_prefix_power_repeat * S ((S (bpvi_i_bls_blrr_extend_old_prefix_power)) * bpvi_c_bls_blrr_extend_old_prefix_power) + (p)))) /\ (exists bpvi_u_bls_blrr_extend_old_prefix_power bpvi_v_bls_blrr_extend_old_prefix_power. ((((exists bpvi_h_bls_blrr_extend_old_prefix_power_start. bpvi_h_bls_blrr_extend_old_prefix_power_start + S (1) = S ((S (0)) * bpvi_v_bls_blrr_extend_old_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_old_prefix_power_start. bpvi_u_bls_blrr_extend_old_prefix_power = bpvi_q_bls_blrr_extend_old_prefix_power_start * S ((S (0)) * bpvi_v_bls_blrr_extend_old_prefix_power) + (1))) /\ ((((exists bpvi_h_bls_blrr_extend_old_prefix_power_terminal. bpvi_h_bls_blrr_extend_old_prefix_power_terminal + S (bls_power_blrr_extend_old_prefix) = S ((S (S bls_index_blrr_extend_old_prefix)) * bpvi_v_bls_blrr_extend_old_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_old_prefix_power_terminal. bpvi_u_bls_blrr_extend_old_prefix_power = bpvi_q_bls_blrr_extend_old_prefix_power_terminal * S ((S (S bls_index_blrr_extend_old_prefix)) * bpvi_v_bls_blrr_extend_old_prefix_power) + (bls_power_blrr_extend_old_prefix))) /\ forall bpvi_j_bls_blrr_extend_old_prefix_power. (exists bpvi_product_gap_bls_blrr_extend_old_prefix_power. bpvi_product_gap_bls_blrr_extend_old_prefix_power + S bpvi_j_bls_blrr_extend_old_prefix_power = S bls_index_blrr_extend_old_prefix) -> exists bpvi_factor_bls_blrr_extend_old_prefix_power bpvi_partial_bls_blrr_extend_old_prefix_power bpvi_successor_bls_blrr_extend_old_prefix_power. ((((exists bpvi_h_bls_blrr_extend_old_prefix_power_factor. bpvi_h_bls_blrr_extend_old_prefix_power_factor + S (bpvi_factor_bls_blrr_extend_old_prefix_power) = S ((S (bpvi_j_bls_blrr_extend_old_prefix_power)) * bpvi_c_bls_blrr_extend_old_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_old_prefix_power_factor. bpvi_b_bls_blrr_extend_old_prefix_power = bpvi_q_bls_blrr_extend_old_prefix_power_factor * S ((S (bpvi_j_bls_blrr_extend_old_prefix_power)) * bpvi_c_bls_blrr_extend_old_prefix_power) + (bpvi_factor_bls_blrr_extend_old_prefix_power))) /\ ((((exists bpvi_h_bls_blrr_extend_old_prefix_power_partial. bpvi_h_bls_blrr_extend_old_prefix_power_partial + S (bpvi_partial_bls_blrr_extend_old_prefix_power) = S ((S (bpvi_j_bls_blrr_extend_old_prefix_power)) * bpvi_v_bls_blrr_extend_old_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_old_prefix_power_partial. bpvi_u_bls_blrr_extend_old_prefix_power = bpvi_q_bls_blrr_extend_old_prefix_power_partial * S ((S (bpvi_j_bls_blrr_extend_old_prefix_power)) * bpvi_v_bls_blrr_extend_old_prefix_power) + (bpvi_partial_bls_blrr_extend_old_prefix_power))) /\ ((((exists bpvi_h_bls_blrr_extend_old_prefix_power_successor. bpvi_h_bls_blrr_extend_old_prefix_power_successor + S (bpvi_successor_bls_blrr_extend_old_prefix_power) = S ((S (S bpvi_j_bls_blrr_extend_old_prefix_power)) * bpvi_v_bls_blrr_extend_old_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_old_prefix_power_successor. bpvi_u_bls_blrr_extend_old_prefix_power = bpvi_q_bls_blrr_extend_old_prefix_power_successor * S ((S (S bpvi_j_bls_blrr_extend_old_prefix_power)) * bpvi_v_bls_blrr_extend_old_prefix_power) + (bpvi_successor_bls_blrr_extend_old_prefix_power))) /\ bpvi_successor_bls_blrr_extend_old_prefix_power = bpvi_partial_bls_blrr_extend_old_prefix_power * bpvi_factor_bls_blrr_extend_old_prefix_power)))))))) /\ ((((exists ff_h_bls_blrr_extend_old_prefix_quotient_entry. ff_h_bls_blrr_extend_old_prefix_quotient_entry + S (bls_quotient_blrr_extend_old_prefix) = S ((S (bls_index_blrr_extend_old_prefix)) * bls_scale_blrr_extend_old)) /\ exists ff_q_bls_blrr_extend_old_prefix_quotient_entry. bls_code_blrr_extend_old = ff_q_bls_blrr_extend_old_prefix_quotient_entry * S ((S (bls_index_blrr_extend_old_prefix)) * bls_scale_blrr_extend_old) + (bls_quotient_blrr_extend_old_prefix))) /\ ((n = bls_power_blrr_extend_old_prefix * bls_quotient_blrr_extend_old_prefix + bls_remainder_blrr_extend_old_prefix /\ exists bls_remainder_gap_blrr_extend_old_prefix_division. bls_remainder_gap_blrr_extend_old_prefix_division + S (bls_remainder_blrr_extend_old_prefix) = bls_power_blrr_extend_old_prefix))))) /\ (exists ff_u_bls_blrr_extend_old_sum ff_v_bls_blrr_extend_old_sum. ((((exists ff_h_bls_blrr_extend_old_sum_start. ff_h_bls_blrr_extend_old_sum_start + S (0) = S ((S (0)) * ff_v_bls_blrr_extend_old_sum)) /\ exists ff_q_bls_blrr_extend_old_sum_start. ff_u_bls_blrr_extend_old_sum = ff_q_bls_blrr_extend_old_sum_start * S ((S (0)) * ff_v_bls_blrr_extend_old_sum) + (0))) /\ ((((exists ff_h_bls_blrr_extend_old_sum_terminal. ff_h_bls_blrr_extend_old_sum_terminal + S (e) = S ((S (n)) * ff_v_bls_blrr_extend_old_sum)) /\ exists ff_q_bls_blrr_extend_old_sum_terminal. ff_u_bls_blrr_extend_old_sum = ff_q_bls_blrr_extend_old_sum_terminal * S ((S (n)) * ff_v_bls_blrr_extend_old_sum) + (e))) /\ forall ff_i_bls_blrr_extend_old_sum. (exists ff_lt_bls_blrr_extend_old_sum_bound. ff_lt_bls_blrr_extend_old_sum_bound + S ff_i_bls_blrr_extend_old_sum = n) -> exists ff_a_bls_blrr_extend_old_sum ff_r_bls_blrr_extend_old_sum ff_s_bls_blrr_extend_old_sum. ((((exists ff_h_bls_blrr_extend_old_sum_summand. ff_h_bls_blrr_extend_old_sum_summand + S (ff_a_bls_blrr_extend_old_sum) = S ((S (ff_i_bls_blrr_extend_old_sum)) * bls_scale_blrr_extend_old)) /\ exists ff_q_bls_blrr_extend_old_sum_summand. bls_code_blrr_extend_old = ff_q_bls_blrr_extend_old_sum_summand * S ((S (ff_i_bls_blrr_extend_old_sum)) * bls_scale_blrr_extend_old) + (ff_a_bls_blrr_extend_old_sum))) /\ ((((exists ff_h_bls_blrr_extend_old_sum_partial. ff_h_bls_blrr_extend_old_sum_partial + S (ff_r_bls_blrr_extend_old_sum) = S ((S (ff_i_bls_blrr_extend_old_sum)) * ff_v_bls_blrr_extend_old_sum)) /\ exists ff_q_bls_blrr_extend_old_sum_partial. ff_u_bls_blrr_extend_old_sum = ff_q_bls_blrr_extend_old_sum_partial * S ((S (ff_i_bls_blrr_extend_old_sum)) * ff_v_bls_blrr_extend_old_sum) + (ff_r_bls_blrr_extend_old_sum))) /\ ((((exists ff_h_bls_blrr_extend_old_sum_successor. ff_h_bls_blrr_extend_old_sum_successor + S (ff_s_bls_blrr_extend_old_sum) = S ((S (S ff_i_bls_blrr_extend_old_sum)) * ff_v_bls_blrr_extend_old_sum)) /\ exists ff_q_bls_blrr_extend_old_sum_successor. ff_u_bls_blrr_extend_old_sum = ff_q_bls_blrr_extend_old_sum_successor * S ((S (S ff_i_bls_blrr_extend_old_sum)) * ff_v_bls_blrr_extend_old_sum) + (ff_s_bls_blrr_extend_old_sum))) /\ ff_s_bls_blrr_extend_old_sum = ff_r_bls_blrr_extend_old_sum + ff_a_bls_blrr_extend_old_sum)))))))) -> (exists b c. ((forall bls_index_blrr_extend_prefix. (exists bls_gap_blrr_extend_prefix_bound. bls_gap_blrr_extend_prefix_bound + S (bls_index_blrr_extend_prefix) = (S n)) -> exists bls_power_blrr_extend_prefix bls_quotient_blrr_extend_prefix bls_remainder_blrr_extend_prefix. ((exists bpvi_b_bls_blrr_extend_prefix_power bpvi_c_bls_blrr_extend_prefix_power. ((forall bpvi_i_bls_blrr_extend_prefix_power. (exists bpvi_repeat_gap_bls_blrr_extend_prefix_power. bpvi_repeat_gap_bls_blrr_extend_prefix_power + S bpvi_i_bls_blrr_extend_prefix_power = S bls_index_blrr_extend_prefix) -> (((exists bpvi_h_bls_blrr_extend_prefix_power_repeat. bpvi_h_bls_blrr_extend_prefix_power_repeat + S (p) = S ((S (bpvi_i_bls_blrr_extend_prefix_power)) * bpvi_c_bls_blrr_extend_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_prefix_power_repeat. bpvi_b_bls_blrr_extend_prefix_power = bpvi_q_bls_blrr_extend_prefix_power_repeat * S ((S (bpvi_i_bls_blrr_extend_prefix_power)) * bpvi_c_bls_blrr_extend_prefix_power) + (p)))) /\ (exists bpvi_u_bls_blrr_extend_prefix_power bpvi_v_bls_blrr_extend_prefix_power. ((((exists bpvi_h_bls_blrr_extend_prefix_power_start. bpvi_h_bls_blrr_extend_prefix_power_start + S (1) = S ((S (0)) * bpvi_v_bls_blrr_extend_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_prefix_power_start. bpvi_u_bls_blrr_extend_prefix_power = bpvi_q_bls_blrr_extend_prefix_power_start * S ((S (0)) * bpvi_v_bls_blrr_extend_prefix_power) + (1))) /\ ((((exists bpvi_h_bls_blrr_extend_prefix_power_terminal. bpvi_h_bls_blrr_extend_prefix_power_terminal + S (bls_power_blrr_extend_prefix) = S ((S (S bls_index_blrr_extend_prefix)) * bpvi_v_bls_blrr_extend_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_prefix_power_terminal. bpvi_u_bls_blrr_extend_prefix_power = bpvi_q_bls_blrr_extend_prefix_power_terminal * S ((S (S bls_index_blrr_extend_prefix)) * bpvi_v_bls_blrr_extend_prefix_power) + (bls_power_blrr_extend_prefix))) /\ forall bpvi_j_bls_blrr_extend_prefix_power. (exists bpvi_product_gap_bls_blrr_extend_prefix_power. bpvi_product_gap_bls_blrr_extend_prefix_power + S bpvi_j_bls_blrr_extend_prefix_power = S bls_index_blrr_extend_prefix) -> exists bpvi_factor_bls_blrr_extend_prefix_power bpvi_partial_bls_blrr_extend_prefix_power bpvi_successor_bls_blrr_extend_prefix_power. ((((exists bpvi_h_bls_blrr_extend_prefix_power_factor. bpvi_h_bls_blrr_extend_prefix_power_factor + S (bpvi_factor_bls_blrr_extend_prefix_power) = S ((S (bpvi_j_bls_blrr_extend_prefix_power)) * bpvi_c_bls_blrr_extend_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_prefix_power_factor. bpvi_b_bls_blrr_extend_prefix_power = bpvi_q_bls_blrr_extend_prefix_power_factor * S ((S (bpvi_j_bls_blrr_extend_prefix_power)) * bpvi_c_bls_blrr_extend_prefix_power) + (bpvi_factor_bls_blrr_extend_prefix_power))) /\ ((((exists bpvi_h_bls_blrr_extend_prefix_power_partial. bpvi_h_bls_blrr_extend_prefix_power_partial + S (bpvi_partial_bls_blrr_extend_prefix_power) = S ((S (bpvi_j_bls_blrr_extend_prefix_power)) * bpvi_v_bls_blrr_extend_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_prefix_power_partial. bpvi_u_bls_blrr_extend_prefix_power = bpvi_q_bls_blrr_extend_prefix_power_partial * S ((S (bpvi_j_bls_blrr_extend_prefix_power)) * bpvi_v_bls_blrr_extend_prefix_power) + (bpvi_partial_bls_blrr_extend_prefix_power))) /\ ((((exists bpvi_h_bls_blrr_extend_prefix_power_successor. bpvi_h_bls_blrr_extend_prefix_power_successor + S (bpvi_successor_bls_blrr_extend_prefix_power) = S ((S (S bpvi_j_bls_blrr_extend_prefix_power)) * bpvi_v_bls_blrr_extend_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_prefix_power_successor. bpvi_u_bls_blrr_extend_prefix_power = bpvi_q_bls_blrr_extend_prefix_power_successor * S ((S (S bpvi_j_bls_blrr_extend_prefix_power)) * bpvi_v_bls_blrr_extend_prefix_power) + (bpvi_successor_bls_blrr_extend_prefix_power))) /\ bpvi_successor_bls_blrr_extend_prefix_power = bpvi_partial_bls_blrr_extend_prefix_power * bpvi_factor_bls_blrr_extend_prefix_power)))))))) /\ ((((exists ff_h_bls_blrr_extend_prefix_quotient_entry. ff_h_bls_blrr_extend_prefix_quotient_entry + S (bls_quotient_blrr_extend_prefix) = S ((S (bls_index_blrr_extend_prefix)) * c)) /\ exists ff_q_bls_blrr_extend_prefix_quotient_entry. b = ff_q_bls_blrr_extend_prefix_quotient_entry * S ((S (bls_index_blrr_extend_prefix)) * c) + (bls_quotient_blrr_extend_prefix))) /\ ((n = bls_power_blrr_extend_prefix * bls_quotient_blrr_extend_prefix + bls_remainder_blrr_extend_prefix /\ exists bls_remainder_gap_blrr_extend_prefix_division. bls_remainder_gap_blrr_extend_prefix_division + S (bls_remainder_blrr_extend_prefix) = bls_power_blrr_extend_prefix))))) /\ (exists fs_u_blrr_extend_sum fs_v_blrr_extend_sum. ((((exists fs_h_blrr_extend_sum_body_start. fs_h_blrr_extend_sum_body_start + S (0) = S ((S (0)) * fs_v_blrr_extend_sum)) /\ exists fs_q_blrr_extend_sum_body_start. fs_u_blrr_extend_sum = fs_q_blrr_extend_sum_body_start * S ((S (0)) * fs_v_blrr_extend_sum) + (0))) /\ ((((exists fs_h_blrr_extend_sum_body_terminal. fs_h_blrr_extend_sum_body_terminal + S (e) = S ((S (S n)) * fs_v_blrr_extend_sum)) /\ exists fs_q_blrr_extend_sum_body_terminal. fs_u_blrr_extend_sum = fs_q_blrr_extend_sum_body_terminal * S ((S (S n)) * fs_v_blrr_extend_sum) + (e))) /\ forall fs_i_blrr_extend_sum_body_steps. (exists fs_lt_blrr_extend_sum_body_steps_bound. fs_lt_blrr_extend_sum_body_steps_bound + S fs_i_blrr_extend_sum_body_steps = S n) -> exists fs_a_blrr_extend_sum_body_steps fs_r_blrr_extend_sum_body_steps fs_s_blrr_extend_sum_body_steps. ((((exists fs_h_blrr_extend_sum_body_steps_summand. fs_h_blrr_extend_sum_body_steps_summand + S (fs_a_blrr_extend_sum_body_steps) = S ((S (fs_i_blrr_extend_sum_body_steps)) * c)) /\ exists fs_q_blrr_extend_sum_body_steps_summand. b = fs_q_blrr_extend_sum_body_steps_summand * S ((S (fs_i_blrr_extend_sum_body_steps)) * c) + (fs_a_blrr_extend_sum_body_steps))) /\ ((((exists fs_h_blrr_extend_sum_body_steps_partial. fs_h_blrr_extend_sum_body_steps_partial + S (fs_r_blrr_extend_sum_body_steps) = S ((S (fs_i_blrr_extend_sum_body_steps)) * fs_v_blrr_extend_sum)) /\ exists fs_q_blrr_extend_sum_body_steps_partial. fs_u_blrr_extend_sum = fs_q_blrr_extend_sum_body_steps_partial * S ((S (fs_i_blrr_extend_sum_body_steps)) * fs_v_blrr_extend_sum) + (fs_r_blrr_extend_sum_body_steps))) /\ ((((exists fs_h_blrr_extend_sum_body_steps_successor. fs_h_blrr_extend_sum_body_steps_successor + S (fs_s_blrr_extend_sum_body_steps) = S ((S (S fs_i_blrr_extend_sum_body_steps)) * fs_v_blrr_extend_sum)) /\ exists fs_q_blrr_extend_sum_body_steps_successor. fs_u_blrr_extend_sum = fs_q_blrr_extend_sum_body_steps_successor * S ((S (S fs_i_blrr_extend_sum_body_steps)) * fs_v_blrr_extend_sum) + (fs_s_blrr_extend_sum_body_steps))) /\ fs_s_blrr_extend_sum_body_steps = fs_r_blrr_extend_sum_body_steps + fs_a_blrr_extend_sum_body_steps))))))))Proof neighborhood
Direct theorem prerequisites
BT00S0 prime_power_quotient_prefix_exists BT00SS prime_power_quotient_prefix_last_zero BT008A beta_sum_exists BT00SR beta_sum_succ_last_zero BT0018 le_succ BT00S3 legendre_sum_functionalDirect 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–5
02Establish hprefixL6–11
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime power quotient prefix exists.
- L6
have hprefix : ∃ b. ∃ c. PowerQuotPrefix(p,n,b,c,S n)Definitions: PowerQuotPrefix(p,n,b,c,S n)Original native command in the exact edition - L7
specialize prime_power_quotient_prefix_exists p - L8
specialize prime_power_quotient_prefix_exists n - L9
specialize prime_power_quotient_prefix_exists (S n) - L10
apply prime_power_quotient_prefix_exists - L11
exact hp
03Separate the logical casesL12–13
04Establish hzeroL14–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime power quotient prefix last zero.
- L14
have hzero : BetaAt(x,x1,n,0)Definitions: BetaAt(x,x1,n,0)Original native command in the exact edition - L15
specialize prime_power_quotient_prefix_last_zero p - L16
specialize prime_power_quotient_prefix_last_zero n - L17
specialize prime_power_quotient_prefix_last_zero x - L18
specialize prime_power_quotient_prefix_last_zero x1 - L19
apply prime_power_quotient_prefix_last_zero - L20
exact hp - L21
exact hprefix_witness_witness
05Establish hsuccessor_sumL22–26
Establish this local claim before using it. It is not an additional assumption.
- L22
have hsuccessor_sum : ∃ q. Sum(x,x1,S n,q)Definitions: Sum(x,x1,S n,q)Original native command in the exact edition - L23
specialize beta_sum_exists x - L24
specialize beta_sum_exists x1 - L25
specialize beta_sum_exists (S n) - L26
exact beta_sum_exists
06Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
cases hsuccessor_sum
07Establish hpredecessor_sumL28–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum succ last zero.
- L28
have hpredecessor_sum : Sum(x,x1,n,x2)Definitions: Sum(x,x1,n,x2)Original native command in the exact edition - L29
specialize beta_sum_succ_last_zero x - L30
specialize beta_sum_succ_last_zero x1 - L31
specialize beta_sum_succ_last_zero n - L32
specialize beta_sum_succ_last_zero x2 - L33
apply beta_sum_succ_last_zero - L34
exact hsuccessor_sum_witness - L35
exact hzero
08Establish hrestrictedL36–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprefix witness witness.
- L36
have hrestricted : PowerQuotPrefix(p,n,x,x1,n)Definitions: PowerQuotPrefix(p,n,x,x1,n)Original native command in the exact edition - L37
intro i - L38
intro hi - L39
specialize hprefix_witness_witness i - L40
apply hprefix_witness_witness - L41
specialize le_succ (S i) - L42
specialize le_succ n - L43
apply le_succ - L44
exact hi
09Establish hcompetingL45–45
Establish this local claim before using it. It is not an additional assumption.
- L45
have hcompeting : LegendreSum(p,n,x2)Definitions: LegendreSum(p,n,x2)Original native command in the exact edition
10Construct an explicit witnessL46–47
11Separate the logical casesL48–48
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L48
split
12Use earlier factsL49–50
13Establish heqL51–58
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply legendre sum functional.
14Construct an explicit witnessL59–60
15Separate the logical casesL61–61
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L61
split
16Use earlier factsL62–62
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L62
exact hprefix_witness_witness
17Calculate and transport equalitiesL63–64
18Use earlier factsL65–65
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L65
exact hsuccessor_sum_witness
Original defined command ledger · 65 lines
- 0001
intro p - 0002
intro n - 0003
intro e - 0004
intro hp - 0005
intro hlegendre - 0006
have hprefix : ∃ b. ∃ c. PowerQuotPrefix(p,n,b,c,S n)Exact native replay line
have hprefix : exists b c. (forall bls_index_blrr_extend_prefix. (exists bls_gap_blrr_extend_prefix_bound. bls_gap_blrr_extend_prefix_bound + S (bls_index_blrr_extend_prefix) = (S n)) -> exists bls_power_blrr_extend_prefix bls_quotient_blrr_extend_prefix bls_remainder_blrr_extend_prefix. ((exists bpvi_b_bls_blrr_extend_prefix_power bpvi_c_bls_blrr_extend_prefix_power. ((forall bpvi_i_bls_blrr_extend_prefix_power. (exists bpvi_repeat_gap_bls_blrr_extend_prefix_power. bpvi_repeat_gap_bls_blrr_extend_prefix_power + S bpvi_i_bls_blrr_extend_prefix_power = S bls_index_blrr_extend_prefix) -> (((exists bpvi_h_bls_blrr_extend_prefix_power_repeat. bpvi_h_bls_blrr_extend_prefix_power_repeat + S (p) = S ((S (bpvi_i_bls_blrr_extend_prefix_power)) * bpvi_c_bls_blrr_extend_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_prefix_power_repeat. bpvi_b_bls_blrr_extend_prefix_power = bpvi_q_bls_blrr_extend_prefix_power_repeat * S ((S (bpvi_i_bls_blrr_extend_prefix_power)) * bpvi_c_bls_blrr_extend_prefix_power) + (p)))) /\ (exists bpvi_u_bls_blrr_extend_prefix_power bpvi_v_bls_blrr_extend_prefix_power. ((((exists bpvi_h_bls_blrr_extend_prefix_power_start. bpvi_h_bls_blrr_extend_prefix_power_start + S (1) = S ((S (0)) * bpvi_v_bls_blrr_extend_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_prefix_power_start. bpvi_u_bls_blrr_extend_prefix_power = bpvi_q_bls_blrr_extend_prefix_power_start * S ((S (0)) * bpvi_v_bls_blrr_extend_prefix_power) + (1))) /\ ((((exists bpvi_h_bls_blrr_extend_prefix_power_terminal. bpvi_h_bls_blrr_extend_prefix_power_terminal + S (bls_power_blrr_extend_prefix) = S ((S (S bls_index_blrr_extend_prefix)) * bpvi_v_bls_blrr_extend_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_prefix_power_terminal. bpvi_u_bls_blrr_extend_prefix_power = bpvi_q_bls_blrr_extend_prefix_power_terminal * S ((S (S bls_index_blrr_extend_prefix)) * bpvi_v_bls_blrr_extend_prefix_power) + (bls_power_blrr_extend_prefix))) /\ forall bpvi_j_bls_blrr_extend_prefix_power. (exists bpvi_product_gap_bls_blrr_extend_prefix_power. bpvi_product_gap_bls_blrr_extend_prefix_power + S bpvi_j_bls_blrr_extend_prefix_power = S bls_index_blrr_extend_prefix) -> exists bpvi_factor_bls_blrr_extend_prefix_power bpvi_partial_bls_blrr_extend_prefix_power bpvi_successor_bls_blrr_extend_prefix_power. ((((exists bpvi_h_bls_blrr_extend_prefix_power_factor. bpvi_h_bls_blrr_extend_prefix_power_factor + S (bpvi_factor_bls_blrr_extend_prefix_power) = S ((S (bpvi_j_bls_blrr_extend_prefix_power)) * bpvi_c_bls_blrr_extend_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_prefix_power_factor. bpvi_b_bls_blrr_extend_prefix_power = bpvi_q_bls_blrr_extend_prefix_power_factor * S ((S (bpvi_j_bls_blrr_extend_prefix_power)) * bpvi_c_bls_blrr_extend_prefix_power) + (bpvi_factor_bls_blrr_extend_prefix_power))) /\ ((((exists bpvi_h_bls_blrr_extend_prefix_power_partial. bpvi_h_bls_blrr_extend_prefix_power_partial + S (bpvi_partial_bls_blrr_extend_prefix_power) = S ((S (bpvi_j_bls_blrr_extend_prefix_power)) * bpvi_v_bls_blrr_extend_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_prefix_power_partial. bpvi_u_bls_blrr_extend_prefix_power = bpvi_q_bls_blrr_extend_prefix_power_partial * S ((S (bpvi_j_bls_blrr_extend_prefix_power)) * bpvi_v_bls_blrr_extend_prefix_power) + (bpvi_partial_bls_blrr_extend_prefix_power))) /\ ((((exists bpvi_h_bls_blrr_extend_prefix_power_successor. bpvi_h_bls_blrr_extend_prefix_power_successor + S (bpvi_successor_bls_blrr_extend_prefix_power) = S ((S (S bpvi_j_bls_blrr_extend_prefix_power)) * bpvi_v_bls_blrr_extend_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_prefix_power_successor. bpvi_u_bls_blrr_extend_prefix_power = bpvi_q_bls_blrr_extend_prefix_power_successor * S ((S (S bpvi_j_bls_blrr_extend_prefix_power)) * bpvi_v_bls_blrr_extend_prefix_power) + (bpvi_successor_bls_blrr_extend_prefix_power))) /\ bpvi_successor_bls_blrr_extend_prefix_power = bpvi_partial_bls_blrr_extend_prefix_power * bpvi_factor_bls_blrr_extend_prefix_power)))))))) /\ ((((exists ff_h_bls_blrr_extend_prefix_quotient_entry. ff_h_bls_blrr_extend_prefix_quotient_entry + S (bls_quotient_blrr_extend_prefix) = S ((S (bls_index_blrr_extend_prefix)) * c)) /\ exists ff_q_bls_blrr_extend_prefix_quotient_entry. b = ff_q_bls_blrr_extend_prefix_quotient_entry * S ((S (bls_index_blrr_extend_prefix)) * c) + (bls_quotient_blrr_extend_prefix))) /\ ((n = bls_power_blrr_extend_prefix * bls_quotient_blrr_extend_prefix + bls_remainder_blrr_extend_prefix /\ exists bls_remainder_gap_blrr_extend_prefix_division. bls_remainder_gap_blrr_extend_prefix_division + S (bls_remainder_blrr_extend_prefix) = bls_power_blrr_extend_prefix))))) - 0007
specialize prime_power_quotient_prefix_exists p - 0008
specialize prime_power_quotient_prefix_exists n - 0009
specialize prime_power_quotient_prefix_exists (S n) - 0010
apply prime_power_quotient_prefix_exists - 0011
exact hp - 0012
cases hprefix - 0013
cases hprefix_witness - 0014
have hzero : BetaAt(x,x1,n,0)Exact native replay line
have hzero : ((exists fs_h_blrr_extend_last_zero. fs_h_blrr_extend_last_zero + S (0) = S ((S (n)) * x1)) /\ exists fs_q_blrr_extend_last_zero. x = fs_q_blrr_extend_last_zero * S ((S (n)) * x1) + (0)) - 0015
specialize prime_power_quotient_prefix_last_zero p - 0016
specialize prime_power_quotient_prefix_last_zero n - 0017
specialize prime_power_quotient_prefix_last_zero x - 0018
specialize prime_power_quotient_prefix_last_zero x1 - 0019
apply prime_power_quotient_prefix_last_zero - 0020
exact hp - 0021
exact hprefix_witness_witness - 0022
have hsuccessor_sum : ∃ q. Sum(x,x1,S n,q)Exact native replay line
have hsuccessor_sum : exists q. exists fs_u_blrr_extend_sum_exists fs_v_blrr_extend_sum_exists. ((((exists fs_h_blrr_extend_sum_exists_body_start. fs_h_blrr_extend_sum_exists_body_start + S (0) = S ((S (0)) * fs_v_blrr_extend_sum_exists)) /\ exists fs_q_blrr_extend_sum_exists_body_start. fs_u_blrr_extend_sum_exists = fs_q_blrr_extend_sum_exists_body_start * S ((S (0)) * fs_v_blrr_extend_sum_exists) + (0))) /\ ((((exists fs_h_blrr_extend_sum_exists_body_terminal. fs_h_blrr_extend_sum_exists_body_terminal + S (q) = S ((S (S n)) * fs_v_blrr_extend_sum_exists)) /\ exists fs_q_blrr_extend_sum_exists_body_terminal. fs_u_blrr_extend_sum_exists = fs_q_blrr_extend_sum_exists_body_terminal * S ((S (S n)) * fs_v_blrr_extend_sum_exists) + (q))) /\ forall fs_i_blrr_extend_sum_exists_body_steps. (exists fs_lt_blrr_extend_sum_exists_body_steps_bound. fs_lt_blrr_extend_sum_exists_body_steps_bound + S fs_i_blrr_extend_sum_exists_body_steps = S n) -> exists fs_a_blrr_extend_sum_exists_body_steps fs_r_blrr_extend_sum_exists_body_steps fs_s_blrr_extend_sum_exists_body_steps. ((((exists fs_h_blrr_extend_sum_exists_body_steps_summand. fs_h_blrr_extend_sum_exists_body_steps_summand + S (fs_a_blrr_extend_sum_exists_body_steps) = S ((S (fs_i_blrr_extend_sum_exists_body_steps)) * x1)) /\ exists fs_q_blrr_extend_sum_exists_body_steps_summand. x = fs_q_blrr_extend_sum_exists_body_steps_summand * S ((S (fs_i_blrr_extend_sum_exists_body_steps)) * x1) + (fs_a_blrr_extend_sum_exists_body_steps))) /\ ((((exists fs_h_blrr_extend_sum_exists_body_steps_partial. fs_h_blrr_extend_sum_exists_body_steps_partial + S (fs_r_blrr_extend_sum_exists_body_steps) = S ((S (fs_i_blrr_extend_sum_exists_body_steps)) * fs_v_blrr_extend_sum_exists)) /\ exists fs_q_blrr_extend_sum_exists_body_steps_partial. fs_u_blrr_extend_sum_exists = fs_q_blrr_extend_sum_exists_body_steps_partial * S ((S (fs_i_blrr_extend_sum_exists_body_steps)) * fs_v_blrr_extend_sum_exists) + (fs_r_blrr_extend_sum_exists_body_steps))) /\ ((((exists fs_h_blrr_extend_sum_exists_body_steps_successor. fs_h_blrr_extend_sum_exists_body_steps_successor + S (fs_s_blrr_extend_sum_exists_body_steps) = S ((S (S fs_i_blrr_extend_sum_exists_body_steps)) * fs_v_blrr_extend_sum_exists)) /\ exists fs_q_blrr_extend_sum_exists_body_steps_successor. fs_u_blrr_extend_sum_exists = fs_q_blrr_extend_sum_exists_body_steps_successor * S ((S (S fs_i_blrr_extend_sum_exists_body_steps)) * fs_v_blrr_extend_sum_exists) + (fs_s_blrr_extend_sum_exists_body_steps))) /\ fs_s_blrr_extend_sum_exists_body_steps = fs_r_blrr_extend_sum_exists_body_steps + fs_a_blrr_extend_sum_exists_body_steps))))) - 0023
specialize beta_sum_exists x - 0024
specialize beta_sum_exists x1 - 0025
specialize beta_sum_exists (S n) - 0026
exact beta_sum_exists - 0027
cases hsuccessor_sum - 0028
have hpredecessor_sum : Sum(x,x1,n,x2)Exact native replay line
have hpredecessor_sum : exists ff_u_blrr_extend_predecessor_sum ff_v_blrr_extend_predecessor_sum. ((((exists ff_h_blrr_extend_predecessor_sum_start. ff_h_blrr_extend_predecessor_sum_start + S (0) = S ((S (0)) * ff_v_blrr_extend_predecessor_sum)) /\ exists ff_q_blrr_extend_predecessor_sum_start. ff_u_blrr_extend_predecessor_sum = ff_q_blrr_extend_predecessor_sum_start * S ((S (0)) * ff_v_blrr_extend_predecessor_sum) + (0))) /\ ((((exists ff_h_blrr_extend_predecessor_sum_terminal. ff_h_blrr_extend_predecessor_sum_terminal + S (x2) = S ((S (n)) * ff_v_blrr_extend_predecessor_sum)) /\ exists ff_q_blrr_extend_predecessor_sum_terminal. ff_u_blrr_extend_predecessor_sum = ff_q_blrr_extend_predecessor_sum_terminal * S ((S (n)) * ff_v_blrr_extend_predecessor_sum) + (x2))) /\ forall ff_i_blrr_extend_predecessor_sum. (exists ff_lt_blrr_extend_predecessor_sum_bound. ff_lt_blrr_extend_predecessor_sum_bound + S ff_i_blrr_extend_predecessor_sum = n) -> exists ff_a_blrr_extend_predecessor_sum ff_r_blrr_extend_predecessor_sum ff_s_blrr_extend_predecessor_sum. ((((exists ff_h_blrr_extend_predecessor_sum_summand. ff_h_blrr_extend_predecessor_sum_summand + S (ff_a_blrr_extend_predecessor_sum) = S ((S (ff_i_blrr_extend_predecessor_sum)) * x1)) /\ exists ff_q_blrr_extend_predecessor_sum_summand. x = ff_q_blrr_extend_predecessor_sum_summand * S ((S (ff_i_blrr_extend_predecessor_sum)) * x1) + (ff_a_blrr_extend_predecessor_sum))) /\ ((((exists ff_h_blrr_extend_predecessor_sum_partial. ff_h_blrr_extend_predecessor_sum_partial + S (ff_r_blrr_extend_predecessor_sum) = S ((S (ff_i_blrr_extend_predecessor_sum)) * ff_v_blrr_extend_predecessor_sum)) /\ exists ff_q_blrr_extend_predecessor_sum_partial. ff_u_blrr_extend_predecessor_sum = ff_q_blrr_extend_predecessor_sum_partial * S ((S (ff_i_blrr_extend_predecessor_sum)) * ff_v_blrr_extend_predecessor_sum) + (ff_r_blrr_extend_predecessor_sum))) /\ ((((exists ff_h_blrr_extend_predecessor_sum_successor. ff_h_blrr_extend_predecessor_sum_successor + S (ff_s_blrr_extend_predecessor_sum) = S ((S (S ff_i_blrr_extend_predecessor_sum)) * ff_v_blrr_extend_predecessor_sum)) /\ exists ff_q_blrr_extend_predecessor_sum_successor. ff_u_blrr_extend_predecessor_sum = ff_q_blrr_extend_predecessor_sum_successor * S ((S (S ff_i_blrr_extend_predecessor_sum)) * ff_v_blrr_extend_predecessor_sum) + (ff_s_blrr_extend_predecessor_sum))) /\ ff_s_blrr_extend_predecessor_sum = ff_r_blrr_extend_predecessor_sum + ff_a_blrr_extend_predecessor_sum))))) - 0029
specialize beta_sum_succ_last_zero x - 0030
specialize beta_sum_succ_last_zero x1 - 0031
specialize beta_sum_succ_last_zero n - 0032
specialize beta_sum_succ_last_zero x2 - 0033
apply beta_sum_succ_last_zero - 0034
exact hsuccessor_sum_witness - 0035
exact hzero - 0036
have hrestricted : PowerQuotPrefix(p,n,x,x1,n)Exact native replay line
have hrestricted : forall bls_index_blrr_extend_restricted. (exists bls_gap_blrr_extend_restricted_bound. bls_gap_blrr_extend_restricted_bound + S (bls_index_blrr_extend_restricted) = (n)) -> exists bls_power_blrr_extend_restricted bls_quotient_blrr_extend_restricted bls_remainder_blrr_extend_restricted. ((exists bpvi_b_bls_blrr_extend_restricted_power bpvi_c_bls_blrr_extend_restricted_power. ((forall bpvi_i_bls_blrr_extend_restricted_power. (exists bpvi_repeat_gap_bls_blrr_extend_restricted_power. bpvi_repeat_gap_bls_blrr_extend_restricted_power + S bpvi_i_bls_blrr_extend_restricted_power = S bls_index_blrr_extend_restricted) -> (((exists bpvi_h_bls_blrr_extend_restricted_power_repeat. bpvi_h_bls_blrr_extend_restricted_power_repeat + S (p) = S ((S (bpvi_i_bls_blrr_extend_restricted_power)) * bpvi_c_bls_blrr_extend_restricted_power)) /\ exists bpvi_q_bls_blrr_extend_restricted_power_repeat. bpvi_b_bls_blrr_extend_restricted_power = bpvi_q_bls_blrr_extend_restricted_power_repeat * S ((S (bpvi_i_bls_blrr_extend_restricted_power)) * bpvi_c_bls_blrr_extend_restricted_power) + (p)))) /\ (exists bpvi_u_bls_blrr_extend_restricted_power bpvi_v_bls_blrr_extend_restricted_power. ((((exists bpvi_h_bls_blrr_extend_restricted_power_start. bpvi_h_bls_blrr_extend_restricted_power_start + S (1) = S ((S (0)) * bpvi_v_bls_blrr_extend_restricted_power)) /\ exists bpvi_q_bls_blrr_extend_restricted_power_start. bpvi_u_bls_blrr_extend_restricted_power = bpvi_q_bls_blrr_extend_restricted_power_start * S ((S (0)) * bpvi_v_bls_blrr_extend_restricted_power) + (1))) /\ ((((exists bpvi_h_bls_blrr_extend_restricted_power_terminal. bpvi_h_bls_blrr_extend_restricted_power_terminal + S (bls_power_blrr_extend_restricted) = S ((S (S bls_index_blrr_extend_restricted)) * bpvi_v_bls_blrr_extend_restricted_power)) /\ exists bpvi_q_bls_blrr_extend_restricted_power_terminal. bpvi_u_bls_blrr_extend_restricted_power = bpvi_q_bls_blrr_extend_restricted_power_terminal * S ((S (S bls_index_blrr_extend_restricted)) * bpvi_v_bls_blrr_extend_restricted_power) + (bls_power_blrr_extend_restricted))) /\ forall bpvi_j_bls_blrr_extend_restricted_power. (exists bpvi_product_gap_bls_blrr_extend_restricted_power. bpvi_product_gap_bls_blrr_extend_restricted_power + S bpvi_j_bls_blrr_extend_restricted_power = S bls_index_blrr_extend_restricted) -> exists bpvi_factor_bls_blrr_extend_restricted_power bpvi_partial_bls_blrr_extend_restricted_power bpvi_successor_bls_blrr_extend_restricted_power. ((((exists bpvi_h_bls_blrr_extend_restricted_power_factor. bpvi_h_bls_blrr_extend_restricted_power_factor + S (bpvi_factor_bls_blrr_extend_restricted_power) = S ((S (bpvi_j_bls_blrr_extend_restricted_power)) * bpvi_c_bls_blrr_extend_restricted_power)) /\ exists bpvi_q_bls_blrr_extend_restricted_power_factor. bpvi_b_bls_blrr_extend_restricted_power = bpvi_q_bls_blrr_extend_restricted_power_factor * S ((S (bpvi_j_bls_blrr_extend_restricted_power)) * bpvi_c_bls_blrr_extend_restricted_power) + (bpvi_factor_bls_blrr_extend_restricted_power))) /\ ((((exists bpvi_h_bls_blrr_extend_restricted_power_partial. bpvi_h_bls_blrr_extend_restricted_power_partial + S (bpvi_partial_bls_blrr_extend_restricted_power) = S ((S (bpvi_j_bls_blrr_extend_restricted_power)) * bpvi_v_bls_blrr_extend_restricted_power)) /\ exists bpvi_q_bls_blrr_extend_restricted_power_partial. bpvi_u_bls_blrr_extend_restricted_power = bpvi_q_bls_blrr_extend_restricted_power_partial * S ((S (bpvi_j_bls_blrr_extend_restricted_power)) * bpvi_v_bls_blrr_extend_restricted_power) + (bpvi_partial_bls_blrr_extend_restricted_power))) /\ ((((exists bpvi_h_bls_blrr_extend_restricted_power_successor. bpvi_h_bls_blrr_extend_restricted_power_successor + S (bpvi_successor_bls_blrr_extend_restricted_power) = S ((S (S bpvi_j_bls_blrr_extend_restricted_power)) * bpvi_v_bls_blrr_extend_restricted_power)) /\ exists bpvi_q_bls_blrr_extend_restricted_power_successor. bpvi_u_bls_blrr_extend_restricted_power = bpvi_q_bls_blrr_extend_restricted_power_successor * S ((S (S bpvi_j_bls_blrr_extend_restricted_power)) * bpvi_v_bls_blrr_extend_restricted_power) + (bpvi_successor_bls_blrr_extend_restricted_power))) /\ bpvi_successor_bls_blrr_extend_restricted_power = bpvi_partial_bls_blrr_extend_restricted_power * bpvi_factor_bls_blrr_extend_restricted_power)))))))) /\ ((((exists ff_h_bls_blrr_extend_restricted_quotient_entry. ff_h_bls_blrr_extend_restricted_quotient_entry + S (bls_quotient_blrr_extend_restricted) = S ((S (bls_index_blrr_extend_restricted)) * x1)) /\ exists ff_q_bls_blrr_extend_restricted_quotient_entry. x = ff_q_bls_blrr_extend_restricted_quotient_entry * S ((S (bls_index_blrr_extend_restricted)) * x1) + (bls_quotient_blrr_extend_restricted))) /\ ((n = bls_power_blrr_extend_restricted * bls_quotient_blrr_extend_restricted + bls_remainder_blrr_extend_restricted /\ exists bls_remainder_gap_blrr_extend_restricted_division. bls_remainder_gap_blrr_extend_restricted_division + S (bls_remainder_blrr_extend_restricted) = bls_power_blrr_extend_restricted)))) - 0037
intro i - 0038
intro hi - 0039
specialize hprefix_witness_witness i - 0040
apply hprefix_witness_witness - 0041
specialize le_succ (S i) - 0042
specialize le_succ n - 0043
apply le_succ - 0044
exact hi - 0045
have hcompeting : LegendreSum(p,n,x2)Exact native replay line
have hcompeting : exists bls_code_blrr_extend_competing bls_scale_blrr_extend_competing. ((forall bls_index_blrr_extend_competing_prefix. (exists bls_gap_blrr_extend_competing_prefix_bound. bls_gap_blrr_extend_competing_prefix_bound + S (bls_index_blrr_extend_competing_prefix) = (n)) -> exists bls_power_blrr_extend_competing_prefix bls_quotient_blrr_extend_competing_prefix bls_remainder_blrr_extend_competing_prefix. ((exists bpvi_b_bls_blrr_extend_competing_prefix_power bpvi_c_bls_blrr_extend_competing_prefix_power. ((forall bpvi_i_bls_blrr_extend_competing_prefix_power. (exists bpvi_repeat_gap_bls_blrr_extend_competing_prefix_power. bpvi_repeat_gap_bls_blrr_extend_competing_prefix_power + S bpvi_i_bls_blrr_extend_competing_prefix_power = S bls_index_blrr_extend_competing_prefix) -> (((exists bpvi_h_bls_blrr_extend_competing_prefix_power_repeat. bpvi_h_bls_blrr_extend_competing_prefix_power_repeat + S (p) = S ((S (bpvi_i_bls_blrr_extend_competing_prefix_power)) * bpvi_c_bls_blrr_extend_competing_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_competing_prefix_power_repeat. bpvi_b_bls_blrr_extend_competing_prefix_power = bpvi_q_bls_blrr_extend_competing_prefix_power_repeat * S ((S (bpvi_i_bls_blrr_extend_competing_prefix_power)) * bpvi_c_bls_blrr_extend_competing_prefix_power) + (p)))) /\ (exists bpvi_u_bls_blrr_extend_competing_prefix_power bpvi_v_bls_blrr_extend_competing_prefix_power. ((((exists bpvi_h_bls_blrr_extend_competing_prefix_power_start. bpvi_h_bls_blrr_extend_competing_prefix_power_start + S (1) = S ((S (0)) * bpvi_v_bls_blrr_extend_competing_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_competing_prefix_power_start. bpvi_u_bls_blrr_extend_competing_prefix_power = bpvi_q_bls_blrr_extend_competing_prefix_power_start * S ((S (0)) * bpvi_v_bls_blrr_extend_competing_prefix_power) + (1))) /\ ((((exists bpvi_h_bls_blrr_extend_competing_prefix_power_terminal. bpvi_h_bls_blrr_extend_competing_prefix_power_terminal + S (bls_power_blrr_extend_competing_prefix) = S ((S (S bls_index_blrr_extend_competing_prefix)) * bpvi_v_bls_blrr_extend_competing_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_competing_prefix_power_terminal. bpvi_u_bls_blrr_extend_competing_prefix_power = bpvi_q_bls_blrr_extend_competing_prefix_power_terminal * S ((S (S bls_index_blrr_extend_competing_prefix)) * bpvi_v_bls_blrr_extend_competing_prefix_power) + (bls_power_blrr_extend_competing_prefix))) /\ forall bpvi_j_bls_blrr_extend_competing_prefix_power. (exists bpvi_product_gap_bls_blrr_extend_competing_prefix_power. bpvi_product_gap_bls_blrr_extend_competing_prefix_power + S bpvi_j_bls_blrr_extend_competing_prefix_power = S bls_index_blrr_extend_competing_prefix) -> exists bpvi_factor_bls_blrr_extend_competing_prefix_power bpvi_partial_bls_blrr_extend_competing_prefix_power bpvi_successor_bls_blrr_extend_competing_prefix_power. ((((exists bpvi_h_bls_blrr_extend_competing_prefix_power_factor. bpvi_h_bls_blrr_extend_competing_prefix_power_factor + S (bpvi_factor_bls_blrr_extend_competing_prefix_power) = S ((S (bpvi_j_bls_blrr_extend_competing_prefix_power)) * bpvi_c_bls_blrr_extend_competing_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_competing_prefix_power_factor. bpvi_b_bls_blrr_extend_competing_prefix_power = bpvi_q_bls_blrr_extend_competing_prefix_power_factor * S ((S (bpvi_j_bls_blrr_extend_competing_prefix_power)) * bpvi_c_bls_blrr_extend_competing_prefix_power) + (bpvi_factor_bls_blrr_extend_competing_prefix_power))) /\ ((((exists bpvi_h_bls_blrr_extend_competing_prefix_power_partial. bpvi_h_bls_blrr_extend_competing_prefix_power_partial + S (bpvi_partial_bls_blrr_extend_competing_prefix_power) = S ((S (bpvi_j_bls_blrr_extend_competing_prefix_power)) * bpvi_v_bls_blrr_extend_competing_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_competing_prefix_power_partial. bpvi_u_bls_blrr_extend_competing_prefix_power = bpvi_q_bls_blrr_extend_competing_prefix_power_partial * S ((S (bpvi_j_bls_blrr_extend_competing_prefix_power)) * bpvi_v_bls_blrr_extend_competing_prefix_power) + (bpvi_partial_bls_blrr_extend_competing_prefix_power))) /\ ((((exists bpvi_h_bls_blrr_extend_competing_prefix_power_successor. bpvi_h_bls_blrr_extend_competing_prefix_power_successor + S (bpvi_successor_bls_blrr_extend_competing_prefix_power) = S ((S (S bpvi_j_bls_blrr_extend_competing_prefix_power)) * bpvi_v_bls_blrr_extend_competing_prefix_power)) /\ exists bpvi_q_bls_blrr_extend_competing_prefix_power_successor. bpvi_u_bls_blrr_extend_competing_prefix_power = bpvi_q_bls_blrr_extend_competing_prefix_power_successor * S ((S (S bpvi_j_bls_blrr_extend_competing_prefix_power)) * bpvi_v_bls_blrr_extend_competing_prefix_power) + (bpvi_successor_bls_blrr_extend_competing_prefix_power))) /\ bpvi_successor_bls_blrr_extend_competing_prefix_power = bpvi_partial_bls_blrr_extend_competing_prefix_power * bpvi_factor_bls_blrr_extend_competing_prefix_power)))))))) /\ ((((exists ff_h_bls_blrr_extend_competing_prefix_quotient_entry. ff_h_bls_blrr_extend_competing_prefix_quotient_entry + S (bls_quotient_blrr_extend_competing_prefix) = S ((S (bls_index_blrr_extend_competing_prefix)) * bls_scale_blrr_extend_competing)) /\ exists ff_q_bls_blrr_extend_competing_prefix_quotient_entry. bls_code_blrr_extend_competing = ff_q_bls_blrr_extend_competing_prefix_quotient_entry * S ((S (bls_index_blrr_extend_competing_prefix)) * bls_scale_blrr_extend_competing) + (bls_quotient_blrr_extend_competing_prefix))) /\ ((n = bls_power_blrr_extend_competing_prefix * bls_quotient_blrr_extend_competing_prefix + bls_remainder_blrr_extend_competing_prefix /\ exists bls_remainder_gap_blrr_extend_competing_prefix_division. bls_remainder_gap_blrr_extend_competing_prefix_division + S (bls_remainder_blrr_extend_competing_prefix) = bls_power_blrr_extend_competing_prefix))))) /\ (exists ff_u_bls_blrr_extend_competing_sum ff_v_bls_blrr_extend_competing_sum. ((((exists ff_h_bls_blrr_extend_competing_sum_start. ff_h_bls_blrr_extend_competing_sum_start + S (0) = S ((S (0)) * ff_v_bls_blrr_extend_competing_sum)) /\ exists ff_q_bls_blrr_extend_competing_sum_start. ff_u_bls_blrr_extend_competing_sum = ff_q_bls_blrr_extend_competing_sum_start * S ((S (0)) * ff_v_bls_blrr_extend_competing_sum) + (0))) /\ ((((exists ff_h_bls_blrr_extend_competing_sum_terminal. ff_h_bls_blrr_extend_competing_sum_terminal + S (x2) = S ((S (n)) * ff_v_bls_blrr_extend_competing_sum)) /\ exists ff_q_bls_blrr_extend_competing_sum_terminal. ff_u_bls_blrr_extend_competing_sum = ff_q_bls_blrr_extend_competing_sum_terminal * S ((S (n)) * ff_v_bls_blrr_extend_competing_sum) + (x2))) /\ forall ff_i_bls_blrr_extend_competing_sum. (exists ff_lt_bls_blrr_extend_competing_sum_bound. ff_lt_bls_blrr_extend_competing_sum_bound + S ff_i_bls_blrr_extend_competing_sum = n) -> exists ff_a_bls_blrr_extend_competing_sum ff_r_bls_blrr_extend_competing_sum ff_s_bls_blrr_extend_competing_sum. ((((exists ff_h_bls_blrr_extend_competing_sum_summand. ff_h_bls_blrr_extend_competing_sum_summand + S (ff_a_bls_blrr_extend_competing_sum) = S ((S (ff_i_bls_blrr_extend_competing_sum)) * bls_scale_blrr_extend_competing)) /\ exists ff_q_bls_blrr_extend_competing_sum_summand. bls_code_blrr_extend_competing = ff_q_bls_blrr_extend_competing_sum_summand * S ((S (ff_i_bls_blrr_extend_competing_sum)) * bls_scale_blrr_extend_competing) + (ff_a_bls_blrr_extend_competing_sum))) /\ ((((exists ff_h_bls_blrr_extend_competing_sum_partial. ff_h_bls_blrr_extend_competing_sum_partial + S (ff_r_bls_blrr_extend_competing_sum) = S ((S (ff_i_bls_blrr_extend_competing_sum)) * ff_v_bls_blrr_extend_competing_sum)) /\ exists ff_q_bls_blrr_extend_competing_sum_partial. ff_u_bls_blrr_extend_competing_sum = ff_q_bls_blrr_extend_competing_sum_partial * S ((S (ff_i_bls_blrr_extend_competing_sum)) * ff_v_bls_blrr_extend_competing_sum) + (ff_r_bls_blrr_extend_competing_sum))) /\ ((((exists ff_h_bls_blrr_extend_competing_sum_successor. ff_h_bls_blrr_extend_competing_sum_successor + S (ff_s_bls_blrr_extend_competing_sum) = S ((S (S ff_i_bls_blrr_extend_competing_sum)) * ff_v_bls_blrr_extend_competing_sum)) /\ exists ff_q_bls_blrr_extend_competing_sum_successor. ff_u_bls_blrr_extend_competing_sum = ff_q_bls_blrr_extend_competing_sum_successor * S ((S (S ff_i_bls_blrr_extend_competing_sum)) * ff_v_bls_blrr_extend_competing_sum) + (ff_s_bls_blrr_extend_competing_sum))) /\ ff_s_bls_blrr_extend_competing_sum = ff_r_bls_blrr_extend_competing_sum + ff_a_bls_blrr_extend_competing_sum))))))) - 0046
exists x - 0047
exists x1 - 0048
split - 0049
exact hrestricted - 0050
exact hpredecessor_sum - 0051
have heq : e = x2 - 0052
specialize legendre_sum_functional p - 0053
specialize legendre_sum_functional n - 0054
specialize legendre_sum_functional e - 0055
specialize legendre_sum_functional x2 - 0056
apply legendre_sum_functional - 0057
exact hlegendre - 0058
exact hcompeting - 0059
exists x - 0060
exists x1 - 0061
split - 0062
exact hprefix_witness_witness - 0063
rewrite heq - 0064
rewrite heq - 0065
exact hsuccessor_sum_witness