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
∀ b. ∀ c. ∀ l. ∀ n. ∀ m. BitCount(b,c,l,n) → BitCount(b,c,l,m) → n = mEvery purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.
Definitions used by this theorem
In the theorem statement
2 occurrences
In local proof propositions
0 occurrences
Exact expanded native-PA statement
forall b c l n m. (((exists ff_u_l_sum ff_v_l_sum. ((((exists ff_h_l_sum_start. ff_h_l_sum_start + S (0) = S ((S (0)) * ff_v_l_sum)) /\ exists ff_q_l_sum_start. ff_u_l_sum = ff_q_l_sum_start * S ((S (0)) * ff_v_l_sum) + (0))) /\ ((((exists ff_h_l_sum_terminal. ff_h_l_sum_terminal + S (n) = S ((S (l)) * ff_v_l_sum)) /\ exists ff_q_l_sum_terminal. ff_u_l_sum = ff_q_l_sum_terminal * S ((S (l)) * ff_v_l_sum) + (n))) /\ forall ff_i_l_sum. (exists ff_lt_l_sum_bound. ff_lt_l_sum_bound + S ff_i_l_sum = l) -> exists ff_a_l_sum ff_r_l_sum ff_s_l_sum. ((((exists ff_h_l_sum_summand. ff_h_l_sum_summand + S (ff_a_l_sum) = S ((S (ff_i_l_sum)) * c)) /\ exists ff_q_l_sum_summand. b = ff_q_l_sum_summand * S ((S (ff_i_l_sum)) * c) + (ff_a_l_sum))) /\ ((((exists ff_h_l_sum_partial. ff_h_l_sum_partial + S (ff_r_l_sum) = S ((S (ff_i_l_sum)) * ff_v_l_sum)) /\ exists ff_q_l_sum_partial. ff_u_l_sum = ff_q_l_sum_partial * S ((S (ff_i_l_sum)) * ff_v_l_sum) + (ff_r_l_sum))) /\ ((((exists ff_h_l_sum_successor. ff_h_l_sum_successor + S (ff_s_l_sum) = S ((S (S ff_i_l_sum)) * ff_v_l_sum)) /\ exists ff_q_l_sum_successor. ff_u_l_sum = ff_q_l_sum_successor * S ((S (S ff_i_l_sum)) * ff_v_l_sum) + (ff_s_l_sum))) /\ ff_s_l_sum = ff_r_l_sum + ff_a_l_sum)))))) /\ (forall ff_i_l_bits. (exists ff_lt_l_bits_bound. ff_lt_l_bits_bound + S ff_i_l_bits = l) -> exists ff_bit_l_bits. ((((exists ff_h_l_bits_decoded. ff_h_l_bits_decoded + S (ff_bit_l_bits) = S ((S (ff_i_l_bits)) * c)) /\ exists ff_q_l_bits_decoded. b = ff_q_l_bits_decoded * S ((S (ff_i_l_bits)) * c) + (ff_bit_l_bits))) /\ (ff_bit_l_bits = 0 \/ ff_bit_l_bits = 1))))) -> (((exists ff_u_r_sum ff_v_r_sum. ((((exists ff_h_r_sum_start. ff_h_r_sum_start + S (0) = S ((S (0)) * ff_v_r_sum)) /\ exists ff_q_r_sum_start. ff_u_r_sum = ff_q_r_sum_start * S ((S (0)) * ff_v_r_sum) + (0))) /\ ((((exists ff_h_r_sum_terminal. ff_h_r_sum_terminal + S (m) = S ((S (l)) * ff_v_r_sum)) /\ exists ff_q_r_sum_terminal. ff_u_r_sum = ff_q_r_sum_terminal * S ((S (l)) * ff_v_r_sum) + (m))) /\ forall ff_i_r_sum. (exists ff_lt_r_sum_bound. ff_lt_r_sum_bound + S ff_i_r_sum = l) -> exists ff_a_r_sum ff_r_r_sum ff_s_r_sum. ((((exists ff_h_r_sum_summand. ff_h_r_sum_summand + S (ff_a_r_sum) = S ((S (ff_i_r_sum)) * c)) /\ exists ff_q_r_sum_summand. b = ff_q_r_sum_summand * S ((S (ff_i_r_sum)) * c) + (ff_a_r_sum))) /\ ((((exists ff_h_r_sum_partial. ff_h_r_sum_partial + S (ff_r_r_sum) = S ((S (ff_i_r_sum)) * ff_v_r_sum)) /\ exists ff_q_r_sum_partial. ff_u_r_sum = ff_q_r_sum_partial * S ((S (ff_i_r_sum)) * ff_v_r_sum) + (ff_r_r_sum))) /\ ((((exists ff_h_r_sum_successor. ff_h_r_sum_successor + S (ff_s_r_sum) = S ((S (S ff_i_r_sum)) * ff_v_r_sum)) /\ exists ff_q_r_sum_successor. ff_u_r_sum = ff_q_r_sum_successor * S ((S (S ff_i_r_sum)) * ff_v_r_sum) + (ff_s_r_sum))) /\ ff_s_r_sum = ff_r_r_sum + ff_a_r_sum)))))) /\ (forall ff_i_r_bits. (exists ff_lt_r_bits_bound. ff_lt_r_bits_bound + S ff_i_r_bits = l) -> exists ff_bit_r_bits. ((((exists ff_h_r_bits_decoded. ff_h_r_bits_decoded + S (ff_bit_r_bits) = S ((S (ff_i_r_bits)) * c)) /\ exists ff_q_r_bits_decoded. b = ff_q_r_bits_decoded * S ((S (ff_i_r_bits)) * c) + (ff_bit_r_bits))) /\ (ff_bit_r_bits = 0 \/ ff_bit_r_bits = 1))))) -> n = mProof neighborhood
Direct theorem prerequisites
Direct theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed command.
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 (1)
01Fix variables and assumptionsL1–7
02Separate the logical casesL8–9
03Use earlier factsL10–17
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 17 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro n - 0005
intro m - 0006
intro hn - 0007
intro hm - 0008
cases hn - 0009
cases hm - 0010
specialize beta_sum_functional b - 0011
specialize beta_sum_functional c - 0012
specialize beta_sum_functional l - 0013
specialize beta_sum_functional n - 0014
specialize beta_sum_functional m - 0015
apply beta_sum_functional - 0016
exact hn_left - 0017
exact hm_left