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. ∀ g. ∀ t. ∀ e. Prime(p) → PowerQuotPrefix(p,n,b,c,n + g) → Sum(b,c,n + g,t) → LegendreSum(p,n,e) → t = eEvery 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 b c g t e. ((~(p = 1) /\ forall frm_prime_left_b5cvpsez_prime frm_prime_right_b5cvpsez_prime. p = frm_prime_left_b5cvpsez_prime * frm_prime_right_b5cvpsez_prime -> frm_prime_left_b5cvpsez_prime = 1 \/ frm_prime_right_b5cvpsez_prime = 1)) -> (forall bls_index_b5cvpsez_prefix. (exists bls_gap_b5cvpsez_prefix_bound. bls_gap_b5cvpsez_prefix_bound + S (bls_index_b5cvpsez_prefix) = (n + g)) -> exists bls_power_b5cvpsez_prefix bls_quotient_b5cvpsez_prefix bls_remainder_b5cvpsez_prefix. ((exists bpvi_b_bls_b5cvpsez_prefix_power bpvi_c_bls_b5cvpsez_prefix_power. ((forall bpvi_i_bls_b5cvpsez_prefix_power. (exists bpvi_repeat_gap_bls_b5cvpsez_prefix_power. bpvi_repeat_gap_bls_b5cvpsez_prefix_power + S bpvi_i_bls_b5cvpsez_prefix_power = S bls_index_b5cvpsez_prefix) -> (((exists bpvi_h_bls_b5cvpsez_prefix_power_repeat. bpvi_h_bls_b5cvpsez_prefix_power_repeat + S (p) = S ((S (bpvi_i_bls_b5cvpsez_prefix_power)) * bpvi_c_bls_b5cvpsez_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_prefix_power_repeat. bpvi_b_bls_b5cvpsez_prefix_power = bpvi_q_bls_b5cvpsez_prefix_power_repeat * S ((S (bpvi_i_bls_b5cvpsez_prefix_power)) * bpvi_c_bls_b5cvpsez_prefix_power) + (p)))) /\ (exists bpvi_u_bls_b5cvpsez_prefix_power bpvi_v_bls_b5cvpsez_prefix_power. ((((exists bpvi_h_bls_b5cvpsez_prefix_power_start. bpvi_h_bls_b5cvpsez_prefix_power_start + S (1) = S ((S (0)) * bpvi_v_bls_b5cvpsez_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_prefix_power_start. bpvi_u_bls_b5cvpsez_prefix_power = bpvi_q_bls_b5cvpsez_prefix_power_start * S ((S (0)) * bpvi_v_bls_b5cvpsez_prefix_power) + (1))) /\ ((((exists bpvi_h_bls_b5cvpsez_prefix_power_terminal. bpvi_h_bls_b5cvpsez_prefix_power_terminal + S (bls_power_b5cvpsez_prefix) = S ((S (S bls_index_b5cvpsez_prefix)) * bpvi_v_bls_b5cvpsez_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_prefix_power_terminal. bpvi_u_bls_b5cvpsez_prefix_power = bpvi_q_bls_b5cvpsez_prefix_power_terminal * S ((S (S bls_index_b5cvpsez_prefix)) * bpvi_v_bls_b5cvpsez_prefix_power) + (bls_power_b5cvpsez_prefix))) /\ forall bpvi_j_bls_b5cvpsez_prefix_power. (exists bpvi_product_gap_bls_b5cvpsez_prefix_power. bpvi_product_gap_bls_b5cvpsez_prefix_power + S bpvi_j_bls_b5cvpsez_prefix_power = S bls_index_b5cvpsez_prefix) -> exists bpvi_factor_bls_b5cvpsez_prefix_power bpvi_partial_bls_b5cvpsez_prefix_power bpvi_successor_bls_b5cvpsez_prefix_power. ((((exists bpvi_h_bls_b5cvpsez_prefix_power_factor. bpvi_h_bls_b5cvpsez_prefix_power_factor + S (bpvi_factor_bls_b5cvpsez_prefix_power) = S ((S (bpvi_j_bls_b5cvpsez_prefix_power)) * bpvi_c_bls_b5cvpsez_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_prefix_power_factor. bpvi_b_bls_b5cvpsez_prefix_power = bpvi_q_bls_b5cvpsez_prefix_power_factor * S ((S (bpvi_j_bls_b5cvpsez_prefix_power)) * bpvi_c_bls_b5cvpsez_prefix_power) + (bpvi_factor_bls_b5cvpsez_prefix_power))) /\ ((((exists bpvi_h_bls_b5cvpsez_prefix_power_partial. bpvi_h_bls_b5cvpsez_prefix_power_partial + S (bpvi_partial_bls_b5cvpsez_prefix_power) = S ((S (bpvi_j_bls_b5cvpsez_prefix_power)) * bpvi_v_bls_b5cvpsez_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_prefix_power_partial. bpvi_u_bls_b5cvpsez_prefix_power = bpvi_q_bls_b5cvpsez_prefix_power_partial * S ((S (bpvi_j_bls_b5cvpsez_prefix_power)) * bpvi_v_bls_b5cvpsez_prefix_power) + (bpvi_partial_bls_b5cvpsez_prefix_power))) /\ ((((exists bpvi_h_bls_b5cvpsez_prefix_power_successor. bpvi_h_bls_b5cvpsez_prefix_power_successor + S (bpvi_successor_bls_b5cvpsez_prefix_power) = S ((S (S bpvi_j_bls_b5cvpsez_prefix_power)) * bpvi_v_bls_b5cvpsez_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_prefix_power_successor. bpvi_u_bls_b5cvpsez_prefix_power = bpvi_q_bls_b5cvpsez_prefix_power_successor * S ((S (S bpvi_j_bls_b5cvpsez_prefix_power)) * bpvi_v_bls_b5cvpsez_prefix_power) + (bpvi_successor_bls_b5cvpsez_prefix_power))) /\ bpvi_successor_bls_b5cvpsez_prefix_power = bpvi_partial_bls_b5cvpsez_prefix_power * bpvi_factor_bls_b5cvpsez_prefix_power)))))))) /\ ((((exists ff_h_bls_b5cvpsez_prefix_quotient_entry. ff_h_bls_b5cvpsez_prefix_quotient_entry + S (bls_quotient_b5cvpsez_prefix) = S ((S (bls_index_b5cvpsez_prefix)) * c)) /\ exists ff_q_bls_b5cvpsez_prefix_quotient_entry. b = ff_q_bls_b5cvpsez_prefix_quotient_entry * S ((S (bls_index_b5cvpsez_prefix)) * c) + (bls_quotient_b5cvpsez_prefix))) /\ ((n = bls_power_b5cvpsez_prefix * bls_quotient_b5cvpsez_prefix + bls_remainder_b5cvpsez_prefix /\ exists bls_remainder_gap_b5cvpsez_prefix_division. bls_remainder_gap_b5cvpsez_prefix_division + S (bls_remainder_b5cvpsez_prefix) = bls_power_b5cvpsez_prefix))))) -> (exists fs_u_b5cvpsez_sum fs_v_b5cvpsez_sum. ((((exists fs_h_b5cvpsez_sum_body_start. fs_h_b5cvpsez_sum_body_start + S (0) = S ((S (0)) * fs_v_b5cvpsez_sum)) /\ exists fs_q_b5cvpsez_sum_body_start. fs_u_b5cvpsez_sum = fs_q_b5cvpsez_sum_body_start * S ((S (0)) * fs_v_b5cvpsez_sum) + (0))) /\ ((((exists fs_h_b5cvpsez_sum_body_terminal. fs_h_b5cvpsez_sum_body_terminal + S (t) = S ((S (n + g)) * fs_v_b5cvpsez_sum)) /\ exists fs_q_b5cvpsez_sum_body_terminal. fs_u_b5cvpsez_sum = fs_q_b5cvpsez_sum_body_terminal * S ((S (n + g)) * fs_v_b5cvpsez_sum) + (t))) /\ forall fs_i_b5cvpsez_sum_body_steps. (exists fs_lt_b5cvpsez_sum_body_steps_bound. fs_lt_b5cvpsez_sum_body_steps_bound + S fs_i_b5cvpsez_sum_body_steps = n + g) -> exists fs_a_b5cvpsez_sum_body_steps fs_r_b5cvpsez_sum_body_steps fs_s_b5cvpsez_sum_body_steps. ((((exists fs_h_b5cvpsez_sum_body_steps_summand. fs_h_b5cvpsez_sum_body_steps_summand + S (fs_a_b5cvpsez_sum_body_steps) = S ((S (fs_i_b5cvpsez_sum_body_steps)) * c)) /\ exists fs_q_b5cvpsez_sum_body_steps_summand. b = fs_q_b5cvpsez_sum_body_steps_summand * S ((S (fs_i_b5cvpsez_sum_body_steps)) * c) + (fs_a_b5cvpsez_sum_body_steps))) /\ ((((exists fs_h_b5cvpsez_sum_body_steps_partial. fs_h_b5cvpsez_sum_body_steps_partial + S (fs_r_b5cvpsez_sum_body_steps) = S ((S (fs_i_b5cvpsez_sum_body_steps)) * fs_v_b5cvpsez_sum)) /\ exists fs_q_b5cvpsez_sum_body_steps_partial. fs_u_b5cvpsez_sum = fs_q_b5cvpsez_sum_body_steps_partial * S ((S (fs_i_b5cvpsez_sum_body_steps)) * fs_v_b5cvpsez_sum) + (fs_r_b5cvpsez_sum_body_steps))) /\ ((((exists fs_h_b5cvpsez_sum_body_steps_successor. fs_h_b5cvpsez_sum_body_steps_successor + S (fs_s_b5cvpsez_sum_body_steps) = S ((S (S fs_i_b5cvpsez_sum_body_steps)) * fs_v_b5cvpsez_sum)) /\ exists fs_q_b5cvpsez_sum_body_steps_successor. fs_u_b5cvpsez_sum = fs_q_b5cvpsez_sum_body_steps_successor * S ((S (S fs_i_b5cvpsez_sum_body_steps)) * fs_v_b5cvpsez_sum) + (fs_s_b5cvpsez_sum_body_steps))) /\ fs_s_b5cvpsez_sum_body_steps = fs_r_b5cvpsez_sum_body_steps + fs_a_b5cvpsez_sum_body_steps)))))) -> (exists bls_code_b5cvpsez_legendre bls_scale_b5cvpsez_legendre. ((forall bls_index_b5cvpsez_legendre_prefix. (exists bls_gap_b5cvpsez_legendre_prefix_bound. bls_gap_b5cvpsez_legendre_prefix_bound + S (bls_index_b5cvpsez_legendre_prefix) = (n)) -> exists bls_power_b5cvpsez_legendre_prefix bls_quotient_b5cvpsez_legendre_prefix bls_remainder_b5cvpsez_legendre_prefix. ((exists bpvi_b_bls_b5cvpsez_legendre_prefix_power bpvi_c_bls_b5cvpsez_legendre_prefix_power. ((forall bpvi_i_bls_b5cvpsez_legendre_prefix_power. (exists bpvi_repeat_gap_bls_b5cvpsez_legendre_prefix_power. bpvi_repeat_gap_bls_b5cvpsez_legendre_prefix_power + S bpvi_i_bls_b5cvpsez_legendre_prefix_power = S bls_index_b5cvpsez_legendre_prefix) -> (((exists bpvi_h_bls_b5cvpsez_legendre_prefix_power_repeat. bpvi_h_bls_b5cvpsez_legendre_prefix_power_repeat + S (p) = S ((S (bpvi_i_bls_b5cvpsez_legendre_prefix_power)) * bpvi_c_bls_b5cvpsez_legendre_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_legendre_prefix_power_repeat. bpvi_b_bls_b5cvpsez_legendre_prefix_power = bpvi_q_bls_b5cvpsez_legendre_prefix_power_repeat * S ((S (bpvi_i_bls_b5cvpsez_legendre_prefix_power)) * bpvi_c_bls_b5cvpsez_legendre_prefix_power) + (p)))) /\ (exists bpvi_u_bls_b5cvpsez_legendre_prefix_power bpvi_v_bls_b5cvpsez_legendre_prefix_power. ((((exists bpvi_h_bls_b5cvpsez_legendre_prefix_power_start. bpvi_h_bls_b5cvpsez_legendre_prefix_power_start + S (1) = S ((S (0)) * bpvi_v_bls_b5cvpsez_legendre_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_legendre_prefix_power_start. bpvi_u_bls_b5cvpsez_legendre_prefix_power = bpvi_q_bls_b5cvpsez_legendre_prefix_power_start * S ((S (0)) * bpvi_v_bls_b5cvpsez_legendre_prefix_power) + (1))) /\ ((((exists bpvi_h_bls_b5cvpsez_legendre_prefix_power_terminal. bpvi_h_bls_b5cvpsez_legendre_prefix_power_terminal + S (bls_power_b5cvpsez_legendre_prefix) = S ((S (S bls_index_b5cvpsez_legendre_prefix)) * bpvi_v_bls_b5cvpsez_legendre_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_legendre_prefix_power_terminal. bpvi_u_bls_b5cvpsez_legendre_prefix_power = bpvi_q_bls_b5cvpsez_legendre_prefix_power_terminal * S ((S (S bls_index_b5cvpsez_legendre_prefix)) * bpvi_v_bls_b5cvpsez_legendre_prefix_power) + (bls_power_b5cvpsez_legendre_prefix))) /\ forall bpvi_j_bls_b5cvpsez_legendre_prefix_power. (exists bpvi_product_gap_bls_b5cvpsez_legendre_prefix_power. bpvi_product_gap_bls_b5cvpsez_legendre_prefix_power + S bpvi_j_bls_b5cvpsez_legendre_prefix_power = S bls_index_b5cvpsez_legendre_prefix) -> exists bpvi_factor_bls_b5cvpsez_legendre_prefix_power bpvi_partial_bls_b5cvpsez_legendre_prefix_power bpvi_successor_bls_b5cvpsez_legendre_prefix_power. ((((exists bpvi_h_bls_b5cvpsez_legendre_prefix_power_factor. bpvi_h_bls_b5cvpsez_legendre_prefix_power_factor + S (bpvi_factor_bls_b5cvpsez_legendre_prefix_power) = S ((S (bpvi_j_bls_b5cvpsez_legendre_prefix_power)) * bpvi_c_bls_b5cvpsez_legendre_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_legendre_prefix_power_factor. bpvi_b_bls_b5cvpsez_legendre_prefix_power = bpvi_q_bls_b5cvpsez_legendre_prefix_power_factor * S ((S (bpvi_j_bls_b5cvpsez_legendre_prefix_power)) * bpvi_c_bls_b5cvpsez_legendre_prefix_power) + (bpvi_factor_bls_b5cvpsez_legendre_prefix_power))) /\ ((((exists bpvi_h_bls_b5cvpsez_legendre_prefix_power_partial. bpvi_h_bls_b5cvpsez_legendre_prefix_power_partial + S (bpvi_partial_bls_b5cvpsez_legendre_prefix_power) = S ((S (bpvi_j_bls_b5cvpsez_legendre_prefix_power)) * bpvi_v_bls_b5cvpsez_legendre_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_legendre_prefix_power_partial. bpvi_u_bls_b5cvpsez_legendre_prefix_power = bpvi_q_bls_b5cvpsez_legendre_prefix_power_partial * S ((S (bpvi_j_bls_b5cvpsez_legendre_prefix_power)) * bpvi_v_bls_b5cvpsez_legendre_prefix_power) + (bpvi_partial_bls_b5cvpsez_legendre_prefix_power))) /\ ((((exists bpvi_h_bls_b5cvpsez_legendre_prefix_power_successor. bpvi_h_bls_b5cvpsez_legendre_prefix_power_successor + S (bpvi_successor_bls_b5cvpsez_legendre_prefix_power) = S ((S (S bpvi_j_bls_b5cvpsez_legendre_prefix_power)) * bpvi_v_bls_b5cvpsez_legendre_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_legendre_prefix_power_successor. bpvi_u_bls_b5cvpsez_legendre_prefix_power = bpvi_q_bls_b5cvpsez_legendre_prefix_power_successor * S ((S (S bpvi_j_bls_b5cvpsez_legendre_prefix_power)) * bpvi_v_bls_b5cvpsez_legendre_prefix_power) + (bpvi_successor_bls_b5cvpsez_legendre_prefix_power))) /\ bpvi_successor_bls_b5cvpsez_legendre_prefix_power = bpvi_partial_bls_b5cvpsez_legendre_prefix_power * bpvi_factor_bls_b5cvpsez_legendre_prefix_power)))))))) /\ ((((exists ff_h_bls_b5cvpsez_legendre_prefix_quotient_entry. ff_h_bls_b5cvpsez_legendre_prefix_quotient_entry + S (bls_quotient_b5cvpsez_legendre_prefix) = S ((S (bls_index_b5cvpsez_legendre_prefix)) * bls_scale_b5cvpsez_legendre)) /\ exists ff_q_bls_b5cvpsez_legendre_prefix_quotient_entry. bls_code_b5cvpsez_legendre = ff_q_bls_b5cvpsez_legendre_prefix_quotient_entry * S ((S (bls_index_b5cvpsez_legendre_prefix)) * bls_scale_b5cvpsez_legendre) + (bls_quotient_b5cvpsez_legendre_prefix))) /\ ((n = bls_power_b5cvpsez_legendre_prefix * bls_quotient_b5cvpsez_legendre_prefix + bls_remainder_b5cvpsez_legendre_prefix /\ exists bls_remainder_gap_b5cvpsez_legendre_prefix_division. bls_remainder_gap_b5cvpsez_legendre_prefix_division + S (bls_remainder_b5cvpsez_legendre_prefix) = bls_power_b5cvpsez_legendre_prefix))))) /\ (exists ff_u_bls_b5cvpsez_legendre_sum ff_v_bls_b5cvpsez_legendre_sum. ((((exists ff_h_bls_b5cvpsez_legendre_sum_start. ff_h_bls_b5cvpsez_legendre_sum_start + S (0) = S ((S (0)) * ff_v_bls_b5cvpsez_legendre_sum)) /\ exists ff_q_bls_b5cvpsez_legendre_sum_start. ff_u_bls_b5cvpsez_legendre_sum = ff_q_bls_b5cvpsez_legendre_sum_start * S ((S (0)) * ff_v_bls_b5cvpsez_legendre_sum) + (0))) /\ ((((exists ff_h_bls_b5cvpsez_legendre_sum_terminal. ff_h_bls_b5cvpsez_legendre_sum_terminal + S (e) = S ((S (n)) * ff_v_bls_b5cvpsez_legendre_sum)) /\ exists ff_q_bls_b5cvpsez_legendre_sum_terminal. ff_u_bls_b5cvpsez_legendre_sum = ff_q_bls_b5cvpsez_legendre_sum_terminal * S ((S (n)) * ff_v_bls_b5cvpsez_legendre_sum) + (e))) /\ forall ff_i_bls_b5cvpsez_legendre_sum. (exists ff_lt_bls_b5cvpsez_legendre_sum_bound. ff_lt_bls_b5cvpsez_legendre_sum_bound + S ff_i_bls_b5cvpsez_legendre_sum = n) -> exists ff_a_bls_b5cvpsez_legendre_sum ff_r_bls_b5cvpsez_legendre_sum ff_s_bls_b5cvpsez_legendre_sum. ((((exists ff_h_bls_b5cvpsez_legendre_sum_summand. ff_h_bls_b5cvpsez_legendre_sum_summand + S (ff_a_bls_b5cvpsez_legendre_sum) = S ((S (ff_i_bls_b5cvpsez_legendre_sum)) * bls_scale_b5cvpsez_legendre)) /\ exists ff_q_bls_b5cvpsez_legendre_sum_summand. bls_code_b5cvpsez_legendre = ff_q_bls_b5cvpsez_legendre_sum_summand * S ((S (ff_i_bls_b5cvpsez_legendre_sum)) * bls_scale_b5cvpsez_legendre) + (ff_a_bls_b5cvpsez_legendre_sum))) /\ ((((exists ff_h_bls_b5cvpsez_legendre_sum_partial. ff_h_bls_b5cvpsez_legendre_sum_partial + S (ff_r_bls_b5cvpsez_legendre_sum) = S ((S (ff_i_bls_b5cvpsez_legendre_sum)) * ff_v_bls_b5cvpsez_legendre_sum)) /\ exists ff_q_bls_b5cvpsez_legendre_sum_partial. ff_u_bls_b5cvpsez_legendre_sum = ff_q_bls_b5cvpsez_legendre_sum_partial * S ((S (ff_i_bls_b5cvpsez_legendre_sum)) * ff_v_bls_b5cvpsez_legendre_sum) + (ff_r_bls_b5cvpsez_legendre_sum))) /\ ((((exists ff_h_bls_b5cvpsez_legendre_sum_successor. ff_h_bls_b5cvpsez_legendre_sum_successor + S (ff_s_bls_b5cvpsez_legendre_sum) = S ((S (S ff_i_bls_b5cvpsez_legendre_sum)) * ff_v_bls_b5cvpsez_legendre_sum)) /\ exists ff_q_bls_b5cvpsez_legendre_sum_successor. ff_u_bls_b5cvpsez_legendre_sum = ff_q_bls_b5cvpsez_legendre_sum_successor * S ((S (S ff_i_bls_b5cvpsez_legendre_sum)) * ff_v_bls_b5cvpsez_legendre_sum) + (ff_s_bls_b5cvpsez_legendre_sum))) /\ ff_s_bls_b5cvpsez_legendre_sum = ff_r_bls_b5cvpsez_legendre_sum + ff_a_bls_b5cvpsez_legendre_sum)))))))) -> t = eProof neighborhood
Direct theorem prerequisites
BT00S3 legendre_sum_functional BT0018 le_succ BT0002 add_comm BT0000 zero_add BT00SR beta_sum_succ_last_zero BT00XP power_quotient_prefix_tail_entry_zeroDirect 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–4
02Induction on gL5–11
03Establish hbase_lengthL12–17
04Establish hcompetingL18–18
Establish this local claim before using it. It is not an additional assumption.
- L18
have hcompeting : LegendreSum(p,n,t)Definitions: LegendreSum(p,n,t)Original native command in the exact edition
05Construct an explicit witnessL19–20
06Separate the logical casesL21–21
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L21
split
07Use earlier factsL22–30
Instantiate or apply named facts and discharge the corresponding proof obligations.
08Fix variables and assumptionsL31–36
09Establish hstep_lengthL37–38
10Establish hrestrictedL39–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprefix.
- L39
have hrestricted : PowerQuotPrefix(p,n,b,c,n + g)Definitions: PowerQuotPrefix(p,n,b,c,n + g)Original native command in the exact edition - L40
intro i - L41
intro hi - L42
specialize hprefix i - L43
apply hprefix - L44
rewrite hstep_length - L45
specialize le_succ (S i) - L46
specialize le_succ (n + g) - L47
apply le_succ - L48
exact hi
11Establish htail_startL49–49
Establish this local claim before using it. It is not an additional assumption.
12Construct an explicit witnessL50–50
Supply the displayed value, then prove that it has the required property.
- L50
exists g
13Use earlier factsL51–51
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L51
apply add_comm
14Establish htail_boundL52–52
Establish this local claim before using it. It is not an additional assumption.
- L52
have htail_bound : Lt(n + g,n + S g)Definitions: Lt(n + g,n + S g)Original native command in the exact edition
15Construct an explicit witnessL53–53
Supply the displayed value, then prove that it has the required property.
- L53
exists 0
16Calculate and transport equalitiesL54–54
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L54
rewrite hstep_length
17Use earlier factsL55–56
18Establish hzeroL57–66
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply power quotient prefix tail entry zero.
- L57
have hzero : BetaAt(b,c,n + g,0)Definitions: BetaAt(b,c,n + g,0)Original native command in the exact edition - L58
specialize power_quotient_prefix_tail_entry_zero p - L59
specialize power_quotient_prefix_tail_entry_zero n - L60
specialize power_quotient_prefix_tail_entry_zero b - L61
specialize power_quotient_prefix_tail_entry_zero c - L62
specialize power_quotient_prefix_tail_entry_zero (n + S g) - L63
specialize power_quotient_prefix_tail_entry_zero (n + g) - L64
apply power_quotient_prefix_tail_entry_zero - L65
exact hp - L66
exact hprefix
19Use earlier factsL67–68
20Calculate and transport equalitiesL69–71
21Establish hprefix_sumL72–81
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum succ last zero.
- L72
have hprefix_sum : Sum(b,c,n + g,t)Definitions: Sum(b,c,n + g,t)Original native command in the exact edition - L73
specialize beta_sum_succ_last_zero b - L74
specialize beta_sum_succ_last_zero c - L75
specialize beta_sum_succ_last_zero (n + g) - L76
specialize beta_sum_succ_last_zero t - L77
apply beta_sum_succ_last_zero - L78
exact hsum - L79
exact hzero - L80
specialize IH t - L81
specialize IH e
Original defined command ledger · 86 lines
- 0001
intro p - 0002
intro n - 0003
intro b - 0004
intro c - 0005
induction g - 0006
intro t - 0007
intro e - 0008
intro hp - 0009
intro hprefix - 0010
intro hsum - 0011
intro hlegendre - 0012
have hbase_length : n + 0 = n - 0013
apply PA3 - 0014
rewrite hbase_length at hprefix - 0015
rewrite hbase_length at hsum - 0016
rewrite hbase_length at hsum - 0017
rewrite hbase_length at hsum - 0018
have hcompeting : LegendreSum(p,n,t)Exact native replay line
have hcompeting : exists bls_code_b5cvpsez_base bls_scale_b5cvpsez_base. ((forall bls_index_b5cvpsez_base_prefix. (exists bls_gap_b5cvpsez_base_prefix_bound. bls_gap_b5cvpsez_base_prefix_bound + S (bls_index_b5cvpsez_base_prefix) = (n)) -> exists bls_power_b5cvpsez_base_prefix bls_quotient_b5cvpsez_base_prefix bls_remainder_b5cvpsez_base_prefix. ((exists bpvi_b_bls_b5cvpsez_base_prefix_power bpvi_c_bls_b5cvpsez_base_prefix_power. ((forall bpvi_i_bls_b5cvpsez_base_prefix_power. (exists bpvi_repeat_gap_bls_b5cvpsez_base_prefix_power. bpvi_repeat_gap_bls_b5cvpsez_base_prefix_power + S bpvi_i_bls_b5cvpsez_base_prefix_power = S bls_index_b5cvpsez_base_prefix) -> (((exists bpvi_h_bls_b5cvpsez_base_prefix_power_repeat. bpvi_h_bls_b5cvpsez_base_prefix_power_repeat + S (p) = S ((S (bpvi_i_bls_b5cvpsez_base_prefix_power)) * bpvi_c_bls_b5cvpsez_base_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_base_prefix_power_repeat. bpvi_b_bls_b5cvpsez_base_prefix_power = bpvi_q_bls_b5cvpsez_base_prefix_power_repeat * S ((S (bpvi_i_bls_b5cvpsez_base_prefix_power)) * bpvi_c_bls_b5cvpsez_base_prefix_power) + (p)))) /\ (exists bpvi_u_bls_b5cvpsez_base_prefix_power bpvi_v_bls_b5cvpsez_base_prefix_power. ((((exists bpvi_h_bls_b5cvpsez_base_prefix_power_start. bpvi_h_bls_b5cvpsez_base_prefix_power_start + S (1) = S ((S (0)) * bpvi_v_bls_b5cvpsez_base_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_base_prefix_power_start. bpvi_u_bls_b5cvpsez_base_prefix_power = bpvi_q_bls_b5cvpsez_base_prefix_power_start * S ((S (0)) * bpvi_v_bls_b5cvpsez_base_prefix_power) + (1))) /\ ((((exists bpvi_h_bls_b5cvpsez_base_prefix_power_terminal. bpvi_h_bls_b5cvpsez_base_prefix_power_terminal + S (bls_power_b5cvpsez_base_prefix) = S ((S (S bls_index_b5cvpsez_base_prefix)) * bpvi_v_bls_b5cvpsez_base_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_base_prefix_power_terminal. bpvi_u_bls_b5cvpsez_base_prefix_power = bpvi_q_bls_b5cvpsez_base_prefix_power_terminal * S ((S (S bls_index_b5cvpsez_base_prefix)) * bpvi_v_bls_b5cvpsez_base_prefix_power) + (bls_power_b5cvpsez_base_prefix))) /\ forall bpvi_j_bls_b5cvpsez_base_prefix_power. (exists bpvi_product_gap_bls_b5cvpsez_base_prefix_power. bpvi_product_gap_bls_b5cvpsez_base_prefix_power + S bpvi_j_bls_b5cvpsez_base_prefix_power = S bls_index_b5cvpsez_base_prefix) -> exists bpvi_factor_bls_b5cvpsez_base_prefix_power bpvi_partial_bls_b5cvpsez_base_prefix_power bpvi_successor_bls_b5cvpsez_base_prefix_power. ((((exists bpvi_h_bls_b5cvpsez_base_prefix_power_factor. bpvi_h_bls_b5cvpsez_base_prefix_power_factor + S (bpvi_factor_bls_b5cvpsez_base_prefix_power) = S ((S (bpvi_j_bls_b5cvpsez_base_prefix_power)) * bpvi_c_bls_b5cvpsez_base_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_base_prefix_power_factor. bpvi_b_bls_b5cvpsez_base_prefix_power = bpvi_q_bls_b5cvpsez_base_prefix_power_factor * S ((S (bpvi_j_bls_b5cvpsez_base_prefix_power)) * bpvi_c_bls_b5cvpsez_base_prefix_power) + (bpvi_factor_bls_b5cvpsez_base_prefix_power))) /\ ((((exists bpvi_h_bls_b5cvpsez_base_prefix_power_partial. bpvi_h_bls_b5cvpsez_base_prefix_power_partial + S (bpvi_partial_bls_b5cvpsez_base_prefix_power) = S ((S (bpvi_j_bls_b5cvpsez_base_prefix_power)) * bpvi_v_bls_b5cvpsez_base_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_base_prefix_power_partial. bpvi_u_bls_b5cvpsez_base_prefix_power = bpvi_q_bls_b5cvpsez_base_prefix_power_partial * S ((S (bpvi_j_bls_b5cvpsez_base_prefix_power)) * bpvi_v_bls_b5cvpsez_base_prefix_power) + (bpvi_partial_bls_b5cvpsez_base_prefix_power))) /\ ((((exists bpvi_h_bls_b5cvpsez_base_prefix_power_successor. bpvi_h_bls_b5cvpsez_base_prefix_power_successor + S (bpvi_successor_bls_b5cvpsez_base_prefix_power) = S ((S (S bpvi_j_bls_b5cvpsez_base_prefix_power)) * bpvi_v_bls_b5cvpsez_base_prefix_power)) /\ exists bpvi_q_bls_b5cvpsez_base_prefix_power_successor. bpvi_u_bls_b5cvpsez_base_prefix_power = bpvi_q_bls_b5cvpsez_base_prefix_power_successor * S ((S (S bpvi_j_bls_b5cvpsez_base_prefix_power)) * bpvi_v_bls_b5cvpsez_base_prefix_power) + (bpvi_successor_bls_b5cvpsez_base_prefix_power))) /\ bpvi_successor_bls_b5cvpsez_base_prefix_power = bpvi_partial_bls_b5cvpsez_base_prefix_power * bpvi_factor_bls_b5cvpsez_base_prefix_power)))))))) /\ ((((exists ff_h_bls_b5cvpsez_base_prefix_quotient_entry. ff_h_bls_b5cvpsez_base_prefix_quotient_entry + S (bls_quotient_b5cvpsez_base_prefix) = S ((S (bls_index_b5cvpsez_base_prefix)) * bls_scale_b5cvpsez_base)) /\ exists ff_q_bls_b5cvpsez_base_prefix_quotient_entry. bls_code_b5cvpsez_base = ff_q_bls_b5cvpsez_base_prefix_quotient_entry * S ((S (bls_index_b5cvpsez_base_prefix)) * bls_scale_b5cvpsez_base) + (bls_quotient_b5cvpsez_base_prefix))) /\ ((n = bls_power_b5cvpsez_base_prefix * bls_quotient_b5cvpsez_base_prefix + bls_remainder_b5cvpsez_base_prefix /\ exists bls_remainder_gap_b5cvpsez_base_prefix_division. bls_remainder_gap_b5cvpsez_base_prefix_division + S (bls_remainder_b5cvpsez_base_prefix) = bls_power_b5cvpsez_base_prefix))))) /\ (exists ff_u_bls_b5cvpsez_base_sum ff_v_bls_b5cvpsez_base_sum. ((((exists ff_h_bls_b5cvpsez_base_sum_start. ff_h_bls_b5cvpsez_base_sum_start + S (0) = S ((S (0)) * ff_v_bls_b5cvpsez_base_sum)) /\ exists ff_q_bls_b5cvpsez_base_sum_start. ff_u_bls_b5cvpsez_base_sum = ff_q_bls_b5cvpsez_base_sum_start * S ((S (0)) * ff_v_bls_b5cvpsez_base_sum) + (0))) /\ ((((exists ff_h_bls_b5cvpsez_base_sum_terminal. ff_h_bls_b5cvpsez_base_sum_terminal + S (t) = S ((S (n)) * ff_v_bls_b5cvpsez_base_sum)) /\ exists ff_q_bls_b5cvpsez_base_sum_terminal. ff_u_bls_b5cvpsez_base_sum = ff_q_bls_b5cvpsez_base_sum_terminal * S ((S (n)) * ff_v_bls_b5cvpsez_base_sum) + (t))) /\ forall ff_i_bls_b5cvpsez_base_sum. (exists ff_lt_bls_b5cvpsez_base_sum_bound. ff_lt_bls_b5cvpsez_base_sum_bound + S ff_i_bls_b5cvpsez_base_sum = n) -> exists ff_a_bls_b5cvpsez_base_sum ff_r_bls_b5cvpsez_base_sum ff_s_bls_b5cvpsez_base_sum. ((((exists ff_h_bls_b5cvpsez_base_sum_summand. ff_h_bls_b5cvpsez_base_sum_summand + S (ff_a_bls_b5cvpsez_base_sum) = S ((S (ff_i_bls_b5cvpsez_base_sum)) * bls_scale_b5cvpsez_base)) /\ exists ff_q_bls_b5cvpsez_base_sum_summand. bls_code_b5cvpsez_base = ff_q_bls_b5cvpsez_base_sum_summand * S ((S (ff_i_bls_b5cvpsez_base_sum)) * bls_scale_b5cvpsez_base) + (ff_a_bls_b5cvpsez_base_sum))) /\ ((((exists ff_h_bls_b5cvpsez_base_sum_partial. ff_h_bls_b5cvpsez_base_sum_partial + S (ff_r_bls_b5cvpsez_base_sum) = S ((S (ff_i_bls_b5cvpsez_base_sum)) * ff_v_bls_b5cvpsez_base_sum)) /\ exists ff_q_bls_b5cvpsez_base_sum_partial. ff_u_bls_b5cvpsez_base_sum = ff_q_bls_b5cvpsez_base_sum_partial * S ((S (ff_i_bls_b5cvpsez_base_sum)) * ff_v_bls_b5cvpsez_base_sum) + (ff_r_bls_b5cvpsez_base_sum))) /\ ((((exists ff_h_bls_b5cvpsez_base_sum_successor. ff_h_bls_b5cvpsez_base_sum_successor + S (ff_s_bls_b5cvpsez_base_sum) = S ((S (S ff_i_bls_b5cvpsez_base_sum)) * ff_v_bls_b5cvpsez_base_sum)) /\ exists ff_q_bls_b5cvpsez_base_sum_successor. ff_u_bls_b5cvpsez_base_sum = ff_q_bls_b5cvpsez_base_sum_successor * S ((S (S ff_i_bls_b5cvpsez_base_sum)) * ff_v_bls_b5cvpsez_base_sum) + (ff_s_bls_b5cvpsez_base_sum))) /\ ff_s_bls_b5cvpsez_base_sum = ff_r_bls_b5cvpsez_base_sum + ff_a_bls_b5cvpsez_base_sum))))))) - 0019
exists b - 0020
exists c - 0021
split - 0022
exact hprefix - 0023
exact hsum - 0024
specialize legendre_sum_functional p - 0025
specialize legendre_sum_functional n - 0026
specialize legendre_sum_functional t - 0027
specialize legendre_sum_functional e - 0028
apply legendre_sum_functional - 0029
exact hcompeting - 0030
exact hlegendre - 0031
intro t - 0032
intro e - 0033
intro hp - 0034
intro hprefix - 0035
intro hsum - 0036
intro hlegendre - 0037
have hstep_length : n + S g = S (n + g) - 0038
apply PA4 - 0039
have hrestricted : PowerQuotPrefix(p,n,b,c,n + g)Exact native replay line
have hrestricted : forall bls_index_b5cvpsez_restricted. (exists bls_gap_b5cvpsez_restricted_bound. bls_gap_b5cvpsez_restricted_bound + S (bls_index_b5cvpsez_restricted) = (n + g)) -> exists bls_power_b5cvpsez_restricted bls_quotient_b5cvpsez_restricted bls_remainder_b5cvpsez_restricted. ((exists bpvi_b_bls_b5cvpsez_restricted_power bpvi_c_bls_b5cvpsez_restricted_power. ((forall bpvi_i_bls_b5cvpsez_restricted_power. (exists bpvi_repeat_gap_bls_b5cvpsez_restricted_power. bpvi_repeat_gap_bls_b5cvpsez_restricted_power + S bpvi_i_bls_b5cvpsez_restricted_power = S bls_index_b5cvpsez_restricted) -> (((exists bpvi_h_bls_b5cvpsez_restricted_power_repeat. bpvi_h_bls_b5cvpsez_restricted_power_repeat + S (p) = S ((S (bpvi_i_bls_b5cvpsez_restricted_power)) * bpvi_c_bls_b5cvpsez_restricted_power)) /\ exists bpvi_q_bls_b5cvpsez_restricted_power_repeat. bpvi_b_bls_b5cvpsez_restricted_power = bpvi_q_bls_b5cvpsez_restricted_power_repeat * S ((S (bpvi_i_bls_b5cvpsez_restricted_power)) * bpvi_c_bls_b5cvpsez_restricted_power) + (p)))) /\ (exists bpvi_u_bls_b5cvpsez_restricted_power bpvi_v_bls_b5cvpsez_restricted_power. ((((exists bpvi_h_bls_b5cvpsez_restricted_power_start. bpvi_h_bls_b5cvpsez_restricted_power_start + S (1) = S ((S (0)) * bpvi_v_bls_b5cvpsez_restricted_power)) /\ exists bpvi_q_bls_b5cvpsez_restricted_power_start. bpvi_u_bls_b5cvpsez_restricted_power = bpvi_q_bls_b5cvpsez_restricted_power_start * S ((S (0)) * bpvi_v_bls_b5cvpsez_restricted_power) + (1))) /\ ((((exists bpvi_h_bls_b5cvpsez_restricted_power_terminal. bpvi_h_bls_b5cvpsez_restricted_power_terminal + S (bls_power_b5cvpsez_restricted) = S ((S (S bls_index_b5cvpsez_restricted)) * bpvi_v_bls_b5cvpsez_restricted_power)) /\ exists bpvi_q_bls_b5cvpsez_restricted_power_terminal. bpvi_u_bls_b5cvpsez_restricted_power = bpvi_q_bls_b5cvpsez_restricted_power_terminal * S ((S (S bls_index_b5cvpsez_restricted)) * bpvi_v_bls_b5cvpsez_restricted_power) + (bls_power_b5cvpsez_restricted))) /\ forall bpvi_j_bls_b5cvpsez_restricted_power. (exists bpvi_product_gap_bls_b5cvpsez_restricted_power. bpvi_product_gap_bls_b5cvpsez_restricted_power + S bpvi_j_bls_b5cvpsez_restricted_power = S bls_index_b5cvpsez_restricted) -> exists bpvi_factor_bls_b5cvpsez_restricted_power bpvi_partial_bls_b5cvpsez_restricted_power bpvi_successor_bls_b5cvpsez_restricted_power. ((((exists bpvi_h_bls_b5cvpsez_restricted_power_factor. bpvi_h_bls_b5cvpsez_restricted_power_factor + S (bpvi_factor_bls_b5cvpsez_restricted_power) = S ((S (bpvi_j_bls_b5cvpsez_restricted_power)) * bpvi_c_bls_b5cvpsez_restricted_power)) /\ exists bpvi_q_bls_b5cvpsez_restricted_power_factor. bpvi_b_bls_b5cvpsez_restricted_power = bpvi_q_bls_b5cvpsez_restricted_power_factor * S ((S (bpvi_j_bls_b5cvpsez_restricted_power)) * bpvi_c_bls_b5cvpsez_restricted_power) + (bpvi_factor_bls_b5cvpsez_restricted_power))) /\ ((((exists bpvi_h_bls_b5cvpsez_restricted_power_partial. bpvi_h_bls_b5cvpsez_restricted_power_partial + S (bpvi_partial_bls_b5cvpsez_restricted_power) = S ((S (bpvi_j_bls_b5cvpsez_restricted_power)) * bpvi_v_bls_b5cvpsez_restricted_power)) /\ exists bpvi_q_bls_b5cvpsez_restricted_power_partial. bpvi_u_bls_b5cvpsez_restricted_power = bpvi_q_bls_b5cvpsez_restricted_power_partial * S ((S (bpvi_j_bls_b5cvpsez_restricted_power)) * bpvi_v_bls_b5cvpsez_restricted_power) + (bpvi_partial_bls_b5cvpsez_restricted_power))) /\ ((((exists bpvi_h_bls_b5cvpsez_restricted_power_successor. bpvi_h_bls_b5cvpsez_restricted_power_successor + S (bpvi_successor_bls_b5cvpsez_restricted_power) = S ((S (S bpvi_j_bls_b5cvpsez_restricted_power)) * bpvi_v_bls_b5cvpsez_restricted_power)) /\ exists bpvi_q_bls_b5cvpsez_restricted_power_successor. bpvi_u_bls_b5cvpsez_restricted_power = bpvi_q_bls_b5cvpsez_restricted_power_successor * S ((S (S bpvi_j_bls_b5cvpsez_restricted_power)) * bpvi_v_bls_b5cvpsez_restricted_power) + (bpvi_successor_bls_b5cvpsez_restricted_power))) /\ bpvi_successor_bls_b5cvpsez_restricted_power = bpvi_partial_bls_b5cvpsez_restricted_power * bpvi_factor_bls_b5cvpsez_restricted_power)))))))) /\ ((((exists ff_h_bls_b5cvpsez_restricted_quotient_entry. ff_h_bls_b5cvpsez_restricted_quotient_entry + S (bls_quotient_b5cvpsez_restricted) = S ((S (bls_index_b5cvpsez_restricted)) * c)) /\ exists ff_q_bls_b5cvpsez_restricted_quotient_entry. b = ff_q_bls_b5cvpsez_restricted_quotient_entry * S ((S (bls_index_b5cvpsez_restricted)) * c) + (bls_quotient_b5cvpsez_restricted))) /\ ((n = bls_power_b5cvpsez_restricted * bls_quotient_b5cvpsez_restricted + bls_remainder_b5cvpsez_restricted /\ exists bls_remainder_gap_b5cvpsez_restricted_division. bls_remainder_gap_b5cvpsez_restricted_division + S (bls_remainder_b5cvpsez_restricted) = bls_power_b5cvpsez_restricted)))) - 0040
intro i - 0041
intro hi - 0042
specialize hprefix i - 0043
apply hprefix - 0044
rewrite hstep_length - 0045
specialize le_succ (S i) - 0046
specialize le_succ (n + g) - 0047
apply le_succ - 0048
exact hi - 0049
have htail_start : Le(n,n + g)Exact native replay line
have htail_start : exists k. k + n = n + g - 0050
exists g - 0051
apply add_comm - 0052
have htail_bound : Lt(n + g,n + S g)Exact native replay line
have htail_bound : exists k. k + S (n + g) = n + S g - 0053
exists 0 - 0054
rewrite hstep_length - 0055
specialize zero_add (S (n + g)) - 0056
exact zero_add - 0057
have hzero : BetaAt(b,c,n + g,0)Exact native replay line
have hzero : ((exists fs_h_b5cvpsez_zero. fs_h_b5cvpsez_zero + S (0) = S ((S (n + g)) * c)) /\ exists fs_q_b5cvpsez_zero. b = fs_q_b5cvpsez_zero * S ((S (n + g)) * c) + (0)) - 0058
specialize power_quotient_prefix_tail_entry_zero p - 0059
specialize power_quotient_prefix_tail_entry_zero n - 0060
specialize power_quotient_prefix_tail_entry_zero b - 0061
specialize power_quotient_prefix_tail_entry_zero c - 0062
specialize power_quotient_prefix_tail_entry_zero (n + S g) - 0063
specialize power_quotient_prefix_tail_entry_zero (n + g) - 0064
apply power_quotient_prefix_tail_entry_zero - 0065
exact hp - 0066
exact hprefix - 0067
exact htail_start - 0068
exact htail_bound - 0069
rewrite hstep_length at hsum - 0070
rewrite hstep_length at hsum - 0071
rewrite hstep_length at hsum - 0072
have hprefix_sum : Sum(b,c,n + g,t)Exact native replay line
have hprefix_sum : exists fs_u_b5cvpsez_prefix_sum fs_v_b5cvpsez_prefix_sum. ((((exists fs_h_b5cvpsez_prefix_sum_body_start. fs_h_b5cvpsez_prefix_sum_body_start + S (0) = S ((S (0)) * fs_v_b5cvpsez_prefix_sum)) /\ exists fs_q_b5cvpsez_prefix_sum_body_start. fs_u_b5cvpsez_prefix_sum = fs_q_b5cvpsez_prefix_sum_body_start * S ((S (0)) * fs_v_b5cvpsez_prefix_sum) + (0))) /\ ((((exists fs_h_b5cvpsez_prefix_sum_body_terminal. fs_h_b5cvpsez_prefix_sum_body_terminal + S (t) = S ((S (n + g)) * fs_v_b5cvpsez_prefix_sum)) /\ exists fs_q_b5cvpsez_prefix_sum_body_terminal. fs_u_b5cvpsez_prefix_sum = fs_q_b5cvpsez_prefix_sum_body_terminal * S ((S (n + g)) * fs_v_b5cvpsez_prefix_sum) + (t))) /\ forall fs_i_b5cvpsez_prefix_sum_body_steps. (exists fs_lt_b5cvpsez_prefix_sum_body_steps_bound. fs_lt_b5cvpsez_prefix_sum_body_steps_bound + S fs_i_b5cvpsez_prefix_sum_body_steps = n + g) -> exists fs_a_b5cvpsez_prefix_sum_body_steps fs_r_b5cvpsez_prefix_sum_body_steps fs_s_b5cvpsez_prefix_sum_body_steps. ((((exists fs_h_b5cvpsez_prefix_sum_body_steps_summand. fs_h_b5cvpsez_prefix_sum_body_steps_summand + S (fs_a_b5cvpsez_prefix_sum_body_steps) = S ((S (fs_i_b5cvpsez_prefix_sum_body_steps)) * c)) /\ exists fs_q_b5cvpsez_prefix_sum_body_steps_summand. b = fs_q_b5cvpsez_prefix_sum_body_steps_summand * S ((S (fs_i_b5cvpsez_prefix_sum_body_steps)) * c) + (fs_a_b5cvpsez_prefix_sum_body_steps))) /\ ((((exists fs_h_b5cvpsez_prefix_sum_body_steps_partial. fs_h_b5cvpsez_prefix_sum_body_steps_partial + S (fs_r_b5cvpsez_prefix_sum_body_steps) = S ((S (fs_i_b5cvpsez_prefix_sum_body_steps)) * fs_v_b5cvpsez_prefix_sum)) /\ exists fs_q_b5cvpsez_prefix_sum_body_steps_partial. fs_u_b5cvpsez_prefix_sum = fs_q_b5cvpsez_prefix_sum_body_steps_partial * S ((S (fs_i_b5cvpsez_prefix_sum_body_steps)) * fs_v_b5cvpsez_prefix_sum) + (fs_r_b5cvpsez_prefix_sum_body_steps))) /\ ((((exists fs_h_b5cvpsez_prefix_sum_body_steps_successor. fs_h_b5cvpsez_prefix_sum_body_steps_successor + S (fs_s_b5cvpsez_prefix_sum_body_steps) = S ((S (S fs_i_b5cvpsez_prefix_sum_body_steps)) * fs_v_b5cvpsez_prefix_sum)) /\ exists fs_q_b5cvpsez_prefix_sum_body_steps_successor. fs_u_b5cvpsez_prefix_sum = fs_q_b5cvpsez_prefix_sum_body_steps_successor * S ((S (S fs_i_b5cvpsez_prefix_sum_body_steps)) * fs_v_b5cvpsez_prefix_sum) + (fs_s_b5cvpsez_prefix_sum_body_steps))) /\ fs_s_b5cvpsez_prefix_sum_body_steps = fs_r_b5cvpsez_prefix_sum_body_steps + fs_a_b5cvpsez_prefix_sum_body_steps))))) - 0073
specialize beta_sum_succ_last_zero b - 0074
specialize beta_sum_succ_last_zero c - 0075
specialize beta_sum_succ_last_zero (n + g) - 0076
specialize beta_sum_succ_last_zero t - 0077
apply beta_sum_succ_last_zero - 0078
exact hsum - 0079
exact hzero - 0080
specialize IH t - 0081
specialize IH e - 0082
apply IH - 0083
exact hp - 0084
exact hrestricted - 0085
exact hprefix_sum - 0086
exact hlegendre