BD0010

binary_digit_operation_count_exists

Every actual coded digit prefix has a witnessed operation cost of two initializations, two operations per digit, and one optional multiply per one bit.

Alpha v34 checked-use · first admitted v23 · 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.

The exact G102 milestone is fully proved for every natural exponent and every modulus greater than one, including actual canonical digits, a beta-coded accumulator execution, modular-power correctness, and the formal bound k≤3·BitLen(e)+2. The independent T13 determinant/rank/integer-span substrate is now closed in the separate Alpha-v27 integer-linear-algebra branch. Full T13 proof · Alpha v27

Exact theorem in conservative defined notation

∀ b. ∀ c. ∀ l. BinaryDigitPrefix(b,c,l) → ∃ x. BinaryExecutionOperationCount(b,c,l,x)

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

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall b c l. (forall ff_index_be_bd_old ff_digit_be_bd_old. (exists ff_lt_be_bd_old_bound. ff_lt_be_bd_old_bound + S ff_index_be_bd_old = l) -> (((exists ff_h_be_bd_old_digit. ff_h_be_bd_old_digit + S (ff_digit_be_bd_old) = S ((S (ff_index_be_bd_old)) * c)) /\ exists ff_q_be_bd_old_digit. b = ff_q_be_bd_old_digit * S ((S (ff_index_be_bd_old)) * c) + (ff_digit_be_bd_old))) -> (ff_digit_be_bd_old = 0 \/ ff_digit_be_bd_old = 1)) -> exists operations. (exists ff_ones_bd_operation_total. ((((exists ff_u_bd_operation_total_count_sum ff_v_bd_operation_total_count_sum. ((((exists ff_h_bd_operation_total_count_sum_start. ff_h_bd_operation_total_count_sum_start + S (0) = S ((S (0)) * ff_v_bd_operation_total_count_sum)) /\ exists ff_q_bd_operation_total_count_sum_start. ff_u_bd_operation_total_count_sum = ff_q_bd_operation_total_count_sum_start * S ((S (0)) * ff_v_bd_operation_total_count_sum) + (0))) /\ ((((exists ff_h_bd_operation_total_count_sum_terminal. ff_h_bd_operation_total_count_sum_terminal + S (ff_ones_bd_operation_total) = S ((S (l)) * ff_v_bd_operation_total_count_sum)) /\ exists ff_q_bd_operation_total_count_sum_terminal. ff_u_bd_operation_total_count_sum = ff_q_bd_operation_total_count_sum_terminal * S ((S (l)) * ff_v_bd_operation_total_count_sum) + (ff_ones_bd_operation_total))) /\ forall ff_i_bd_operation_total_count_sum. (exists ff_lt_bd_operation_total_count_sum_bound. ff_lt_bd_operation_total_count_sum_bound + S ff_i_bd_operation_total_count_sum = l) -> exists ff_a_bd_operation_total_count_sum ff_r_bd_operation_total_count_sum ff_s_bd_operation_total_count_sum. ((((exists ff_h_bd_operation_total_count_sum_summand. ff_h_bd_operation_total_count_sum_summand + S (ff_a_bd_operation_total_count_sum) = S ((S (ff_i_bd_operation_total_count_sum)) * c)) /\ exists ff_q_bd_operation_total_count_sum_summand. b = ff_q_bd_operation_total_count_sum_summand * S ((S (ff_i_bd_operation_total_count_sum)) * c) + (ff_a_bd_operation_total_count_sum))) /\ ((((exists ff_h_bd_operation_total_count_sum_partial. ff_h_bd_operation_total_count_sum_partial + S (ff_r_bd_operation_total_count_sum) = S ((S (ff_i_bd_operation_total_count_sum)) * ff_v_bd_operation_total_count_sum)) /\ exists ff_q_bd_operation_total_count_sum_partial. ff_u_bd_operation_total_count_sum = ff_q_bd_operation_total_count_sum_partial * S ((S (ff_i_bd_operation_total_count_sum)) * ff_v_bd_operation_total_count_sum) + (ff_r_bd_operation_total_count_sum))) /\ ((((exists ff_h_bd_operation_total_count_sum_successor. ff_h_bd_operation_total_count_sum_successor + S (ff_s_bd_operation_total_count_sum) = S ((S (S ff_i_bd_operation_total_count_sum)) * ff_v_bd_operation_total_count_sum)) /\ exists ff_q_bd_operation_total_count_sum_successor. ff_u_bd_operation_total_count_sum = ff_q_bd_operation_total_count_sum_successor * S ((S (S ff_i_bd_operation_total_count_sum)) * ff_v_bd_operation_total_count_sum) + (ff_s_bd_operation_total_count_sum))) /\ ff_s_bd_operation_total_count_sum = ff_r_bd_operation_total_count_sum + ff_a_bd_operation_total_count_sum)))))) /\ (forall ff_i_bd_operation_total_count_bits. (exists ff_lt_bd_operation_total_count_bits_bound. ff_lt_bd_operation_total_count_bits_bound + S ff_i_bd_operation_total_count_bits = l) -> exists ff_bit_bd_operation_total_count_bits. ((((exists ff_h_bd_operation_total_count_bits_decoded. ff_h_bd_operation_total_count_bits_decoded + S (ff_bit_bd_operation_total_count_bits) = S ((S (ff_i_bd_operation_total_count_bits)) * c)) /\ exists ff_q_bd_operation_total_count_bits_decoded. b = ff_q_bd_operation_total_count_bits_decoded * S ((S (ff_i_bd_operation_total_count_bits)) * c) + (ff_bit_bd_operation_total_count_bits))) /\ (ff_bit_bd_operation_total_count_bits = 0 \/ ff_bit_bd_operation_total_count_bits = 1))))) /\ operations = (2 + (l + l)) + ff_ones_bd_operation_total))

Complete unchanged native tactic proof

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

Read the argument

Proof checkpoints

16 script commands · 7 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.

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

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–4

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

  1. L1
    intro b
  2. L2
    intro c
  3. L3
    intro l
  4. L4
    intro hdigits
02Establish hcountL5–10

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary digit prefix bit count exists.

  1. L5
    have hcount : ∃ ones. BitCount(b,c,l,ones)Definitions: BitCountOriginal native command in the exact edition
  2. L6
    specialize binary_digit_prefix_bit_count_exists b
  3. L7
    specialize binary_digit_prefix_bit_count_exists c
  4. L8
    specialize binary_digit_prefix_bit_count_exists l
  5. L9
    apply binary_digit_prefix_bit_count_exists
  6. L10
    exact hdigits
03Separate the logical casesL11–11

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

  1. L11
    cases hcount
04Construct an explicit witnessL12–13

Supply the displayed value, then prove that it has the required property.

  1. L12
    exists (2 + (l + l)) + x
  2. L13
    exists x
05Separate the logical casesL14–14

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

  1. L14
    split
06Use earlier factsL15–15

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

  1. L15
    exact hcount_witness
07Calculate and transport equalitiesL16–16

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L16
    refl

Library-wide reading audit

Original defined command ledger · 16 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro l
  4. 0004intro hdigits
  5. 0005have hcount : exists ones. (((exists ff_u_bd_operation_count_sum ff_v_bd_operation_count_sum. ((((exists ff_h_bd_operation_count_sum_start. ff_h_bd_operation_count_sum_start + S (0) = S ((S (0)) * ff_v_bd_operation_count_sum)) /\ exists ff_q_bd_operation_count_sum_start. ff_u_bd_operation_count_sum = ff_q_bd_operation_count_sum_start * S ((S (0)) * ff_v_bd_operation_count_sum) + (0))) /\ ((((exists ff_h_bd_operation_count_sum_terminal. ff_h_bd_operation_count_sum_terminal + S (ones) = S ((S (l)) * ff_v_bd_operation_count_sum)) /\ exists ff_q_bd_operation_count_sum_terminal. ff_u_bd_operation_count_sum = ff_q_bd_operation_count_sum_terminal * S ((S (l)) * ff_v_bd_operation_count_sum) + (ones))) /\ forall ff_i_bd_operation_count_sum. (exists ff_lt_bd_operation_count_sum_bound. ff_lt_bd_operation_count_sum_bound + S ff_i_bd_operation_count_sum = l) -> exists ff_a_bd_operation_count_sum ff_r_bd_operation_count_sum ff_s_bd_operation_count_sum. ((((exists ff_h_bd_operation_count_sum_summand. ff_h_bd_operation_count_sum_summand + S (ff_a_bd_operation_count_sum) = S ((S (ff_i_bd_operation_count_sum)) * c)) /\ exists ff_q_bd_operation_count_sum_summand. b = ff_q_bd_operation_count_sum_summand * S ((S (ff_i_bd_operation_count_sum)) * c) + (ff_a_bd_operation_count_sum))) /\ ((((exists ff_h_bd_operation_count_sum_partial. ff_h_bd_operation_count_sum_partial + S (ff_r_bd_operation_count_sum) = S ((S (ff_i_bd_operation_count_sum)) * ff_v_bd_operation_count_sum)) /\ exists ff_q_bd_operation_count_sum_partial. ff_u_bd_operation_count_sum = ff_q_bd_operation_count_sum_partial * S ((S (ff_i_bd_operation_count_sum)) * ff_v_bd_operation_count_sum) + (ff_r_bd_operation_count_sum))) /\ ((((exists ff_h_bd_operation_count_sum_successor. ff_h_bd_operation_count_sum_successor + S (ff_s_bd_operation_count_sum) = S ((S (S ff_i_bd_operation_count_sum)) * ff_v_bd_operation_count_sum)) /\ exists ff_q_bd_operation_count_sum_successor. ff_u_bd_operation_count_sum = ff_q_bd_operation_count_sum_successor * S ((S (S ff_i_bd_operation_count_sum)) * ff_v_bd_operation_count_sum) + (ff_s_bd_operation_count_sum))) /\ ff_s_bd_operation_count_sum = ff_r_bd_operation_count_sum + ff_a_bd_operation_count_sum)))))) /\ (forall ff_i_bd_operation_count_bits. (exists ff_lt_bd_operation_count_bits_bound. ff_lt_bd_operation_count_bits_bound + S ff_i_bd_operation_count_bits = l) -> exists ff_bit_bd_operation_count_bits. ((((exists ff_h_bd_operation_count_bits_decoded. ff_h_bd_operation_count_bits_decoded + S (ff_bit_bd_operation_count_bits) = S ((S (ff_i_bd_operation_count_bits)) * c)) /\ exists ff_q_bd_operation_count_bits_decoded. b = ff_q_bd_operation_count_bits_decoded * S ((S (ff_i_bd_operation_count_bits)) * c) + (ff_bit_bd_operation_count_bits))) /\ (ff_bit_bd_operation_count_bits = 0 \/ ff_bit_bd_operation_count_bits = 1)))))
  6. 0006specialize binary_digit_prefix_bit_count_exists b
  7. 0007specialize binary_digit_prefix_bit_count_exists c
  8. 0008specialize binary_digit_prefix_bit_count_exists l
  9. 0009apply binary_digit_prefix_bit_count_exists
  10. 0010exact hdigits
  11. 0011cases hcount
  12. 0012exists (2 + (l + l)) + x
  13. 0013exists x
  14. 0014split
  15. 0015exact hcount_witness
  16. 0016refl