SK0014

power_product_construct

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

Two actual k-th power traces construct the power trace of the product of their roots.

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 a b k u v. (exists pa_b_pvs_product_first pa_c_pvs_product_first. ((forall pa_i_pvs_product_first_repeat. (exists pa_lt_pvs_product_first_repeat_bound. pa_lt_pvs_product_first_repeat_bound + S pa_i_pvs_product_first_repeat = k) -> (((exists pa_h_pvs_product_first_repeat_decoded. pa_h_pvs_product_first_repeat_decoded + S (a) = S ((S (pa_i_pvs_product_first_repeat)) * pa_c_pvs_product_first)) /\ exists pa_q_pvs_product_first_repeat_decoded. pa_b_pvs_product_first = pa_q_pvs_product_first_repeat_decoded * S ((S (pa_i_pvs_product_first_repeat)) * pa_c_pvs_product_first) + (a)))) /\ (exists pa_u_pvs_product_first_product pa_v_pvs_product_first_product. ((((exists pa_h_pvs_product_first_product_start. pa_h_pvs_product_first_product_start + S (1) = S ((S (0)) * pa_v_pvs_product_first_product)) /\ exists pa_q_pvs_product_first_product_start. pa_u_pvs_product_first_product = pa_q_pvs_product_first_product_start * S ((S (0)) * pa_v_pvs_product_first_product) + (1))) /\ ((((exists pa_h_pvs_product_first_product_terminal. pa_h_pvs_product_first_product_terminal + S (u) = S ((S (k)) * pa_v_pvs_product_first_product)) /\ exists pa_q_pvs_product_first_product_terminal. pa_u_pvs_product_first_product = pa_q_pvs_product_first_product_terminal * S ((S (k)) * pa_v_pvs_product_first_product) + (u))) /\ forall pa_i_pvs_product_first_product. (exists pa_lt_pvs_product_first_product_bound. pa_lt_pvs_product_first_product_bound + S pa_i_pvs_product_first_product = k) -> exists pa_p_pvs_product_first_product pa_r_pvs_product_first_product pa_s_pvs_product_first_product. ((((exists pa_h_pvs_product_first_product_factor. pa_h_pvs_product_first_product_factor + S (pa_p_pvs_product_first_product) = S ((S (pa_i_pvs_product_first_product)) * pa_c_pvs_product_first)) /\ exists pa_q_pvs_product_first_product_factor. pa_b_pvs_product_first = pa_q_pvs_product_first_product_factor * S ((S (pa_i_pvs_product_first_product)) * pa_c_pvs_product_first) + (pa_p_pvs_product_first_product))) /\ ((((exists pa_h_pvs_product_first_product_partial. pa_h_pvs_product_first_product_partial + S (pa_r_pvs_product_first_product) = S ((S (pa_i_pvs_product_first_product)) * pa_v_pvs_product_first_product)) /\ exists pa_q_pvs_product_first_product_partial. pa_u_pvs_product_first_product = pa_q_pvs_product_first_product_partial * S ((S (pa_i_pvs_product_first_product)) * pa_v_pvs_product_first_product) + (pa_r_pvs_product_first_product))) /\ ((((exists pa_h_pvs_product_first_product_successor. pa_h_pvs_product_first_product_successor + S (pa_s_pvs_product_first_product) = S ((S (S pa_i_pvs_product_first_product)) * pa_v_pvs_product_first_product)) /\ exists pa_q_pvs_product_first_product_successor. pa_u_pvs_product_first_product = pa_q_pvs_product_first_product_successor * S ((S (S pa_i_pvs_product_first_product)) * pa_v_pvs_product_first_product) + (pa_s_pvs_product_first_product))) /\ pa_s_pvs_product_first_product = pa_r_pvs_product_first_product * pa_p_pvs_product_first_product)))))))) -> (exists pa_b_pvs_product_second pa_c_pvs_product_second. ((forall pa_i_pvs_product_second_repeat. (exists pa_lt_pvs_product_second_repeat_bound. pa_lt_pvs_product_second_repeat_bound + S pa_i_pvs_product_second_repeat = k) -> (((exists pa_h_pvs_product_second_repeat_decoded. pa_h_pvs_product_second_repeat_decoded + S (b) = S ((S (pa_i_pvs_product_second_repeat)) * pa_c_pvs_product_second)) /\ exists pa_q_pvs_product_second_repeat_decoded. pa_b_pvs_product_second = pa_q_pvs_product_second_repeat_decoded * S ((S (pa_i_pvs_product_second_repeat)) * pa_c_pvs_product_second) + (b)))) /\ (exists pa_u_pvs_product_second_product pa_v_pvs_product_second_product. ((((exists pa_h_pvs_product_second_product_start. pa_h_pvs_product_second_product_start + S (1) = S ((S (0)) * pa_v_pvs_product_second_product)) /\ exists pa_q_pvs_product_second_product_start. pa_u_pvs_product_second_product = pa_q_pvs_product_second_product_start * S ((S (0)) * pa_v_pvs_product_second_product) + (1))) /\ ((((exists pa_h_pvs_product_second_product_terminal. pa_h_pvs_product_second_product_terminal + S (v) = S ((S (k)) * pa_v_pvs_product_second_product)) /\ exists pa_q_pvs_product_second_product_terminal. pa_u_pvs_product_second_product = pa_q_pvs_product_second_product_terminal * S ((S (k)) * pa_v_pvs_product_second_product) + (v))) /\ forall pa_i_pvs_product_second_product. (exists pa_lt_pvs_product_second_product_bound. pa_lt_pvs_product_second_product_bound + S pa_i_pvs_product_second_product = k) -> exists pa_p_pvs_product_second_product pa_r_pvs_product_second_product pa_s_pvs_product_second_product. ((((exists pa_h_pvs_product_second_product_factor. pa_h_pvs_product_second_product_factor + S (pa_p_pvs_product_second_product) = S ((S (pa_i_pvs_product_second_product)) * pa_c_pvs_product_second)) /\ exists pa_q_pvs_product_second_product_factor. pa_b_pvs_product_second = pa_q_pvs_product_second_product_factor * S ((S (pa_i_pvs_product_second_product)) * pa_c_pvs_product_second) + (pa_p_pvs_product_second_product))) /\ ((((exists pa_h_pvs_product_second_product_partial. pa_h_pvs_product_second_product_partial + S (pa_r_pvs_product_second_product) = S ((S (pa_i_pvs_product_second_product)) * pa_v_pvs_product_second_product)) /\ exists pa_q_pvs_product_second_product_partial. pa_u_pvs_product_second_product = pa_q_pvs_product_second_product_partial * S ((S (pa_i_pvs_product_second_product)) * pa_v_pvs_product_second_product) + (pa_r_pvs_product_second_product))) /\ ((((exists pa_h_pvs_product_second_product_successor. pa_h_pvs_product_second_product_successor + S (pa_s_pvs_product_second_product) = S ((S (S pa_i_pvs_product_second_product)) * pa_v_pvs_product_second_product)) /\ exists pa_q_pvs_product_second_product_successor. pa_u_pvs_product_second_product = pa_q_pvs_product_second_product_successor * S ((S (S pa_i_pvs_product_second_product)) * pa_v_pvs_product_second_product) + (pa_s_pvs_product_second_product))) /\ pa_s_pvs_product_second_product = pa_r_pvs_product_second_product * pa_p_pvs_product_second_product)))))))) -> (exists pa_b_pvs_product_constructed pa_c_pvs_product_constructed. ((forall pa_i_pvs_product_constructed_repeat. (exists pa_lt_pvs_product_constructed_repeat_bound. pa_lt_pvs_product_constructed_repeat_bound + S pa_i_pvs_product_constructed_repeat = k) -> (((exists pa_h_pvs_product_constructed_repeat_decoded. pa_h_pvs_product_constructed_repeat_decoded + S (a * b) = S ((S (pa_i_pvs_product_constructed_repeat)) * pa_c_pvs_product_constructed)) /\ exists pa_q_pvs_product_constructed_repeat_decoded. pa_b_pvs_product_constructed = pa_q_pvs_product_constructed_repeat_decoded * S ((S (pa_i_pvs_product_constructed_repeat)) * pa_c_pvs_product_constructed) + (a * b)))) /\ (exists pa_u_pvs_product_constructed_product pa_v_pvs_product_constructed_product. ((((exists pa_h_pvs_product_constructed_product_start. pa_h_pvs_product_constructed_product_start + S (1) = S ((S (0)) * pa_v_pvs_product_constructed_product)) /\ exists pa_q_pvs_product_constructed_product_start. pa_u_pvs_product_constructed_product = pa_q_pvs_product_constructed_product_start * S ((S (0)) * pa_v_pvs_product_constructed_product) + (1))) /\ ((((exists pa_h_pvs_product_constructed_product_terminal. pa_h_pvs_product_constructed_product_terminal + S (u * v) = S ((S (k)) * pa_v_pvs_product_constructed_product)) /\ exists pa_q_pvs_product_constructed_product_terminal. pa_u_pvs_product_constructed_product = pa_q_pvs_product_constructed_product_terminal * S ((S (k)) * pa_v_pvs_product_constructed_product) + (u * v))) /\ forall pa_i_pvs_product_constructed_product. (exists pa_lt_pvs_product_constructed_product_bound. pa_lt_pvs_product_constructed_product_bound + S pa_i_pvs_product_constructed_product = k) -> exists pa_p_pvs_product_constructed_product pa_r_pvs_product_constructed_product pa_s_pvs_product_constructed_product. ((((exists pa_h_pvs_product_constructed_product_factor. pa_h_pvs_product_constructed_product_factor + S (pa_p_pvs_product_constructed_product) = S ((S (pa_i_pvs_product_constructed_product)) * pa_c_pvs_product_constructed)) /\ exists pa_q_pvs_product_constructed_product_factor. pa_b_pvs_product_constructed = pa_q_pvs_product_constructed_product_factor * S ((S (pa_i_pvs_product_constructed_product)) * pa_c_pvs_product_constructed) + (pa_p_pvs_product_constructed_product))) /\ ((((exists pa_h_pvs_product_constructed_product_partial. pa_h_pvs_product_constructed_product_partial + S (pa_r_pvs_product_constructed_product) = S ((S (pa_i_pvs_product_constructed_product)) * pa_v_pvs_product_constructed_product)) /\ exists pa_q_pvs_product_constructed_product_partial. pa_u_pvs_product_constructed_product = pa_q_pvs_product_constructed_product_partial * S ((S (pa_i_pvs_product_constructed_product)) * pa_v_pvs_product_constructed_product) + (pa_r_pvs_product_constructed_product))) /\ ((((exists pa_h_pvs_product_constructed_product_successor. pa_h_pvs_product_constructed_product_successor + S (pa_s_pvs_product_constructed_product) = S ((S (S pa_i_pvs_product_constructed_product)) * pa_v_pvs_product_constructed_product)) /\ exists pa_q_pvs_product_constructed_product_successor. pa_u_pvs_product_constructed_product = pa_q_pvs_product_constructed_product_successor * S ((S (S pa_i_pvs_product_constructed_product)) * pa_v_pvs_product_constructed_product) + (pa_s_pvs_product_constructed_product))) /\ pa_s_pvs_product_constructed_product = pa_r_pvs_product_constructed_product * pa_p_pvs_product_constructed_product))))))))

Constructive proof overview

Generated structural guide

Two actual k-th power traces construct the power trace of the product of their roots.

The unchanged tactic script uses 3 declared prerequisites and contains 28 exact native proof lines.

Alpha v34 checked-use · first admitted v29 · independently kernel and Lean verified; not Stable

Proof neighborhood

Direct dependencies

pow_exists Stable theorem; checked-use authorized pow_mul_base Alpha theorem; checked-use authorized SK0011 power_value_eq_transport

Direct 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

28 script commands · 5 reading checkpoints · 1 local claims

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 (1)

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

01Fix variables and assumptionsL1–7

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro a
  2. L2
    intro b
  3. L3
    intro k
  4. L4
    intro u
  5. L5
    intro v
  6. L6
    intro hfirst
  7. L7
    intro hsecond
02Establish hexL8–11

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow exists.

  1. L8
    have hex : ∃ z. Pow(a · b,k,z)Definitions: Pow
  2. L9
    specialize pow_exists (a * b)
  3. L10
    specialize pow_exists (k)
  4. L11
    apply pow_exists
03Separate the logical casesL12–12

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L12
    cases hex
04Use earlier factsL13–22

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L13
    specialize power_value_eq_transport (a * b)
  2. L14
    specialize power_value_eq_transport (k)
  3. L15
    specialize power_value_eq_transport (x)
  4. L16
    specialize power_value_eq_transport (u * v)
  5. L17
    apply power_value_eq_transport
  6. L18
    specialize pow_mul_base (a)
  7. L19
    specialize pow_mul_base (b)
  8. L20
    specialize pow_mul_base (k)
  9. L21
    specialize pow_mul_base (u)
  10. L22
    specialize pow_mul_base (v)
05Use earlier factsL23–28

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L23
    specialize pow_mul_base (x)
  2. L24
    apply pow_mul_base
  3. L25
    exact hfirst
  4. L26
    exact hsecond
  5. L27
    exact hex_witness
  6. L28
    exact hex_witness

Library-wide reading audit

Original exact command ledger · 28 lines
  1. 0001intro a
  2. 0002intro b
  3. 0003intro k
  4. 0004intro u
  5. 0005intro v
  6. 0006intro hfirst
  7. 0007intro hsecond
  8. 0008have hex : exists z. (exists pa_b_pvs_product_total pa_c_pvs_product_total. ((forall pa_i_pvs_product_total_repeat. (exists pa_lt_pvs_product_total_repeat_bound. pa_lt_pvs_product_total_repeat_bound + S pa_i_pvs_product_total_repeat = k) -> (((exists pa_h_pvs_product_total_repeat_decoded. pa_h_pvs_product_total_repeat_decoded + S (a * b) = S ((S (pa_i_pvs_product_total_repeat)) * pa_c_pvs_product_total)) /\ exists pa_q_pvs_product_total_repeat_decoded. pa_b_pvs_product_total = pa_q_pvs_product_total_repeat_decoded * S ((S (pa_i_pvs_product_total_repeat)) * pa_c_pvs_product_total) + (a * b)))) /\ (exists pa_u_pvs_product_total_product pa_v_pvs_product_total_product. ((((exists pa_h_pvs_product_total_product_start. pa_h_pvs_product_total_product_start + S (1) = S ((S (0)) * pa_v_pvs_product_total_product)) /\ exists pa_q_pvs_product_total_product_start. pa_u_pvs_product_total_product = pa_q_pvs_product_total_product_start * S ((S (0)) * pa_v_pvs_product_total_product) + (1))) /\ ((((exists pa_h_pvs_product_total_product_terminal. pa_h_pvs_product_total_product_terminal + S (z) = S ((S (k)) * pa_v_pvs_product_total_product)) /\ exists pa_q_pvs_product_total_product_terminal. pa_u_pvs_product_total_product = pa_q_pvs_product_total_product_terminal * S ((S (k)) * pa_v_pvs_product_total_product) + (z))) /\ forall pa_i_pvs_product_total_product. (exists pa_lt_pvs_product_total_product_bound. pa_lt_pvs_product_total_product_bound + S pa_i_pvs_product_total_product = k) -> exists pa_p_pvs_product_total_product pa_r_pvs_product_total_product pa_s_pvs_product_total_product. ((((exists pa_h_pvs_product_total_product_factor. pa_h_pvs_product_total_product_factor + S (pa_p_pvs_product_total_product) = S ((S (pa_i_pvs_product_total_product)) * pa_c_pvs_product_total)) /\ exists pa_q_pvs_product_total_product_factor. pa_b_pvs_product_total = pa_q_pvs_product_total_product_factor * S ((S (pa_i_pvs_product_total_product)) * pa_c_pvs_product_total) + (pa_p_pvs_product_total_product))) /\ ((((exists pa_h_pvs_product_total_product_partial. pa_h_pvs_product_total_product_partial + S (pa_r_pvs_product_total_product) = S ((S (pa_i_pvs_product_total_product)) * pa_v_pvs_product_total_product)) /\ exists pa_q_pvs_product_total_product_partial. pa_u_pvs_product_total_product = pa_q_pvs_product_total_product_partial * S ((S (pa_i_pvs_product_total_product)) * pa_v_pvs_product_total_product) + (pa_r_pvs_product_total_product))) /\ ((((exists pa_h_pvs_product_total_product_successor. pa_h_pvs_product_total_product_successor + S (pa_s_pvs_product_total_product) = S ((S (S pa_i_pvs_product_total_product)) * pa_v_pvs_product_total_product)) /\ exists pa_q_pvs_product_total_product_successor. pa_u_pvs_product_total_product = pa_q_pvs_product_total_product_successor * S ((S (S pa_i_pvs_product_total_product)) * pa_v_pvs_product_total_product) + (pa_s_pvs_product_total_product))) /\ pa_s_pvs_product_total_product = pa_r_pvs_product_total_product * pa_p_pvs_product_total_product))))))))
  9. 0009specialize pow_exists (a * b)
  10. 0010specialize pow_exists (k)
  11. 0011apply pow_exists
  12. 0012cases hex
  13. 0013specialize power_value_eq_transport (a * b)
  14. 0014specialize power_value_eq_transport (k)
  15. 0015specialize power_value_eq_transport (x)
  16. 0016specialize power_value_eq_transport (u * v)
  17. 0017apply power_value_eq_transport
  18. 0018specialize pow_mul_base (a)
  19. 0019specialize pow_mul_base (b)
  20. 0020specialize pow_mul_base (k)
  21. 0021specialize pow_mul_base (u)
  22. 0022specialize pow_mul_base (v)
  23. 0023specialize pow_mul_base (x)
  24. 0024apply pow_mul_base
  25. 0025exact hfirst
  26. 0026exact hsecond
  27. 0027exact hex_witness
  28. 0028exact hex_witness