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.
Exact expanded first-order arithmetic statement
forall b c d f B l z k Q. (forall pc_index_weight_upper_source pc_factor_weight_upper_source pc_bit_weight_upper_source. (exists pc_lt_weight_upper_source_index. pc_lt_weight_upper_source_index + S (pc_index_weight_upper_source) = (l)) -> (((exists fs_h_pc_weight_upper_source_factor. fs_h_pc_weight_upper_source_factor + S (pc_factor_weight_upper_source) = S ((S (pc_index_weight_upper_source)) * c)) /\ exists fs_q_pc_weight_upper_source_factor. b = fs_q_pc_weight_upper_source_factor * S ((S (pc_index_weight_upper_source)) * c) + (pc_factor_weight_upper_source))) -> (((exists fs_h_pc_weight_upper_source_bit. fs_h_pc_weight_upper_source_bit + S (pc_bit_weight_upper_source) = S ((S (pc_index_weight_upper_source)) * f)) /\ exists fs_q_pc_weight_upper_source_bit. d = fs_q_pc_weight_upper_source_bit * S ((S (pc_index_weight_upper_source)) * f) + (pc_bit_weight_upper_source))) -> ((pc_bit_weight_upper_source = 0 /\ (pc_factor_weight_upper_source = 1)) \/ (pc_bit_weight_upper_source = 1 /\ (exists pc_le_weight_upper_source_one. pc_le_weight_upper_source_one + (pc_factor_weight_upper_source) = (B))))) -> (exists ff_u_pc_weight_upper_product ff_v_pc_weight_upper_product. ((((exists ff_h_pc_weight_upper_product_start. ff_h_pc_weight_upper_product_start + S (1) = S ((S (0)) * ff_v_pc_weight_upper_product)) /\ exists ff_q_pc_weight_upper_product_start. ff_u_pc_weight_upper_product = ff_q_pc_weight_upper_product_start * S ((S (0)) * ff_v_pc_weight_upper_product) + (1))) /\ ((((exists ff_h_pc_weight_upper_product_terminal. ff_h_pc_weight_upper_product_terminal + S (z) = S ((S (l)) * ff_v_pc_weight_upper_product)) /\ exists ff_q_pc_weight_upper_product_terminal. ff_u_pc_weight_upper_product = ff_q_pc_weight_upper_product_terminal * S ((S (l)) * ff_v_pc_weight_upper_product) + (z))) /\ forall ff_i_pc_weight_upper_product. (exists ff_lt_pc_weight_upper_product_bound. ff_lt_pc_weight_upper_product_bound + S ff_i_pc_weight_upper_product = l) -> exists ff_p_pc_weight_upper_product ff_r_pc_weight_upper_product ff_s_pc_weight_upper_product. ((((exists ff_h_pc_weight_upper_product_factor. ff_h_pc_weight_upper_product_factor + S (ff_p_pc_weight_upper_product) = S ((S (ff_i_pc_weight_upper_product)) * c)) /\ exists ff_q_pc_weight_upper_product_factor. b = ff_q_pc_weight_upper_product_factor * S ((S (ff_i_pc_weight_upper_product)) * c) + (ff_p_pc_weight_upper_product))) /\ ((((exists ff_h_pc_weight_upper_product_partial. ff_h_pc_weight_upper_product_partial + S (ff_r_pc_weight_upper_product) = S ((S (ff_i_pc_weight_upper_product)) * ff_v_pc_weight_upper_product)) /\ exists ff_q_pc_weight_upper_product_partial. ff_u_pc_weight_upper_product = ff_q_pc_weight_upper_product_partial * S ((S (ff_i_pc_weight_upper_product)) * ff_v_pc_weight_upper_product) + (ff_r_pc_weight_upper_product))) /\ ((((exists ff_h_pc_weight_upper_product_successor. ff_h_pc_weight_upper_product_successor + S (ff_s_pc_weight_upper_product) = S ((S (S ff_i_pc_weight_upper_product)) * ff_v_pc_weight_upper_product)) /\ exists ff_q_pc_weight_upper_product_successor. ff_u_pc_weight_upper_product = ff_q_pc_weight_upper_product_successor * S ((S (S ff_i_pc_weight_upper_product)) * ff_v_pc_weight_upper_product) + (ff_s_pc_weight_upper_product))) /\ ff_s_pc_weight_upper_product = ff_r_pc_weight_upper_product * ff_p_pc_weight_upper_product)))))) -> (exists fs_u_pc_weight_upper_sum fs_v_pc_weight_upper_sum. ((((exists fs_h_pc_weight_upper_sum_body_start. fs_h_pc_weight_upper_sum_body_start + S (0) = S ((S (0)) * fs_v_pc_weight_upper_sum)) /\ exists fs_q_pc_weight_upper_sum_body_start. fs_u_pc_weight_upper_sum = fs_q_pc_weight_upper_sum_body_start * S ((S (0)) * fs_v_pc_weight_upper_sum) + (0))) /\ ((((exists fs_h_pc_weight_upper_sum_body_terminal. fs_h_pc_weight_upper_sum_body_terminal + S (k) = S ((S (l)) * fs_v_pc_weight_upper_sum)) /\ exists fs_q_pc_weight_upper_sum_body_terminal. fs_u_pc_weight_upper_sum = fs_q_pc_weight_upper_sum_body_terminal * S ((S (l)) * fs_v_pc_weight_upper_sum) + (k))) /\ forall fs_i_pc_weight_upper_sum_body_steps. (exists fs_lt_pc_weight_upper_sum_body_steps_bound. fs_lt_pc_weight_upper_sum_body_steps_bound + S fs_i_pc_weight_upper_sum_body_steps = l) -> exists fs_a_pc_weight_upper_sum_body_steps fs_r_pc_weight_upper_sum_body_steps fs_s_pc_weight_upper_sum_body_steps. ((((exists fs_h_pc_weight_upper_sum_body_steps_summand. fs_h_pc_weight_upper_sum_body_steps_summand + S (fs_a_pc_weight_upper_sum_body_steps) = S ((S (fs_i_pc_weight_upper_sum_body_steps)) * f)) /\ exists fs_q_pc_weight_upper_sum_body_steps_summand. d = fs_q_pc_weight_upper_sum_body_steps_summand * S ((S (fs_i_pc_weight_upper_sum_body_steps)) * f) + (fs_a_pc_weight_upper_sum_body_steps))) /\ ((((exists fs_h_pc_weight_upper_sum_body_steps_partial. fs_h_pc_weight_upper_sum_body_steps_partial + S (fs_r_pc_weight_upper_sum_body_steps) = S ((S (fs_i_pc_weight_upper_sum_body_steps)) * fs_v_pc_weight_upper_sum)) /\ exists fs_q_pc_weight_upper_sum_body_steps_partial. fs_u_pc_weight_upper_sum = fs_q_pc_weight_upper_sum_body_steps_partial * S ((S (fs_i_pc_weight_upper_sum_body_steps)) * fs_v_pc_weight_upper_sum) + (fs_r_pc_weight_upper_sum_body_steps))) /\ ((((exists fs_h_pc_weight_upper_sum_body_steps_successor. fs_h_pc_weight_upper_sum_body_steps_successor + S (fs_s_pc_weight_upper_sum_body_steps) = S ((S (S fs_i_pc_weight_upper_sum_body_steps)) * fs_v_pc_weight_upper_sum)) /\ exists fs_q_pc_weight_upper_sum_body_steps_successor. fs_u_pc_weight_upper_sum = fs_q_pc_weight_upper_sum_body_steps_successor * S ((S (S fs_i_pc_weight_upper_sum_body_steps)) * fs_v_pc_weight_upper_sum) + (fs_s_pc_weight_upper_sum_body_steps))) /\ fs_s_pc_weight_upper_sum_body_steps = fs_r_pc_weight_upper_sum_body_steps + fs_a_pc_weight_upper_sum_body_steps)))))) -> (exists pa_b_pc_weight_upper_power pa_c_pc_weight_upper_power. ((forall pa_i_pc_weight_upper_power_repeat. (exists pa_lt_pc_weight_upper_power_repeat_bound. pa_lt_pc_weight_upper_power_repeat_bound + S pa_i_pc_weight_upper_power_repeat = k) -> (((exists pa_h_pc_weight_upper_power_repeat_decoded. pa_h_pc_weight_upper_power_repeat_decoded + S (B) = S ((S (pa_i_pc_weight_upper_power_repeat)) * pa_c_pc_weight_upper_power)) /\ exists pa_q_pc_weight_upper_power_repeat_decoded. pa_b_pc_weight_upper_power = pa_q_pc_weight_upper_power_repeat_decoded * S ((S (pa_i_pc_weight_upper_power_repeat)) * pa_c_pc_weight_upper_power) + (B)))) /\ (exists pa_u_pc_weight_upper_power_product pa_v_pc_weight_upper_power_product. ((((exists pa_h_pc_weight_upper_power_product_start. pa_h_pc_weight_upper_power_product_start + S (1) = S ((S (0)) * pa_v_pc_weight_upper_power_product)) /\ exists pa_q_pc_weight_upper_power_product_start. pa_u_pc_weight_upper_power_product = pa_q_pc_weight_upper_power_product_start * S ((S (0)) * pa_v_pc_weight_upper_power_product) + (1))) /\ ((((exists pa_h_pc_weight_upper_power_product_terminal. pa_h_pc_weight_upper_power_product_terminal + S (Q) = S ((S (k)) * pa_v_pc_weight_upper_power_product)) /\ exists pa_q_pc_weight_upper_power_product_terminal. pa_u_pc_weight_upper_power_product = pa_q_pc_weight_upper_power_product_terminal * S ((S (k)) * pa_v_pc_weight_upper_power_product) + (Q))) /\ forall pa_i_pc_weight_upper_power_product. (exists pa_lt_pc_weight_upper_power_product_bound. pa_lt_pc_weight_upper_power_product_bound + S pa_i_pc_weight_upper_power_product = k) -> exists pa_p_pc_weight_upper_power_product pa_r_pc_weight_upper_power_product pa_s_pc_weight_upper_power_product. ((((exists pa_h_pc_weight_upper_power_product_factor. pa_h_pc_weight_upper_power_product_factor + S (pa_p_pc_weight_upper_power_product) = S ((S (pa_i_pc_weight_upper_power_product)) * pa_c_pc_weight_upper_power)) /\ exists pa_q_pc_weight_upper_power_product_factor. pa_b_pc_weight_upper_power = pa_q_pc_weight_upper_power_product_factor * S ((S (pa_i_pc_weight_upper_power_product)) * pa_c_pc_weight_upper_power) + (pa_p_pc_weight_upper_power_product))) /\ ((((exists pa_h_pc_weight_upper_power_product_partial. pa_h_pc_weight_upper_power_product_partial + S (pa_r_pc_weight_upper_power_product) = S ((S (pa_i_pc_weight_upper_power_product)) * pa_v_pc_weight_upper_power_product)) /\ exists pa_q_pc_weight_upper_power_product_partial. pa_u_pc_weight_upper_power_product = pa_q_pc_weight_upper_power_product_partial * S ((S (pa_i_pc_weight_upper_power_product)) * pa_v_pc_weight_upper_power_product) + (pa_r_pc_weight_upper_power_product))) /\ ((((exists pa_h_pc_weight_upper_power_product_successor. pa_h_pc_weight_upper_power_product_successor + S (pa_s_pc_weight_upper_power_product) = S ((S (S pa_i_pc_weight_upper_power_product)) * pa_v_pc_weight_upper_power_product)) /\ exists pa_q_pc_weight_upper_power_product_successor. pa_u_pc_weight_upper_power_product = pa_q_pc_weight_upper_power_product_successor * S ((S (S pa_i_pc_weight_upper_power_product)) * pa_v_pc_weight_upper_power_product) + (pa_s_pc_weight_upper_power_product))) /\ pa_s_pc_weight_upper_power_product = pa_r_pc_weight_upper_power_product * pa_p_pc_weight_upper_power_product)))))))) -> (exists pc_le_weight_upper_result. pc_le_weight_upper_result + (z) = (Q))Constructive proof overview
Generated structural guide
An actual bit-weighted finite product has the corresponding upper bound by a power of its actual bit sum.
The unchanged tactic script uses 12 declared prerequisites and contains 154 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_product_zero Stable theorem; checked-use authorized beta_sum_zero Stable theorem; checked-use authorized pow_zero Stable theorem; checked-use authorized le_refl Stable theorem; checked-use authorized beta_product_succ_decompose Stable theorem; checked-use authorized beta_sum_succ_decompose Stable theorem; checked-use authorized pow_exists Stable theorem; checked-use authorized le_succ Stable theorem; checked-use authorized pow_functional Stable theorem; checked-use authorized pow_successor_pair_mul Stable theorem; checked-use authorized mul_le_mul Alpha theorem; checked-use authorized mul_one Stable theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
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.
01Fix variables and assumptionsL1–5
02Induction on lL6–13
03Establish hz1L14–19
04Establish hk0L20–25
05Establish hQ1L26–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow zero.
06Use earlier factsL36–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
apply le_refl
07Fix variables and assumptionsL37–43
08Establish hprodL44–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta product succ decompose.
09Separate the logical casesL51–54
10Establish hsumL55–61
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum succ decompose.
11Separate the logical casesL62–65
12Establish hpL66–69
13Separate the logical casesL70–70
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L70
cases hp
14Establish hpreL71–80
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
15Fix variables and assumptionsL81–81
Work with arbitrary variables or the premises of the current implication.
- L81
intro he
16Use earlier factsL82–91
17Use earlier factsL92–94
18Establish hlastL95–103
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hw.
19Separate the logical casesL104–105
20Establish hk0L106–114
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply PA3.
21Establish hQ0L115–124
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow functional.
22Calculate and transport equalitiesL125–125
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L125
rewrite hlast_left_right
23Establish hmL126–129
24Separate the logical casesL130–130
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L130
cases hlast_right
25Establish hk1L131–135
26Establish hQ1L136–145
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow successor pair mul.
27Calculate and transport equalitiesL146–147
Original exact command ledger · 154 lines
- 0001
intro b - 0002
intro c - 0003
intro d - 0004
intro f - 0005
intro B - 0006
induction l - 0007
intro z - 0008
intro k - 0009
intro Q - 0010
intro hw - 0011
intro hz - 0012
intro hk - 0013
intro hQ - 0014
have hz1 : z = 1 - 0015
specialize beta_product_zero b - 0016
specialize beta_product_zero c - 0017
specialize beta_product_zero z - 0018
apply beta_product_zero - 0019
exact hz - 0020
have hk0 : k = 0 - 0021
specialize beta_sum_zero d - 0022
specialize beta_sum_zero f - 0023
specialize beta_sum_zero k - 0024
apply beta_sum_zero - 0025
exact hk - 0026
have hQ1 : Q = 1 - 0027
specialize pow_zero B - 0028
specialize pow_zero k - 0029
specialize pow_zero Q - 0030
apply pow_zero - 0031
exact hk0 - 0032
exact hQ - 0033
rewrite hz1 - 0034
rewrite hQ1 - 0035
specialize le_refl 1 - 0036
apply le_refl - 0037
intro z - 0038
intro k - 0039
intro Q - 0040
intro hw - 0041
intro hz - 0042
intro hk - 0043
intro hQ - 0044
have hprod : exists a w. (((exists fs_h_pc_weight_last_factor. fs_h_pc_weight_last_factor + S (a) = S ((S (l)) * c)) /\ exists fs_q_pc_weight_last_factor. b = fs_q_pc_weight_last_factor * S ((S (l)) * c) + (a))) /\ ((exists ff_u_pc_weight_previous_product ff_v_pc_weight_previous_product. ((((exists ff_h_pc_weight_previous_product_start. ff_h_pc_weight_previous_product_start + S (1) = S ((S (0)) * ff_v_pc_weight_previous_product)) /\ exists ff_q_pc_weight_previous_product_start. ff_u_pc_weight_previous_product = ff_q_pc_weight_previous_product_start * S ((S (0)) * ff_v_pc_weight_previous_product) + (1))) /\ ((((exists ff_h_pc_weight_previous_product_terminal. ff_h_pc_weight_previous_product_terminal + S (w) = S ((S (l)) * ff_v_pc_weight_previous_product)) /\ exists ff_q_pc_weight_previous_product_terminal. ff_u_pc_weight_previous_product = ff_q_pc_weight_previous_product_terminal * S ((S (l)) * ff_v_pc_weight_previous_product) + (w))) /\ forall ff_i_pc_weight_previous_product. (exists ff_lt_pc_weight_previous_product_bound. ff_lt_pc_weight_previous_product_bound + S ff_i_pc_weight_previous_product = l) -> exists ff_p_pc_weight_previous_product ff_r_pc_weight_previous_product ff_s_pc_weight_previous_product. ((((exists ff_h_pc_weight_previous_product_factor. ff_h_pc_weight_previous_product_factor + S (ff_p_pc_weight_previous_product) = S ((S (ff_i_pc_weight_previous_product)) * c)) /\ exists ff_q_pc_weight_previous_product_factor. b = ff_q_pc_weight_previous_product_factor * S ((S (ff_i_pc_weight_previous_product)) * c) + (ff_p_pc_weight_previous_product))) /\ ((((exists ff_h_pc_weight_previous_product_partial. ff_h_pc_weight_previous_product_partial + S (ff_r_pc_weight_previous_product) = S ((S (ff_i_pc_weight_previous_product)) * ff_v_pc_weight_previous_product)) /\ exists ff_q_pc_weight_previous_product_partial. ff_u_pc_weight_previous_product = ff_q_pc_weight_previous_product_partial * S ((S (ff_i_pc_weight_previous_product)) * ff_v_pc_weight_previous_product) + (ff_r_pc_weight_previous_product))) /\ ((((exists ff_h_pc_weight_previous_product_successor. ff_h_pc_weight_previous_product_successor + S (ff_s_pc_weight_previous_product) = S ((S (S ff_i_pc_weight_previous_product)) * ff_v_pc_weight_previous_product)) /\ exists ff_q_pc_weight_previous_product_successor. ff_u_pc_weight_previous_product = ff_q_pc_weight_previous_product_successor * S ((S (S ff_i_pc_weight_previous_product)) * ff_v_pc_weight_previous_product) + (ff_s_pc_weight_previous_product))) /\ ff_s_pc_weight_previous_product = ff_r_pc_weight_previous_product * ff_p_pc_weight_previous_product)))))) /\ z = w * a) - 0045
specialize beta_product_succ_decompose b - 0046
specialize beta_product_succ_decompose c - 0047
specialize beta_product_succ_decompose l - 0048
specialize beta_product_succ_decompose z - 0049
apply beta_product_succ_decompose - 0050
exact hz - 0051
cases hprod - 0052
cases hprod_witness - 0053
cases hprod_witness_witness - 0054
cases hprod_witness_witness_right - 0055
have hsum : exists e K. (((exists fs_h_pc_weight_last_bit. fs_h_pc_weight_last_bit + S (e) = S ((S (l)) * f)) /\ exists fs_q_pc_weight_last_bit. d = fs_q_pc_weight_last_bit * S ((S (l)) * f) + (e))) /\ ((exists fs_u_pc_weight_previous_sum fs_v_pc_weight_previous_sum. ((((exists fs_h_pc_weight_previous_sum_body_start. fs_h_pc_weight_previous_sum_body_start + S (0) = S ((S (0)) * fs_v_pc_weight_previous_sum)) /\ exists fs_q_pc_weight_previous_sum_body_start. fs_u_pc_weight_previous_sum = fs_q_pc_weight_previous_sum_body_start * S ((S (0)) * fs_v_pc_weight_previous_sum) + (0))) /\ ((((exists fs_h_pc_weight_previous_sum_body_terminal. fs_h_pc_weight_previous_sum_body_terminal + S (K) = S ((S (l)) * fs_v_pc_weight_previous_sum)) /\ exists fs_q_pc_weight_previous_sum_body_terminal. fs_u_pc_weight_previous_sum = fs_q_pc_weight_previous_sum_body_terminal * S ((S (l)) * fs_v_pc_weight_previous_sum) + (K))) /\ forall fs_i_pc_weight_previous_sum_body_steps. (exists fs_lt_pc_weight_previous_sum_body_steps_bound. fs_lt_pc_weight_previous_sum_body_steps_bound + S fs_i_pc_weight_previous_sum_body_steps = l) -> exists fs_a_pc_weight_previous_sum_body_steps fs_r_pc_weight_previous_sum_body_steps fs_s_pc_weight_previous_sum_body_steps. ((((exists fs_h_pc_weight_previous_sum_body_steps_summand. fs_h_pc_weight_previous_sum_body_steps_summand + S (fs_a_pc_weight_previous_sum_body_steps) = S ((S (fs_i_pc_weight_previous_sum_body_steps)) * f)) /\ exists fs_q_pc_weight_previous_sum_body_steps_summand. d = fs_q_pc_weight_previous_sum_body_steps_summand * S ((S (fs_i_pc_weight_previous_sum_body_steps)) * f) + (fs_a_pc_weight_previous_sum_body_steps))) /\ ((((exists fs_h_pc_weight_previous_sum_body_steps_partial. fs_h_pc_weight_previous_sum_body_steps_partial + S (fs_r_pc_weight_previous_sum_body_steps) = S ((S (fs_i_pc_weight_previous_sum_body_steps)) * fs_v_pc_weight_previous_sum)) /\ exists fs_q_pc_weight_previous_sum_body_steps_partial. fs_u_pc_weight_previous_sum = fs_q_pc_weight_previous_sum_body_steps_partial * S ((S (fs_i_pc_weight_previous_sum_body_steps)) * fs_v_pc_weight_previous_sum) + (fs_r_pc_weight_previous_sum_body_steps))) /\ ((((exists fs_h_pc_weight_previous_sum_body_steps_successor. fs_h_pc_weight_previous_sum_body_steps_successor + S (fs_s_pc_weight_previous_sum_body_steps) = S ((S (S fs_i_pc_weight_previous_sum_body_steps)) * fs_v_pc_weight_previous_sum)) /\ exists fs_q_pc_weight_previous_sum_body_steps_successor. fs_u_pc_weight_previous_sum = fs_q_pc_weight_previous_sum_body_steps_successor * S ((S (S fs_i_pc_weight_previous_sum_body_steps)) * fs_v_pc_weight_previous_sum) + (fs_s_pc_weight_previous_sum_body_steps))) /\ fs_s_pc_weight_previous_sum_body_steps = fs_r_pc_weight_previous_sum_body_steps + fs_a_pc_weight_previous_sum_body_steps)))))) /\ k = K + e) - 0056
specialize beta_sum_succ_decompose d - 0057
specialize beta_sum_succ_decompose f - 0058
specialize beta_sum_succ_decompose l - 0059
specialize beta_sum_succ_decompose k - 0060
apply beta_sum_succ_decompose - 0061
exact hk - 0062
cases hsum - 0063
cases hsum_witness - 0064
cases hsum_witness_witness - 0065
cases hsum_witness_witness_right - 0066
have hp : exists R. exists pa_b_pc_weight_previous_power pa_c_pc_weight_previous_power. ((forall pa_i_pc_weight_previous_power_repeat. (exists pa_lt_pc_weight_previous_power_repeat_bound. pa_lt_pc_weight_previous_power_repeat_bound + S pa_i_pc_weight_previous_power_repeat = x3) -> (((exists pa_h_pc_weight_previous_power_repeat_decoded. pa_h_pc_weight_previous_power_repeat_decoded + S (B) = S ((S (pa_i_pc_weight_previous_power_repeat)) * pa_c_pc_weight_previous_power)) /\ exists pa_q_pc_weight_previous_power_repeat_decoded. pa_b_pc_weight_previous_power = pa_q_pc_weight_previous_power_repeat_decoded * S ((S (pa_i_pc_weight_previous_power_repeat)) * pa_c_pc_weight_previous_power) + (B)))) /\ (exists pa_u_pc_weight_previous_power_product pa_v_pc_weight_previous_power_product. ((((exists pa_h_pc_weight_previous_power_product_start. pa_h_pc_weight_previous_power_product_start + S (1) = S ((S (0)) * pa_v_pc_weight_previous_power_product)) /\ exists pa_q_pc_weight_previous_power_product_start. pa_u_pc_weight_previous_power_product = pa_q_pc_weight_previous_power_product_start * S ((S (0)) * pa_v_pc_weight_previous_power_product) + (1))) /\ ((((exists pa_h_pc_weight_previous_power_product_terminal. pa_h_pc_weight_previous_power_product_terminal + S (R) = S ((S (x3)) * pa_v_pc_weight_previous_power_product)) /\ exists pa_q_pc_weight_previous_power_product_terminal. pa_u_pc_weight_previous_power_product = pa_q_pc_weight_previous_power_product_terminal * S ((S (x3)) * pa_v_pc_weight_previous_power_product) + (R))) /\ forall pa_i_pc_weight_previous_power_product. (exists pa_lt_pc_weight_previous_power_product_bound. pa_lt_pc_weight_previous_power_product_bound + S pa_i_pc_weight_previous_power_product = x3) -> exists pa_p_pc_weight_previous_power_product pa_r_pc_weight_previous_power_product pa_s_pc_weight_previous_power_product. ((((exists pa_h_pc_weight_previous_power_product_factor. pa_h_pc_weight_previous_power_product_factor + S (pa_p_pc_weight_previous_power_product) = S ((S (pa_i_pc_weight_previous_power_product)) * pa_c_pc_weight_previous_power)) /\ exists pa_q_pc_weight_previous_power_product_factor. pa_b_pc_weight_previous_power = pa_q_pc_weight_previous_power_product_factor * S ((S (pa_i_pc_weight_previous_power_product)) * pa_c_pc_weight_previous_power) + (pa_p_pc_weight_previous_power_product))) /\ ((((exists pa_h_pc_weight_previous_power_product_partial. pa_h_pc_weight_previous_power_product_partial + S (pa_r_pc_weight_previous_power_product) = S ((S (pa_i_pc_weight_previous_power_product)) * pa_v_pc_weight_previous_power_product)) /\ exists pa_q_pc_weight_previous_power_product_partial. pa_u_pc_weight_previous_power_product = pa_q_pc_weight_previous_power_product_partial * S ((S (pa_i_pc_weight_previous_power_product)) * pa_v_pc_weight_previous_power_product) + (pa_r_pc_weight_previous_power_product))) /\ ((((exists pa_h_pc_weight_previous_power_product_successor. pa_h_pc_weight_previous_power_product_successor + S (pa_s_pc_weight_previous_power_product) = S ((S (S pa_i_pc_weight_previous_power_product)) * pa_v_pc_weight_previous_power_product)) /\ exists pa_q_pc_weight_previous_power_product_successor. pa_u_pc_weight_previous_power_product = pa_q_pc_weight_previous_power_product_successor * S ((S (S pa_i_pc_weight_previous_power_product)) * pa_v_pc_weight_previous_power_product) + (pa_s_pc_weight_previous_power_product))) /\ pa_s_pc_weight_previous_power_product = pa_r_pc_weight_previous_power_product * pa_p_pc_weight_previous_power_product))))))) - 0067
specialize pow_exists B - 0068
specialize pow_exists x3 - 0069
apply pow_exists - 0070
cases hp - 0071
have hpre : exists pc_le_weight_previous_bound. pc_le_weight_previous_bound + (x1) = (x4) - 0072
specialize IH x1 - 0073
specialize IH x3 - 0074
specialize IH x4 - 0075
apply IH - 0076
intro i - 0077
intro a - 0078
intro e - 0079
intro hi - 0080
intro ha - 0081
intro he - 0082
specialize hw i - 0083
specialize hw a - 0084
specialize hw e - 0085
apply hw - 0086
specialize le_succ (S i) - 0087
specialize le_succ l - 0088
apply le_succ - 0089
exact hi - 0090
exact ha - 0091
exact he - 0092
exact hprod_witness_witness_right_left - 0093
exact hsum_witness_witness_right_left - 0094
exact hp_witness - 0095
have hlast : (x2 = 0 /\ (x = 1)) \/ (x2 = 1 /\ (exists pc_le_weight_last_one. pc_le_weight_last_one + (x) = (B))) - 0096
specialize hw l - 0097
specialize hw x - 0098
specialize hw x2 - 0099
apply hw - 0100
specialize le_refl (S l) - 0101
apply le_refl - 0102
exact hprod_witness_witness_left - 0103
exact hsum_witness_witness_left - 0104
cases hlast - 0105
cases hlast_left - 0106
have hk0 : k = x3 - 0107
trans x3 + x2 - 0108
exact hsum_witness_witness_right_right - 0109
rewrite hlast_left_left - 0110
apply PA3 - 0111
rewrite hk0 at hQ - 0112
rewrite hk0 at hQ - 0113
rewrite hk0 at hQ - 0114
rewrite hk0 at hQ - 0115
have hQ0 : Q = x4 - 0116
specialize pow_functional B - 0117
specialize pow_functional x3 - 0118
specialize pow_functional Q - 0119
specialize pow_functional x4 - 0120
apply pow_functional - 0121
exact hQ - 0122
exact hp_witness - 0123
rewrite hprod_witness_witness_right_right - 0124
rewrite hQ0 - 0125
rewrite hlast_left_right - 0126
have hm : x1 * 1 = x1 - 0127
apply mul_one - 0128
rewrite hm - 0129
exact hpre - 0130
cases hlast_right - 0131
have hk1 : k = S x3 - 0132
trans x3 + x2 - 0133
exact hsum_witness_witness_right_right - 0134
rewrite hlast_right_left - 0135
simp - 0136
have hQ1 : Q = x4 * B - 0137
specialize pow_successor_pair_mul B - 0138
specialize pow_successor_pair_mul x3 - 0139
specialize pow_successor_pair_mul k - 0140
specialize pow_successor_pair_mul x4 - 0141
specialize pow_successor_pair_mul Q - 0142
apply pow_successor_pair_mul - 0143
exact hk1 - 0144
exact hp_witness - 0145
exact hQ - 0146
rewrite hprod_witness_witness_right_right - 0147
rewrite hQ1 - 0148
specialize mul_le_mul x1 - 0149
specialize mul_le_mul x4 - 0150
specialize mul_le_mul x - 0151
specialize mul_le_mul B - 0152
apply mul_le_mul - 0153
exact hpre - 0154
exact hlast_right_right