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 carry relation contains actual quotient columns and carry bits, not the desired valuation. The theorem includes all finite lists and zero parts. It uses sequential binary-column carries; a separate simultaneous-grid or permutation-invariance theorem is not asserted.
Exact theorem in conservative defined notation
∀ b. ∀ c. ∀ n. ∀ z. Multinomial(b,c,0,n,z) → n = 0 ∧ z = 1
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Original expanded first-order statement
forall b c n z. (exists mkm_sum_code_empty_values mkm_sum_scale_empty_values mkm_factor_code_empty_values mkm_factor_scale_empty_values. (((((exists fs_h_mkm_empty_values_trace_start. fs_h_mkm_empty_values_trace_start + S (0) = S ((S (0)) * mkm_sum_scale_empty_values)) /\ exists fs_q_mkm_empty_values_trace_start. mkm_sum_code_empty_values = fs_q_mkm_empty_values_trace_start * S ((S (0)) * mkm_sum_scale_empty_values) + (0))) /\ ((((exists fs_h_mkm_empty_values_trace_terminal. fs_h_mkm_empty_values_trace_terminal + S (n) = S ((S (0)) * mkm_sum_scale_empty_values)) /\ exists fs_q_mkm_empty_values_trace_terminal. mkm_sum_code_empty_values = fs_q_mkm_empty_values_trace_terminal * S ((S (0)) * mkm_sum_scale_empty_values) + (n))) /\ forall fs_i_mkm_empty_values_trace_steps. (exists fs_lt_mkm_empty_values_trace_steps_bound. fs_lt_mkm_empty_values_trace_steps_bound + S fs_i_mkm_empty_values_trace_steps = 0) -> exists fs_a_mkm_empty_values_trace_steps fs_r_mkm_empty_values_trace_steps fs_s_mkm_empty_values_trace_steps. ((((exists fs_h_mkm_empty_values_trace_steps_summand. fs_h_mkm_empty_values_trace_steps_summand + S (fs_a_mkm_empty_values_trace_steps) = S ((S (fs_i_mkm_empty_values_trace_steps)) * c)) /\ exists fs_q_mkm_empty_values_trace_steps_summand. b = fs_q_mkm_empty_values_trace_steps_summand * S ((S (fs_i_mkm_empty_values_trace_steps)) * c) + (fs_a_mkm_empty_values_trace_steps))) /\ ((((exists fs_h_mkm_empty_values_trace_steps_partial. fs_h_mkm_empty_values_trace_steps_partial + S (fs_r_mkm_empty_values_trace_steps) = S ((S (fs_i_mkm_empty_values_trace_steps)) * mkm_sum_scale_empty_values)) /\ exists fs_q_mkm_empty_values_trace_steps_partial. mkm_sum_code_empty_values = fs_q_mkm_empty_values_trace_steps_partial * S ((S (fs_i_mkm_empty_values_trace_steps)) * mkm_sum_scale_empty_values) + (fs_r_mkm_empty_values_trace_steps))) /\ ((((exists fs_h_mkm_empty_values_trace_steps_successor. fs_h_mkm_empty_values_trace_steps_successor + S (fs_s_mkm_empty_values_trace_steps) = S ((S (S fs_i_mkm_empty_values_trace_steps)) * mkm_sum_scale_empty_values)) /\ exists fs_q_mkm_empty_values_trace_steps_successor. mkm_sum_code_empty_values = fs_q_mkm_empty_values_trace_steps_successor * S ((S (S fs_i_mkm_empty_values_trace_steps)) * mkm_sum_scale_empty_values) + (fs_s_mkm_empty_values_trace_steps))) /\ fs_s_mkm_empty_values_trace_steps = fs_r_mkm_empty_values_trace_steps + fs_a_mkm_empty_values_trace_steps)))))) /\ ((forall mkm_index_empty_values_factors. (exists mkm_lt_empty_values_factors_bound. mkm_lt_empty_values_factors_bound + S (mkm_index_empty_values_factors) = (0)) -> (exists mkm_value_empty_values_factors_point mkm_partial_empty_values_factors_point mkm_factor_empty_values_factors_point. (((exists fs_h_mkm_empty_values_factors_point_source. fs_h_mkm_empty_values_factors_point_source + S (mkm_value_empty_values_factors_point) = S ((S (mkm_index_empty_values_factors)) * c)) /\ exists fs_q_mkm_empty_values_factors_point_source. b = fs_q_mkm_empty_values_factors_point_source * S ((S (mkm_index_empty_values_factors)) * c) + (mkm_value_empty_values_factors_point))) /\ ((((exists fs_h_mkm_empty_values_factors_point_partial. fs_h_mkm_empty_values_factors_point_partial + S (mkm_partial_empty_values_factors_point) = S ((S (mkm_index_empty_values_factors)) * mkm_sum_scale_empty_values)) /\ exists fs_q_mkm_empty_values_factors_point_partial. mkm_sum_code_empty_values = fs_q_mkm_empty_values_factors_point_partial * S ((S (mkm_index_empty_values_factors)) * mkm_sum_scale_empty_values) + (mkm_partial_empty_values_factors_point))) /\ ((((exists bcf_lt_gap_mkm_empty_values_factors_point_choose_out_of_range. bcf_lt_gap_mkm_empty_values_factors_point_choose_out_of_range + S (mkm_partial_empty_values_factors_point + mkm_value_empty_values_factors_point) = mkm_partial_empty_values_factors_point) /\ mkm_factor_empty_values_factors_point = 0) \/ ((exists bcf_le_gap_mkm_empty_values_factors_point_choose_in_range. bcf_le_gap_mkm_empty_values_factors_point_choose_in_range + (mkm_partial_empty_values_factors_point) = mkm_partial_empty_values_factors_point + mkm_value_empty_values_factors_point) /\ (exists bcf_row_code_code_mkm_empty_values_factors_point_choose bcf_row_code_scale_mkm_empty_values_factors_point_choose bcf_row_scale_code_mkm_empty_values_factors_point_choose bcf_row_scale_scale_mkm_empty_values_factors_point_choose bcf_row_code_mkm_empty_values_factors_point_choose bcf_row_scale_mkm_empty_values_factors_point_choose. ((forall bcf_row_index_mkm_empty_values_factors_point_choose_table. (exists bcf_lt_gap_mkm_empty_values_factors_point_choose_table_row_bound. bcf_lt_gap_mkm_empty_values_factors_point_choose_table_row_bound + S (bcf_row_index_mkm_empty_values_factors_point_choose_table) = S (mkm_partial_empty_values_factors_point + mkm_value_empty_values_factors_point)) -> exists bcf_row_code_mkm_empty_values_factors_point_choose_table bcf_row_scale_mkm_empty_values_factors_point_choose_table. ((((exists bcf_height_mkm_empty_values_factors_point_choose_table_decoded_row_code. bcf_height_mkm_empty_values_factors_point_choose_table_decoded_row_code + S (bcf_row_code_mkm_empty_values_factors_point_choose_table) = S ((S (bcf_row_index_mkm_empty_values_factors_point_choose_table)) * bcf_row_code_scale_mkm_empty_values_factors_point_choose)) /\ exists bcf_quotient_mkm_empty_values_factors_point_choose_table_decoded_row_code. bcf_row_code_code_mkm_empty_values_factors_point_choose = bcf_quotient_mkm_empty_values_factors_point_choose_table_decoded_row_code * S ((S (bcf_row_index_mkm_empty_values_factors_point_choose_table)) * bcf_row_code_scale_mkm_empty_values_factors_point_choose) + (bcf_row_code_mkm_empty_values_factors_point_choose_table))) /\ ((((exists bcf_height_mkm_empty_values_factors_point_choose_table_decoded_row_scale. bcf_height_mkm_empty_values_factors_point_choose_table_decoded_row_scale + S (bcf_row_scale_mkm_empty_values_factors_point_choose_table) = S ((S (bcf_row_index_mkm_empty_values_factors_point_choose_table)) * bcf_row_scale_scale_mkm_empty_values_factors_point_choose)) /\ exists bcf_quotient_mkm_empty_values_factors_point_choose_table_decoded_row_scale. bcf_row_scale_code_mkm_empty_values_factors_point_choose = bcf_quotient_mkm_empty_values_factors_point_choose_table_decoded_row_scale * S ((S (bcf_row_index_mkm_empty_values_factors_point_choose_table)) * bcf_row_scale_scale_mkm_empty_values_factors_point_choose) + (bcf_row_scale_mkm_empty_values_factors_point_choose_table))) /\ ((bcf_row_index_mkm_empty_values_factors_point_choose_table = 0 /\ (forall bcf_index_mkm_empty_values_factors_point_choose_table_zero_row. (exists bcf_lt_gap_mkm_empty_values_factors_point_choose_table_zero_row_bound. bcf_lt_gap_mkm_empty_values_factors_point_choose_table_zero_row_bound + S (bcf_index_mkm_empty_values_factors_point_choose_table_zero_row) = S (mkm_partial_empty_values_factors_point + mkm_value_empty_values_factors_point)) -> exists bcf_value_mkm_empty_values_factors_point_choose_table_zero_row. ((((exists bcf_height_mkm_empty_values_factors_point_choose_table_zero_row_entry. bcf_height_mkm_empty_values_factors_point_choose_table_zero_row_entry + S (bcf_value_mkm_empty_values_factors_point_choose_table_zero_row) = S ((S (bcf_index_mkm_empty_values_factors_point_choose_table_zero_row)) * bcf_row_scale_mkm_empty_values_factors_point_choose_table)) /\ exists bcf_quotient_mkm_empty_values_factors_point_choose_table_zero_row_entry. bcf_row_code_mkm_empty_values_factors_point_choose_table = bcf_quotient_mkm_empty_values_factors_point_choose_table_zero_row_entry * S ((S (bcf_index_mkm_empty_values_factors_point_choose_table_zero_row)) * bcf_row_scale_mkm_empty_values_factors_point_choose_table) + (bcf_value_mkm_empty_values_factors_point_choose_table_zero_row))) /\ ((bcf_index_mkm_empty_values_factors_point_choose_table_zero_row = 0 /\ bcf_value_mkm_empty_values_factors_point_choose_table_zero_row = 1) \/ exists bcf_predecessor_mkm_empty_values_factors_point_choose_table_zero_row. bcf_index_mkm_empty_values_factors_point_choose_table_zero_row = S bcf_predecessor_mkm_empty_values_factors_point_choose_table_zero_row /\ bcf_value_mkm_empty_values_factors_point_choose_table_zero_row = 0)))) \/ exists bcf_predecessor_mkm_empty_values_factors_point_choose_table bcf_previous_code_mkm_empty_values_factors_point_choose_table bcf_previous_scale_mkm_empty_values_factors_point_choose_table. bcf_row_index_mkm_empty_values_factors_point_choose_table = S bcf_predecessor_mkm_empty_values_factors_point_choose_table /\ ((((exists bcf_height_mkm_empty_values_factors_point_choose_table_decoded_previous_code. bcf_height_mkm_empty_values_factors_point_choose_table_decoded_previous_code + S (bcf_previous_code_mkm_empty_values_factors_point_choose_table) = S ((S (bcf_predecessor_mkm_empty_values_factors_point_choose_table)) * bcf_row_code_scale_mkm_empty_values_factors_point_choose)) /\ exists bcf_quotient_mkm_empty_values_factors_point_choose_table_decoded_previous_code. bcf_row_code_code_mkm_empty_values_factors_point_choose = bcf_quotient_mkm_empty_values_factors_point_choose_table_decoded_previous_code * S ((S (bcf_predecessor_mkm_empty_values_factors_point_choose_table)) * bcf_row_code_scale_mkm_empty_values_factors_point_choose) + (bcf_previous_code_mkm_empty_values_factors_point_choose_table))) /\ ((((exists bcf_height_mkm_empty_values_factors_point_choose_table_decoded_previous_scale. bcf_height_mkm_empty_values_factors_point_choose_table_decoded_previous_scale + S (bcf_previous_scale_mkm_empty_values_factors_point_choose_table) = S ((S (bcf_predecessor_mkm_empty_values_factors_point_choose_table)) * bcf_row_scale_scale_mkm_empty_values_factors_point_choose)) /\ exists bcf_quotient_mkm_empty_values_factors_point_choose_table_decoded_previous_scale. bcf_row_scale_code_mkm_empty_values_factors_point_choose = bcf_quotient_mkm_empty_values_factors_point_choose_table_decoded_previous_scale * S ((S (bcf_predecessor_mkm_empty_values_factors_point_choose_table)) * bcf_row_scale_scale_mkm_empty_values_factors_point_choose) + (bcf_previous_scale_mkm_empty_values_factors_point_choose_table))) /\ (forall bcf_index_mkm_empty_values_factors_point_choose_table_row_step. (exists bcf_lt_gap_mkm_empty_values_factors_point_choose_table_row_step_bound. bcf_lt_gap_mkm_empty_values_factors_point_choose_table_row_step_bound + S (bcf_index_mkm_empty_values_factors_point_choose_table_row_step) = S (mkm_partial_empty_values_factors_point + mkm_value_empty_values_factors_point)) -> exists bcf_value_mkm_empty_values_factors_point_choose_table_row_step. ((((exists bcf_height_mkm_empty_values_factors_point_choose_table_row_step_entry. bcf_height_mkm_empty_values_factors_point_choose_table_row_step_entry + S (bcf_value_mkm_empty_values_factors_point_choose_table_row_step) = S ((S (bcf_index_mkm_empty_values_factors_point_choose_table_row_step)) * bcf_row_scale_mkm_empty_values_factors_point_choose_table)) /\ exists bcf_quotient_mkm_empty_values_factors_point_choose_table_row_step_entry. bcf_row_code_mkm_empty_values_factors_point_choose_table = bcf_quotient_mkm_empty_values_factors_point_choose_table_row_step_entry * S ((S (bcf_index_mkm_empty_values_factors_point_choose_table_row_step)) * bcf_row_scale_mkm_empty_values_factors_point_choose_table) + (bcf_value_mkm_empty_values_factors_point_choose_table_row_step))) /\ ((bcf_index_mkm_empty_values_factors_point_choose_table_row_step = 0 /\ bcf_value_mkm_empty_values_factors_point_choose_table_row_step = 1) \/ exists bcf_predecessor_mkm_empty_values_factors_point_choose_table_row_step bcf_left_mkm_empty_values_factors_point_choose_table_row_step bcf_right_mkm_empty_values_factors_point_choose_table_row_step. bcf_index_mkm_empty_values_factors_point_choose_table_row_step = S bcf_predecessor_mkm_empty_values_factors_point_choose_table_row_step /\ ((((exists bcf_height_mkm_empty_values_factors_point_choose_table_row_step_previous_left. bcf_height_mkm_empty_values_factors_point_choose_table_row_step_previous_left + S (bcf_left_mkm_empty_values_factors_point_choose_table_row_step) = S ((S (bcf_predecessor_mkm_empty_values_factors_point_choose_table_row_step)) * bcf_previous_scale_mkm_empty_values_factors_point_choose_table)) /\ exists bcf_quotient_mkm_empty_values_factors_point_choose_table_row_step_previous_left. bcf_previous_code_mkm_empty_values_factors_point_choose_table = bcf_quotient_mkm_empty_values_factors_point_choose_table_row_step_previous_left * S ((S (bcf_predecessor_mkm_empty_values_factors_point_choose_table_row_step)) * bcf_previous_scale_mkm_empty_values_factors_point_choose_table) + (bcf_left_mkm_empty_values_factors_point_choose_table_row_step))) /\ ((((exists bcf_height_mkm_empty_values_factors_point_choose_table_row_step_previous_right. bcf_height_mkm_empty_values_factors_point_choose_table_row_step_previous_right + S (bcf_right_mkm_empty_values_factors_point_choose_table_row_step) = S ((S (S (bcf_predecessor_mkm_empty_values_factors_point_choose_table_row_step))) * bcf_previous_scale_mkm_empty_values_factors_point_choose_table)) /\ exists bcf_quotient_mkm_empty_values_factors_point_choose_table_row_step_previous_right. bcf_previous_code_mkm_empty_values_factors_point_choose_table = bcf_quotient_mkm_empty_values_factors_point_choose_table_row_step_previous_right * S ((S (S (bcf_predecessor_mkm_empty_values_factors_point_choose_table_row_step))) * bcf_previous_scale_mkm_empty_values_factors_point_choose_table) + (bcf_right_mkm_empty_values_factors_point_choose_table_row_step))) /\ bcf_value_mkm_empty_values_factors_point_choose_table_row_step = bcf_left_mkm_empty_values_factors_point_choose_table_row_step + bcf_right_mkm_empty_values_factors_point_choose_table_row_step))))))))))) /\ ((((exists bcf_height_mkm_empty_values_factors_point_choose_decoded_row_code. bcf_height_mkm_empty_values_factors_point_choose_decoded_row_code + S (bcf_row_code_mkm_empty_values_factors_point_choose) = S ((S (mkm_partial_empty_values_factors_point + mkm_value_empty_values_factors_point)) * bcf_row_code_scale_mkm_empty_values_factors_point_choose)) /\ exists bcf_quotient_mkm_empty_values_factors_point_choose_decoded_row_code. bcf_row_code_code_mkm_empty_values_factors_point_choose = bcf_quotient_mkm_empty_values_factors_point_choose_decoded_row_code * S ((S (mkm_partial_empty_values_factors_point + mkm_value_empty_values_factors_point)) * bcf_row_code_scale_mkm_empty_values_factors_point_choose) + (bcf_row_code_mkm_empty_values_factors_point_choose))) /\ ((((exists bcf_height_mkm_empty_values_factors_point_choose_decoded_row_scale. bcf_height_mkm_empty_values_factors_point_choose_decoded_row_scale + S (bcf_row_scale_mkm_empty_values_factors_point_choose) = S ((S (mkm_partial_empty_values_factors_point + mkm_value_empty_values_factors_point)) * bcf_row_scale_scale_mkm_empty_values_factors_point_choose)) /\ exists bcf_quotient_mkm_empty_values_factors_point_choose_decoded_row_scale. bcf_row_scale_code_mkm_empty_values_factors_point_choose = bcf_quotient_mkm_empty_values_factors_point_choose_decoded_row_scale * S ((S (mkm_partial_empty_values_factors_point + mkm_value_empty_values_factors_point)) * bcf_row_scale_scale_mkm_empty_values_factors_point_choose) + (bcf_row_scale_mkm_empty_values_factors_point_choose))) /\ (((exists bcf_height_mkm_empty_values_factors_point_choose_decoded_value. bcf_height_mkm_empty_values_factors_point_choose_decoded_value + S (mkm_factor_empty_values_factors_point) = S ((S (mkm_partial_empty_values_factors_point)) * bcf_row_scale_mkm_empty_values_factors_point_choose)) /\ exists bcf_quotient_mkm_empty_values_factors_point_choose_decoded_value. bcf_row_code_mkm_empty_values_factors_point_choose = bcf_quotient_mkm_empty_values_factors_point_choose_decoded_value * S ((S (mkm_partial_empty_values_factors_point)) * bcf_row_scale_mkm_empty_values_factors_point_choose) + (mkm_factor_empty_values_factors_point))))))))) /\ (((exists fs_h_mkm_empty_values_factors_point_factor. fs_h_mkm_empty_values_factors_point_factor + S (mkm_factor_empty_values_factors_point) = S ((S (mkm_index_empty_values_factors)) * mkm_factor_scale_empty_values)) /\ exists fs_q_mkm_empty_values_factors_point_factor. mkm_factor_code_empty_values = fs_q_mkm_empty_values_factors_point_factor * S ((S (mkm_index_empty_values_factors)) * mkm_factor_scale_empty_values) + (mkm_factor_empty_values_factors_point))))))) /\ (exists ff_u_mkm_empty_values_product ff_v_mkm_empty_values_product. ((((exists ff_h_mkm_empty_values_product_start. ff_h_mkm_empty_values_product_start + S (1) = S ((S (0)) * ff_v_mkm_empty_values_product)) /\ exists ff_q_mkm_empty_values_product_start. ff_u_mkm_empty_values_product = ff_q_mkm_empty_values_product_start * S ((S (0)) * ff_v_mkm_empty_values_product) + (1))) /\ ((((exists ff_h_mkm_empty_values_product_terminal. ff_h_mkm_empty_values_product_terminal + S (z) = S ((S (0)) * ff_v_mkm_empty_values_product)) /\ exists ff_q_mkm_empty_values_product_terminal. ff_u_mkm_empty_values_product = ff_q_mkm_empty_values_product_terminal * S ((S (0)) * ff_v_mkm_empty_values_product) + (z))) /\ forall ff_i_mkm_empty_values_product. (exists ff_lt_mkm_empty_values_product_bound. ff_lt_mkm_empty_values_product_bound + S ff_i_mkm_empty_values_product = 0) -> exists ff_p_mkm_empty_values_product ff_r_mkm_empty_values_product ff_s_mkm_empty_values_product. ((((exists ff_h_mkm_empty_values_product_factor. ff_h_mkm_empty_values_product_factor + S (ff_p_mkm_empty_values_product) = S ((S (ff_i_mkm_empty_values_product)) * mkm_factor_scale_empty_values)) /\ exists ff_q_mkm_empty_values_product_factor. mkm_factor_code_empty_values = ff_q_mkm_empty_values_product_factor * S ((S (ff_i_mkm_empty_values_product)) * mkm_factor_scale_empty_values) + (ff_p_mkm_empty_values_product))) /\ ((((exists ff_h_mkm_empty_values_product_partial. ff_h_mkm_empty_values_product_partial + S (ff_r_mkm_empty_values_product) = S ((S (ff_i_mkm_empty_values_product)) * ff_v_mkm_empty_values_product)) /\ exists ff_q_mkm_empty_values_product_partial. ff_u_mkm_empty_values_product = ff_q_mkm_empty_values_product_partial * S ((S (ff_i_mkm_empty_values_product)) * ff_v_mkm_empty_values_product) + (ff_r_mkm_empty_values_product))) /\ ((((exists ff_h_mkm_empty_values_product_successor. ff_h_mkm_empty_values_product_successor + S (ff_s_mkm_empty_values_product) = S ((S (S ff_i_mkm_empty_values_product)) * ff_v_mkm_empty_values_product)) /\ exists ff_q_mkm_empty_values_product_successor. ff_u_mkm_empty_values_product = ff_q_mkm_empty_values_product_successor * S ((S (S ff_i_mkm_empty_values_product)) * ff_v_mkm_empty_values_product) + (ff_s_mkm_empty_values_product))) /\ ff_s_mkm_empty_values_product = ff_r_mkm_empty_values_product * ff_p_mkm_empty_values_product)))))))) -> n = 0 /\ z = 1Complete tactic proof in conservative notation
All 24 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.
Read the argument
Proof checkpoints
24 script commands · 5 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
02Separate the logical casesL6–12
03Use earlier factsL13–16
04Construct an explicit witnessL17–18
05Use earlier factsL19–24
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 24 lines
- 0001
intro b - 0002
intro c - 0003
intro n - 0004
intro z - 0005
intro h - 0006
cases h - 0007
cases h_witness - 0008
cases h_witness_witness - 0009
cases h_witness_witness_witness - 0010
cases h_witness_witness_witness_witness - 0011
cases h_witness_witness_witness_witness_right - 0012
split - 0013
specialize beta_sum_zero b - 0014
specialize beta_sum_zero c - 0015
specialize beta_sum_zero n - 0016
apply beta_sum_zero - 0017
exists x - 0018
exists x1 - 0019
exact h_witness_witness_witness_witness_left - 0020
specialize beta_product_zero x2 - 0021
specialize beta_product_zero x3 - 0022
specialize beta_product_zero z - 0023
apply beta_product_zero - 0024
exact h_witness_witness_witness_witness_right_right