BL0006

binary_power_two_functional

The relational power of two is functional at every exponent.

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

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.

G101 and G102 were OPEN when these BitLen foundations were first admitted in Alpha v22. Both are now CLOSED in Alpha v23: complete canonical exponent digits and both exact logarithmic execution bounds are proved.

Exact theorem in conservative defined notation

∀ e. ∀ p. ∀ q. PowTwo(e,p)PowTwo(e,q) → p = q

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

pow_functional · checked external prerequisite
Original expanded first-order statement
forall e p q. (exists pa_b_bl_power pa_c_bl_power. ((forall pa_i_bl_power_repeat. (exists pa_lt_bl_power_repeat_bound. pa_lt_bl_power_repeat_bound + S pa_i_bl_power_repeat = e) -> (((exists pa_h_bl_power_repeat_decoded. pa_h_bl_power_repeat_decoded + S (2) = S ((S (pa_i_bl_power_repeat)) * pa_c_bl_power)) /\ exists pa_q_bl_power_repeat_decoded. pa_b_bl_power = pa_q_bl_power_repeat_decoded * S ((S (pa_i_bl_power_repeat)) * pa_c_bl_power) + (2)))) /\ (exists pa_u_bl_power_product pa_v_bl_power_product. ((((exists pa_h_bl_power_product_start. pa_h_bl_power_product_start + S (1) = S ((S (0)) * pa_v_bl_power_product)) /\ exists pa_q_bl_power_product_start. pa_u_bl_power_product = pa_q_bl_power_product_start * S ((S (0)) * pa_v_bl_power_product) + (1))) /\ ((((exists pa_h_bl_power_product_terminal. pa_h_bl_power_product_terminal + S (p) = S ((S (e)) * pa_v_bl_power_product)) /\ exists pa_q_bl_power_product_terminal. pa_u_bl_power_product = pa_q_bl_power_product_terminal * S ((S (e)) * pa_v_bl_power_product) + (p))) /\ forall pa_i_bl_power_product. (exists pa_lt_bl_power_product_bound. pa_lt_bl_power_product_bound + S pa_i_bl_power_product = e) -> exists pa_p_bl_power_product pa_r_bl_power_product pa_s_bl_power_product. ((((exists pa_h_bl_power_product_factor. pa_h_bl_power_product_factor + S (pa_p_bl_power_product) = S ((S (pa_i_bl_power_product)) * pa_c_bl_power)) /\ exists pa_q_bl_power_product_factor. pa_b_bl_power = pa_q_bl_power_product_factor * S ((S (pa_i_bl_power_product)) * pa_c_bl_power) + (pa_p_bl_power_product))) /\ ((((exists pa_h_bl_power_product_partial. pa_h_bl_power_product_partial + S (pa_r_bl_power_product) = S ((S (pa_i_bl_power_product)) * pa_v_bl_power_product)) /\ exists pa_q_bl_power_product_partial. pa_u_bl_power_product = pa_q_bl_power_product_partial * S ((S (pa_i_bl_power_product)) * pa_v_bl_power_product) + (pa_r_bl_power_product))) /\ ((((exists pa_h_bl_power_product_successor. pa_h_bl_power_product_successor + S (pa_s_bl_power_product) = S ((S (S pa_i_bl_power_product)) * pa_v_bl_power_product)) /\ exists pa_q_bl_power_product_successor. pa_u_bl_power_product = pa_q_bl_power_product_successor * S ((S (S pa_i_bl_power_product)) * pa_v_bl_power_product) + (pa_s_bl_power_product))) /\ pa_s_bl_power_product = pa_r_bl_power_product * pa_p_bl_power_product)))))))) -> (exists pa_b_bl_other_power pa_c_bl_other_power. ((forall pa_i_bl_other_power_repeat. (exists pa_lt_bl_other_power_repeat_bound. pa_lt_bl_other_power_repeat_bound + S pa_i_bl_other_power_repeat = e) -> (((exists pa_h_bl_other_power_repeat_decoded. pa_h_bl_other_power_repeat_decoded + S (2) = S ((S (pa_i_bl_other_power_repeat)) * pa_c_bl_other_power)) /\ exists pa_q_bl_other_power_repeat_decoded. pa_b_bl_other_power = pa_q_bl_other_power_repeat_decoded * S ((S (pa_i_bl_other_power_repeat)) * pa_c_bl_other_power) + (2)))) /\ (exists pa_u_bl_other_power_product pa_v_bl_other_power_product. ((((exists pa_h_bl_other_power_product_start. pa_h_bl_other_power_product_start + S (1) = S ((S (0)) * pa_v_bl_other_power_product)) /\ exists pa_q_bl_other_power_product_start. pa_u_bl_other_power_product = pa_q_bl_other_power_product_start * S ((S (0)) * pa_v_bl_other_power_product) + (1))) /\ ((((exists pa_h_bl_other_power_product_terminal. pa_h_bl_other_power_product_terminal + S (q) = S ((S (e)) * pa_v_bl_other_power_product)) /\ exists pa_q_bl_other_power_product_terminal. pa_u_bl_other_power_product = pa_q_bl_other_power_product_terminal * S ((S (e)) * pa_v_bl_other_power_product) + (q))) /\ forall pa_i_bl_other_power_product. (exists pa_lt_bl_other_power_product_bound. pa_lt_bl_other_power_product_bound + S pa_i_bl_other_power_product = e) -> exists pa_p_bl_other_power_product pa_r_bl_other_power_product pa_s_bl_other_power_product. ((((exists pa_h_bl_other_power_product_factor. pa_h_bl_other_power_product_factor + S (pa_p_bl_other_power_product) = S ((S (pa_i_bl_other_power_product)) * pa_c_bl_other_power)) /\ exists pa_q_bl_other_power_product_factor. pa_b_bl_other_power = pa_q_bl_other_power_product_factor * S ((S (pa_i_bl_other_power_product)) * pa_c_bl_other_power) + (pa_p_bl_other_power_product))) /\ ((((exists pa_h_bl_other_power_product_partial. pa_h_bl_other_power_product_partial + S (pa_r_bl_other_power_product) = S ((S (pa_i_bl_other_power_product)) * pa_v_bl_other_power_product)) /\ exists pa_q_bl_other_power_product_partial. pa_u_bl_other_power_product = pa_q_bl_other_power_product_partial * S ((S (pa_i_bl_other_power_product)) * pa_v_bl_other_power_product) + (pa_r_bl_other_power_product))) /\ ((((exists pa_h_bl_other_power_product_successor. pa_h_bl_other_power_product_successor + S (pa_s_bl_other_power_product) = S ((S (S pa_i_bl_other_power_product)) * pa_v_bl_other_power_product)) /\ exists pa_q_bl_other_power_product_successor. pa_u_bl_other_power_product = pa_q_bl_other_power_product_successor * S ((S (S pa_i_bl_other_power_product)) * pa_v_bl_other_power_product) + (pa_s_bl_other_power_product))) /\ pa_s_bl_other_power_product = pa_r_bl_other_power_product * pa_p_bl_other_power_product)))))))) -> p = q

Complete unchanged native tactic proof

All 12 lines are the exact independently kernel-checked original script.

Read the argument

Proof checkpoints

12 script commands · 2 reading checkpoints · 0 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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

01Fix variables and assumptionsL1–5

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

  1. L1
    intro e
  2. L2
    intro p
  3. L3
    intro q
  4. L4
    intro hp
  5. L5
    intro hq
02Use earlier factsL6–12

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

  1. L6
    specialize pow_functional 2
  2. L7
    specialize pow_functional e
  3. L8
    specialize pow_functional p
  4. L9
    specialize pow_functional q
  5. L10
    apply pow_functional
  6. L11
    exact hp
  7. L12
    exact hq

Library-wide reading audit

Original defined command ledger · 12 lines
  1. 0001intro e
  2. 0002intro p
  3. 0003intro q
  4. 0004intro hp
  5. 0005intro hq
  6. 0006specialize pow_functional 2
  7. 0007specialize pow_functional e
  8. 0008specialize pow_functional p
  9. 0009specialize pow_functional q
  10. 0010apply pow_functional
  11. 0011exact hp
  12. 0012exact hq