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 b c sb sc l. exists cb cc. (forall mkm_index_binexists_target. (exists mkm_lt_binexists_target_bound. mkm_lt_binexists_target_bound + S (mkm_index_binexists_target) = (l)) -> (exists mkm_value_binexists_target_point mkm_partial_binexists_target_point mkm_factor_binexists_target_point. (((exists fs_h_mkm_binexists_target_point_source. fs_h_mkm_binexists_target_point_source + S (mkm_value_binexists_target_point) = S ((S (mkm_index_binexists_target)) * c)) /\ exists fs_q_mkm_binexists_target_point_source. b = fs_q_mkm_binexists_target_point_source * S ((S (mkm_index_binexists_target)) * c) + (mkm_value_binexists_target_point))) /\ ((((exists fs_h_mkm_binexists_target_point_partial. fs_h_mkm_binexists_target_point_partial + S (mkm_partial_binexists_target_point) = S ((S (mkm_index_binexists_target)) * sc)) /\ exists fs_q_mkm_binexists_target_point_partial. sb = fs_q_mkm_binexists_target_point_partial * S ((S (mkm_index_binexists_target)) * sc) + (mkm_partial_binexists_target_point))) /\ ((((exists bcf_lt_gap_mkm_binexists_target_point_choose_out_of_range. bcf_lt_gap_mkm_binexists_target_point_choose_out_of_range + S (mkm_partial_binexists_target_point + mkm_value_binexists_target_point) = mkm_partial_binexists_target_point) /\ mkm_factor_binexists_target_point = 0) \/ ((exists bcf_le_gap_mkm_binexists_target_point_choose_in_range. bcf_le_gap_mkm_binexists_target_point_choose_in_range + (mkm_partial_binexists_target_point) = mkm_partial_binexists_target_point + mkm_value_binexists_target_point) /\ (exists bcf_row_code_code_mkm_binexists_target_point_choose bcf_row_code_scale_mkm_binexists_target_point_choose bcf_row_scale_code_mkm_binexists_target_point_choose bcf_row_scale_scale_mkm_binexists_target_point_choose bcf_row_code_mkm_binexists_target_point_choose bcf_row_scale_mkm_binexists_target_point_choose. ((forall bcf_row_index_mkm_binexists_target_point_choose_table. (exists bcf_lt_gap_mkm_binexists_target_point_choose_table_row_bound. bcf_lt_gap_mkm_binexists_target_point_choose_table_row_bound + S (bcf_row_index_mkm_binexists_target_point_choose_table) = S (mkm_partial_binexists_target_point + mkm_value_binexists_target_point)) -> exists bcf_row_code_mkm_binexists_target_point_choose_table bcf_row_scale_mkm_binexists_target_point_choose_table. ((((exists bcf_height_mkm_binexists_target_point_choose_table_decoded_row_code. bcf_height_mkm_binexists_target_point_choose_table_decoded_row_code + S (bcf_row_code_mkm_binexists_target_point_choose_table) = S ((S (bcf_row_index_mkm_binexists_target_point_choose_table)) * bcf_row_code_scale_mkm_binexists_target_point_choose)) /\ exists bcf_quotient_mkm_binexists_target_point_choose_table_decoded_row_code. bcf_row_code_code_mkm_binexists_target_point_choose = bcf_quotient_mkm_binexists_target_point_choose_table_decoded_row_code * S ((S (bcf_row_index_mkm_binexists_target_point_choose_table)) * bcf_row_code_scale_mkm_binexists_target_point_choose) + (bcf_row_code_mkm_binexists_target_point_choose_table))) /\ ((((exists bcf_height_mkm_binexists_target_point_choose_table_decoded_row_scale. bcf_height_mkm_binexists_target_point_choose_table_decoded_row_scale + S (bcf_row_scale_mkm_binexists_target_point_choose_table) = S ((S (bcf_row_index_mkm_binexists_target_point_choose_table)) * bcf_row_scale_scale_mkm_binexists_target_point_choose)) /\ exists bcf_quotient_mkm_binexists_target_point_choose_table_decoded_row_scale. bcf_row_scale_code_mkm_binexists_target_point_choose = bcf_quotient_mkm_binexists_target_point_choose_table_decoded_row_scale * S ((S (bcf_row_index_mkm_binexists_target_point_choose_table)) * bcf_row_scale_scale_mkm_binexists_target_point_choose) + (bcf_row_scale_mkm_binexists_target_point_choose_table))) /\ ((bcf_row_index_mkm_binexists_target_point_choose_table = 0 /\ (forall bcf_index_mkm_binexists_target_point_choose_table_zero_row. (exists bcf_lt_gap_mkm_binexists_target_point_choose_table_zero_row_bound. bcf_lt_gap_mkm_binexists_target_point_choose_table_zero_row_bound + S (bcf_index_mkm_binexists_target_point_choose_table_zero_row) = S (mkm_partial_binexists_target_point + mkm_value_binexists_target_point)) -> exists bcf_value_mkm_binexists_target_point_choose_table_zero_row. ((((exists bcf_height_mkm_binexists_target_point_choose_table_zero_row_entry. bcf_height_mkm_binexists_target_point_choose_table_zero_row_entry + S (bcf_value_mkm_binexists_target_point_choose_table_zero_row) = S ((S (bcf_index_mkm_binexists_target_point_choose_table_zero_row)) * bcf_row_scale_mkm_binexists_target_point_choose_table)) /\ exists bcf_quotient_mkm_binexists_target_point_choose_table_zero_row_entry. bcf_row_code_mkm_binexists_target_point_choose_table = bcf_quotient_mkm_binexists_target_point_choose_table_zero_row_entry * S ((S (bcf_index_mkm_binexists_target_point_choose_table_zero_row)) * bcf_row_scale_mkm_binexists_target_point_choose_table) + (bcf_value_mkm_binexists_target_point_choose_table_zero_row))) /\ ((bcf_index_mkm_binexists_target_point_choose_table_zero_row = 0 /\ bcf_value_mkm_binexists_target_point_choose_table_zero_row = 1) \/ exists bcf_predecessor_mkm_binexists_target_point_choose_table_zero_row. bcf_index_mkm_binexists_target_point_choose_table_zero_row = S bcf_predecessor_mkm_binexists_target_point_choose_table_zero_row /\ bcf_value_mkm_binexists_target_point_choose_table_zero_row = 0)))) \/ exists bcf_predecessor_mkm_binexists_target_point_choose_table bcf_previous_code_mkm_binexists_target_point_choose_table bcf_previous_scale_mkm_binexists_target_point_choose_table. bcf_row_index_mkm_binexists_target_point_choose_table = S bcf_predecessor_mkm_binexists_target_point_choose_table /\ ((((exists bcf_height_mkm_binexists_target_point_choose_table_decoded_previous_code. bcf_height_mkm_binexists_target_point_choose_table_decoded_previous_code + S (bcf_previous_code_mkm_binexists_target_point_choose_table) = S ((S (bcf_predecessor_mkm_binexists_target_point_choose_table)) * bcf_row_code_scale_mkm_binexists_target_point_choose)) /\ exists bcf_quotient_mkm_binexists_target_point_choose_table_decoded_previous_code. bcf_row_code_code_mkm_binexists_target_point_choose = bcf_quotient_mkm_binexists_target_point_choose_table_decoded_previous_code * S ((S (bcf_predecessor_mkm_binexists_target_point_choose_table)) * bcf_row_code_scale_mkm_binexists_target_point_choose) + (bcf_previous_code_mkm_binexists_target_point_choose_table))) /\ ((((exists bcf_height_mkm_binexists_target_point_choose_table_decoded_previous_scale. bcf_height_mkm_binexists_target_point_choose_table_decoded_previous_scale + S (bcf_previous_scale_mkm_binexists_target_point_choose_table) = S ((S (bcf_predecessor_mkm_binexists_target_point_choose_table)) * bcf_row_scale_scale_mkm_binexists_target_point_choose)) /\ exists bcf_quotient_mkm_binexists_target_point_choose_table_decoded_previous_scale. bcf_row_scale_code_mkm_binexists_target_point_choose = bcf_quotient_mkm_binexists_target_point_choose_table_decoded_previous_scale * S ((S (bcf_predecessor_mkm_binexists_target_point_choose_table)) * bcf_row_scale_scale_mkm_binexists_target_point_choose) + (bcf_previous_scale_mkm_binexists_target_point_choose_table))) /\ (forall bcf_index_mkm_binexists_target_point_choose_table_row_step. (exists bcf_lt_gap_mkm_binexists_target_point_choose_table_row_step_bound. bcf_lt_gap_mkm_binexists_target_point_choose_table_row_step_bound + S (bcf_index_mkm_binexists_target_point_choose_table_row_step) = S (mkm_partial_binexists_target_point + mkm_value_binexists_target_point)) -> exists bcf_value_mkm_binexists_target_point_choose_table_row_step. ((((exists bcf_height_mkm_binexists_target_point_choose_table_row_step_entry. bcf_height_mkm_binexists_target_point_choose_table_row_step_entry + S (bcf_value_mkm_binexists_target_point_choose_table_row_step) = S ((S (bcf_index_mkm_binexists_target_point_choose_table_row_step)) * bcf_row_scale_mkm_binexists_target_point_choose_table)) /\ exists bcf_quotient_mkm_binexists_target_point_choose_table_row_step_entry. bcf_row_code_mkm_binexists_target_point_choose_table = bcf_quotient_mkm_binexists_target_point_choose_table_row_step_entry * S ((S (bcf_index_mkm_binexists_target_point_choose_table_row_step)) * bcf_row_scale_mkm_binexists_target_point_choose_table) + (bcf_value_mkm_binexists_target_point_choose_table_row_step))) /\ ((bcf_index_mkm_binexists_target_point_choose_table_row_step = 0 /\ bcf_value_mkm_binexists_target_point_choose_table_row_step = 1) \/ exists bcf_predecessor_mkm_binexists_target_point_choose_table_row_step bcf_left_mkm_binexists_target_point_choose_table_row_step bcf_right_mkm_binexists_target_point_choose_table_row_step. bcf_index_mkm_binexists_target_point_choose_table_row_step = S bcf_predecessor_mkm_binexists_target_point_choose_table_row_step /\ ((((exists bcf_height_mkm_binexists_target_point_choose_table_row_step_previous_left. bcf_height_mkm_binexists_target_point_choose_table_row_step_previous_left + S (bcf_left_mkm_binexists_target_point_choose_table_row_step) = S ((S (bcf_predecessor_mkm_binexists_target_point_choose_table_row_step)) * bcf_previous_scale_mkm_binexists_target_point_choose_table)) /\ exists bcf_quotient_mkm_binexists_target_point_choose_table_row_step_previous_left. bcf_previous_code_mkm_binexists_target_point_choose_table = bcf_quotient_mkm_binexists_target_point_choose_table_row_step_previous_left * S ((S (bcf_predecessor_mkm_binexists_target_point_choose_table_row_step)) * bcf_previous_scale_mkm_binexists_target_point_choose_table) + (bcf_left_mkm_binexists_target_point_choose_table_row_step))) /\ ((((exists bcf_height_mkm_binexists_target_point_choose_table_row_step_previous_right. bcf_height_mkm_binexists_target_point_choose_table_row_step_previous_right + S (bcf_right_mkm_binexists_target_point_choose_table_row_step) = S ((S (S (bcf_predecessor_mkm_binexists_target_point_choose_table_row_step))) * bcf_previous_scale_mkm_binexists_target_point_choose_table)) /\ exists bcf_quotient_mkm_binexists_target_point_choose_table_row_step_previous_right. bcf_previous_code_mkm_binexists_target_point_choose_table = bcf_quotient_mkm_binexists_target_point_choose_table_row_step_previous_right * S ((S (S (bcf_predecessor_mkm_binexists_target_point_choose_table_row_step))) * bcf_previous_scale_mkm_binexists_target_point_choose_table) + (bcf_right_mkm_binexists_target_point_choose_table_row_step))) /\ bcf_value_mkm_binexists_target_point_choose_table_row_step = bcf_left_mkm_binexists_target_point_choose_table_row_step + bcf_right_mkm_binexists_target_point_choose_table_row_step))))))))))) /\ ((((exists bcf_height_mkm_binexists_target_point_choose_decoded_row_code. bcf_height_mkm_binexists_target_point_choose_decoded_row_code + S (bcf_row_code_mkm_binexists_target_point_choose) = S ((S (mkm_partial_binexists_target_point + mkm_value_binexists_target_point)) * bcf_row_code_scale_mkm_binexists_target_point_choose)) /\ exists bcf_quotient_mkm_binexists_target_point_choose_decoded_row_code. bcf_row_code_code_mkm_binexists_target_point_choose = bcf_quotient_mkm_binexists_target_point_choose_decoded_row_code * S ((S (mkm_partial_binexists_target_point + mkm_value_binexists_target_point)) * bcf_row_code_scale_mkm_binexists_target_point_choose) + (bcf_row_code_mkm_binexists_target_point_choose))) /\ ((((exists bcf_height_mkm_binexists_target_point_choose_decoded_row_scale. bcf_height_mkm_binexists_target_point_choose_decoded_row_scale + S (bcf_row_scale_mkm_binexists_target_point_choose) = S ((S (mkm_partial_binexists_target_point + mkm_value_binexists_target_point)) * bcf_row_scale_scale_mkm_binexists_target_point_choose)) /\ exists bcf_quotient_mkm_binexists_target_point_choose_decoded_row_scale. bcf_row_scale_code_mkm_binexists_target_point_choose = bcf_quotient_mkm_binexists_target_point_choose_decoded_row_scale * S ((S (mkm_partial_binexists_target_point + mkm_value_binexists_target_point)) * bcf_row_scale_scale_mkm_binexists_target_point_choose) + (bcf_row_scale_mkm_binexists_target_point_choose))) /\ (((exists bcf_height_mkm_binexists_target_point_choose_decoded_value. bcf_height_mkm_binexists_target_point_choose_decoded_value + S (mkm_factor_binexists_target_point) = S ((S (mkm_partial_binexists_target_point)) * bcf_row_scale_mkm_binexists_target_point_choose)) /\ exists bcf_quotient_mkm_binexists_target_point_choose_decoded_value. bcf_row_code_mkm_binexists_target_point_choose = bcf_quotient_mkm_binexists_target_point_choose_decoded_value * S ((S (mkm_partial_binexists_target_point)) * bcf_row_scale_mkm_binexists_target_point_choose) + (mkm_factor_binexists_target_point))))))))) /\ (((exists fs_h_mkm_binexists_target_point_factor. fs_h_mkm_binexists_target_point_factor + S (mkm_factor_binexists_target_point) = S ((S (mkm_index_binexists_target)) * cc)) /\ exists fs_q_mkm_binexists_target_point_factor. cb = fs_q_mkm_binexists_target_point_factor * S ((S (mkm_index_binexists_target)) * cc) + (mkm_factor_binexists_target_point)))))))Constructive proof overview
Generated structural guide
Construct all actual binomial factors for any finite decoded part and partial-sum tables.
The unchanged tactic script uses 4 declared prerequisites and contains 50 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
MK0008 multinomial_binomial_prefix_empty beta_at_exists Stable theorem; checked-use authorized choose_exists Alpha theorem; checked-use authorized MK000A multinomial_binomial_prefix_extendDirect 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
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 (2)
01Fix variables and assumptionsL1–4
02Induction on lL5–5
Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.
- L5
induction l
03Construct an explicit witnessL6–7
04Use earlier factsL8–14
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L8
specialize multinomial_binomial_prefix_empty b - L9
specialize multinomial_binomial_prefix_empty c - L10
specialize multinomial_binomial_prefix_empty sb - L11
specialize multinomial_binomial_prefix_empty sc - L12
specialize multinomial_binomial_prefix_empty 0 - L13
specialize multinomial_binomial_prefix_empty 0 - L14
apply multinomial_binomial_prefix_empty
05Establish hprefixL15–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L15
have hprefix : ∃ cb. ∃ cc. MultinomialBinomialPrefix(b,c,sb,sc,cb,cc,l)Definitions: MultinomialBinomialPrefix - L16
apply IH
06Separate the logical casesL17–18
07Establish hpartL19–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L19
have hpart : exists a. ((exists fs_h_mkm_binexists_part. fs_h_mkm_binexists_part + S (a) = S ((S (l)) * c)) /\ exists fs_q_mkm_binexists_part. b = fs_q_mkm_binexists_part * S ((S (l)) * c) + (a)) - L20
specialize beta_at_exists b - L21
specialize beta_at_exists c - L22
specialize beta_at_exists l - L23
apply beta_at_exists
08Separate the logical casesL24–24
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
cases hpart
09Establish hpartialL25–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L25
have hpartial : exists u. ((exists fs_h_mkm_binexists_partial. fs_h_mkm_binexists_partial + S (u) = S ((S (l)) * sc)) /\ exists fs_q_mkm_binexists_partial. sb = fs_q_mkm_binexists_partial * S ((S (l)) * sc) + (u)) - L26
specialize beta_at_exists sb - L27
specialize beta_at_exists sc - L28
specialize beta_at_exists l - L29
apply beta_at_exists
10Separate the logical casesL30–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
cases hpartial
11Establish hchooseL31–34
12Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
cases hchoose
13Use earlier factsL36–45
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
specialize multinomial_binomial_prefix_extend b - L37
specialize multinomial_binomial_prefix_extend c - L38
specialize multinomial_binomial_prefix_extend sb - L39
specialize multinomial_binomial_prefix_extend sc - L40
specialize multinomial_binomial_prefix_extend x - L41
specialize multinomial_binomial_prefix_extend x1 - L42
specialize multinomial_binomial_prefix_extend l - L43
specialize multinomial_binomial_prefix_extend x2 - L44
specialize multinomial_binomial_prefix_extend x3 - L45
specialize multinomial_binomial_prefix_extend x4
Original exact command ledger · 50 lines
- 0001
intro b - 0002
intro c - 0003
intro sb - 0004
intro sc - 0005
induction l - 0006
exists 0 - 0007
exists 0 - 0008
specialize multinomial_binomial_prefix_empty b - 0009
specialize multinomial_binomial_prefix_empty c - 0010
specialize multinomial_binomial_prefix_empty sb - 0011
specialize multinomial_binomial_prefix_empty sc - 0012
specialize multinomial_binomial_prefix_empty 0 - 0013
specialize multinomial_binomial_prefix_empty 0 - 0014
apply multinomial_binomial_prefix_empty - 0015
have hprefix : exists cb cc. forall mkm_index_binexists_prefix. (exists mkm_lt_binexists_prefix_bound. mkm_lt_binexists_prefix_bound + S (mkm_index_binexists_prefix) = (l)) -> (exists mkm_value_binexists_prefix_point mkm_partial_binexists_prefix_point mkm_factor_binexists_prefix_point. (((exists fs_h_mkm_binexists_prefix_point_source. fs_h_mkm_binexists_prefix_point_source + S (mkm_value_binexists_prefix_point) = S ((S (mkm_index_binexists_prefix)) * c)) /\ exists fs_q_mkm_binexists_prefix_point_source. b = fs_q_mkm_binexists_prefix_point_source * S ((S (mkm_index_binexists_prefix)) * c) + (mkm_value_binexists_prefix_point))) /\ ((((exists fs_h_mkm_binexists_prefix_point_partial. fs_h_mkm_binexists_prefix_point_partial + S (mkm_partial_binexists_prefix_point) = S ((S (mkm_index_binexists_prefix)) * sc)) /\ exists fs_q_mkm_binexists_prefix_point_partial. sb = fs_q_mkm_binexists_prefix_point_partial * S ((S (mkm_index_binexists_prefix)) * sc) + (mkm_partial_binexists_prefix_point))) /\ ((((exists bcf_lt_gap_mkm_binexists_prefix_point_choose_out_of_range. bcf_lt_gap_mkm_binexists_prefix_point_choose_out_of_range + S (mkm_partial_binexists_prefix_point + mkm_value_binexists_prefix_point) = mkm_partial_binexists_prefix_point) /\ mkm_factor_binexists_prefix_point = 0) \/ ((exists bcf_le_gap_mkm_binexists_prefix_point_choose_in_range. bcf_le_gap_mkm_binexists_prefix_point_choose_in_range + (mkm_partial_binexists_prefix_point) = mkm_partial_binexists_prefix_point + mkm_value_binexists_prefix_point) /\ (exists bcf_row_code_code_mkm_binexists_prefix_point_choose bcf_row_code_scale_mkm_binexists_prefix_point_choose bcf_row_scale_code_mkm_binexists_prefix_point_choose bcf_row_scale_scale_mkm_binexists_prefix_point_choose bcf_row_code_mkm_binexists_prefix_point_choose bcf_row_scale_mkm_binexists_prefix_point_choose. ((forall bcf_row_index_mkm_binexists_prefix_point_choose_table. (exists bcf_lt_gap_mkm_binexists_prefix_point_choose_table_row_bound. bcf_lt_gap_mkm_binexists_prefix_point_choose_table_row_bound + S (bcf_row_index_mkm_binexists_prefix_point_choose_table) = S (mkm_partial_binexists_prefix_point + mkm_value_binexists_prefix_point)) -> exists bcf_row_code_mkm_binexists_prefix_point_choose_table bcf_row_scale_mkm_binexists_prefix_point_choose_table. ((((exists bcf_height_mkm_binexists_prefix_point_choose_table_decoded_row_code. bcf_height_mkm_binexists_prefix_point_choose_table_decoded_row_code + S (bcf_row_code_mkm_binexists_prefix_point_choose_table) = S ((S (bcf_row_index_mkm_binexists_prefix_point_choose_table)) * bcf_row_code_scale_mkm_binexists_prefix_point_choose)) /\ exists bcf_quotient_mkm_binexists_prefix_point_choose_table_decoded_row_code. bcf_row_code_code_mkm_binexists_prefix_point_choose = bcf_quotient_mkm_binexists_prefix_point_choose_table_decoded_row_code * S ((S (bcf_row_index_mkm_binexists_prefix_point_choose_table)) * bcf_row_code_scale_mkm_binexists_prefix_point_choose) + (bcf_row_code_mkm_binexists_prefix_point_choose_table))) /\ ((((exists bcf_height_mkm_binexists_prefix_point_choose_table_decoded_row_scale. bcf_height_mkm_binexists_prefix_point_choose_table_decoded_row_scale + S (bcf_row_scale_mkm_binexists_prefix_point_choose_table) = S ((S (bcf_row_index_mkm_binexists_prefix_point_choose_table)) * bcf_row_scale_scale_mkm_binexists_prefix_point_choose)) /\ exists bcf_quotient_mkm_binexists_prefix_point_choose_table_decoded_row_scale. bcf_row_scale_code_mkm_binexists_prefix_point_choose = bcf_quotient_mkm_binexists_prefix_point_choose_table_decoded_row_scale * S ((S (bcf_row_index_mkm_binexists_prefix_point_choose_table)) * bcf_row_scale_scale_mkm_binexists_prefix_point_choose) + (bcf_row_scale_mkm_binexists_prefix_point_choose_table))) /\ ((bcf_row_index_mkm_binexists_prefix_point_choose_table = 0 /\ (forall bcf_index_mkm_binexists_prefix_point_choose_table_zero_row. (exists bcf_lt_gap_mkm_binexists_prefix_point_choose_table_zero_row_bound. bcf_lt_gap_mkm_binexists_prefix_point_choose_table_zero_row_bound + S (bcf_index_mkm_binexists_prefix_point_choose_table_zero_row) = S (mkm_partial_binexists_prefix_point + mkm_value_binexists_prefix_point)) -> exists bcf_value_mkm_binexists_prefix_point_choose_table_zero_row. ((((exists bcf_height_mkm_binexists_prefix_point_choose_table_zero_row_entry. bcf_height_mkm_binexists_prefix_point_choose_table_zero_row_entry + S (bcf_value_mkm_binexists_prefix_point_choose_table_zero_row) = S ((S (bcf_index_mkm_binexists_prefix_point_choose_table_zero_row)) * bcf_row_scale_mkm_binexists_prefix_point_choose_table)) /\ exists bcf_quotient_mkm_binexists_prefix_point_choose_table_zero_row_entry. bcf_row_code_mkm_binexists_prefix_point_choose_table = bcf_quotient_mkm_binexists_prefix_point_choose_table_zero_row_entry * S ((S (bcf_index_mkm_binexists_prefix_point_choose_table_zero_row)) * bcf_row_scale_mkm_binexists_prefix_point_choose_table) + (bcf_value_mkm_binexists_prefix_point_choose_table_zero_row))) /\ ((bcf_index_mkm_binexists_prefix_point_choose_table_zero_row = 0 /\ bcf_value_mkm_binexists_prefix_point_choose_table_zero_row = 1) \/ exists bcf_predecessor_mkm_binexists_prefix_point_choose_table_zero_row. bcf_index_mkm_binexists_prefix_point_choose_table_zero_row = S bcf_predecessor_mkm_binexists_prefix_point_choose_table_zero_row /\ bcf_value_mkm_binexists_prefix_point_choose_table_zero_row = 0)))) \/ exists bcf_predecessor_mkm_binexists_prefix_point_choose_table bcf_previous_code_mkm_binexists_prefix_point_choose_table bcf_previous_scale_mkm_binexists_prefix_point_choose_table. bcf_row_index_mkm_binexists_prefix_point_choose_table = S bcf_predecessor_mkm_binexists_prefix_point_choose_table /\ ((((exists bcf_height_mkm_binexists_prefix_point_choose_table_decoded_previous_code. bcf_height_mkm_binexists_prefix_point_choose_table_decoded_previous_code + S (bcf_previous_code_mkm_binexists_prefix_point_choose_table) = S ((S (bcf_predecessor_mkm_binexists_prefix_point_choose_table)) * bcf_row_code_scale_mkm_binexists_prefix_point_choose)) /\ exists bcf_quotient_mkm_binexists_prefix_point_choose_table_decoded_previous_code. bcf_row_code_code_mkm_binexists_prefix_point_choose = bcf_quotient_mkm_binexists_prefix_point_choose_table_decoded_previous_code * S ((S (bcf_predecessor_mkm_binexists_prefix_point_choose_table)) * bcf_row_code_scale_mkm_binexists_prefix_point_choose) + (bcf_previous_code_mkm_binexists_prefix_point_choose_table))) /\ ((((exists bcf_height_mkm_binexists_prefix_point_choose_table_decoded_previous_scale. bcf_height_mkm_binexists_prefix_point_choose_table_decoded_previous_scale + S (bcf_previous_scale_mkm_binexists_prefix_point_choose_table) = S ((S (bcf_predecessor_mkm_binexists_prefix_point_choose_table)) * bcf_row_scale_scale_mkm_binexists_prefix_point_choose)) /\ exists bcf_quotient_mkm_binexists_prefix_point_choose_table_decoded_previous_scale. bcf_row_scale_code_mkm_binexists_prefix_point_choose = bcf_quotient_mkm_binexists_prefix_point_choose_table_decoded_previous_scale * S ((S (bcf_predecessor_mkm_binexists_prefix_point_choose_table)) * bcf_row_scale_scale_mkm_binexists_prefix_point_choose) + (bcf_previous_scale_mkm_binexists_prefix_point_choose_table))) /\ (forall bcf_index_mkm_binexists_prefix_point_choose_table_row_step. (exists bcf_lt_gap_mkm_binexists_prefix_point_choose_table_row_step_bound. bcf_lt_gap_mkm_binexists_prefix_point_choose_table_row_step_bound + S (bcf_index_mkm_binexists_prefix_point_choose_table_row_step) = S (mkm_partial_binexists_prefix_point + mkm_value_binexists_prefix_point)) -> exists bcf_value_mkm_binexists_prefix_point_choose_table_row_step. ((((exists bcf_height_mkm_binexists_prefix_point_choose_table_row_step_entry. bcf_height_mkm_binexists_prefix_point_choose_table_row_step_entry + S (bcf_value_mkm_binexists_prefix_point_choose_table_row_step) = S ((S (bcf_index_mkm_binexists_prefix_point_choose_table_row_step)) * bcf_row_scale_mkm_binexists_prefix_point_choose_table)) /\ exists bcf_quotient_mkm_binexists_prefix_point_choose_table_row_step_entry. bcf_row_code_mkm_binexists_prefix_point_choose_table = bcf_quotient_mkm_binexists_prefix_point_choose_table_row_step_entry * S ((S (bcf_index_mkm_binexists_prefix_point_choose_table_row_step)) * bcf_row_scale_mkm_binexists_prefix_point_choose_table) + (bcf_value_mkm_binexists_prefix_point_choose_table_row_step))) /\ ((bcf_index_mkm_binexists_prefix_point_choose_table_row_step = 0 /\ bcf_value_mkm_binexists_prefix_point_choose_table_row_step = 1) \/ exists bcf_predecessor_mkm_binexists_prefix_point_choose_table_row_step bcf_left_mkm_binexists_prefix_point_choose_table_row_step bcf_right_mkm_binexists_prefix_point_choose_table_row_step. bcf_index_mkm_binexists_prefix_point_choose_table_row_step = S bcf_predecessor_mkm_binexists_prefix_point_choose_table_row_step /\ ((((exists bcf_height_mkm_binexists_prefix_point_choose_table_row_step_previous_left. bcf_height_mkm_binexists_prefix_point_choose_table_row_step_previous_left + S (bcf_left_mkm_binexists_prefix_point_choose_table_row_step) = S ((S (bcf_predecessor_mkm_binexists_prefix_point_choose_table_row_step)) * bcf_previous_scale_mkm_binexists_prefix_point_choose_table)) /\ exists bcf_quotient_mkm_binexists_prefix_point_choose_table_row_step_previous_left. bcf_previous_code_mkm_binexists_prefix_point_choose_table = bcf_quotient_mkm_binexists_prefix_point_choose_table_row_step_previous_left * S ((S (bcf_predecessor_mkm_binexists_prefix_point_choose_table_row_step)) * bcf_previous_scale_mkm_binexists_prefix_point_choose_table) + (bcf_left_mkm_binexists_prefix_point_choose_table_row_step))) /\ ((((exists bcf_height_mkm_binexists_prefix_point_choose_table_row_step_previous_right. bcf_height_mkm_binexists_prefix_point_choose_table_row_step_previous_right + S (bcf_right_mkm_binexists_prefix_point_choose_table_row_step) = S ((S (S (bcf_predecessor_mkm_binexists_prefix_point_choose_table_row_step))) * bcf_previous_scale_mkm_binexists_prefix_point_choose_table)) /\ exists bcf_quotient_mkm_binexists_prefix_point_choose_table_row_step_previous_right. bcf_previous_code_mkm_binexists_prefix_point_choose_table = bcf_quotient_mkm_binexists_prefix_point_choose_table_row_step_previous_right * S ((S (S (bcf_predecessor_mkm_binexists_prefix_point_choose_table_row_step))) * bcf_previous_scale_mkm_binexists_prefix_point_choose_table) + (bcf_right_mkm_binexists_prefix_point_choose_table_row_step))) /\ bcf_value_mkm_binexists_prefix_point_choose_table_row_step = bcf_left_mkm_binexists_prefix_point_choose_table_row_step + bcf_right_mkm_binexists_prefix_point_choose_table_row_step))))))))))) /\ ((((exists bcf_height_mkm_binexists_prefix_point_choose_decoded_row_code. bcf_height_mkm_binexists_prefix_point_choose_decoded_row_code + S (bcf_row_code_mkm_binexists_prefix_point_choose) = S ((S (mkm_partial_binexists_prefix_point + mkm_value_binexists_prefix_point)) * bcf_row_code_scale_mkm_binexists_prefix_point_choose)) /\ exists bcf_quotient_mkm_binexists_prefix_point_choose_decoded_row_code. bcf_row_code_code_mkm_binexists_prefix_point_choose = bcf_quotient_mkm_binexists_prefix_point_choose_decoded_row_code * S ((S (mkm_partial_binexists_prefix_point + mkm_value_binexists_prefix_point)) * bcf_row_code_scale_mkm_binexists_prefix_point_choose) + (bcf_row_code_mkm_binexists_prefix_point_choose))) /\ ((((exists bcf_height_mkm_binexists_prefix_point_choose_decoded_row_scale. bcf_height_mkm_binexists_prefix_point_choose_decoded_row_scale + S (bcf_row_scale_mkm_binexists_prefix_point_choose) = S ((S (mkm_partial_binexists_prefix_point + mkm_value_binexists_prefix_point)) * bcf_row_scale_scale_mkm_binexists_prefix_point_choose)) /\ exists bcf_quotient_mkm_binexists_prefix_point_choose_decoded_row_scale. bcf_row_scale_code_mkm_binexists_prefix_point_choose = bcf_quotient_mkm_binexists_prefix_point_choose_decoded_row_scale * S ((S (mkm_partial_binexists_prefix_point + mkm_value_binexists_prefix_point)) * bcf_row_scale_scale_mkm_binexists_prefix_point_choose) + (bcf_row_scale_mkm_binexists_prefix_point_choose))) /\ (((exists bcf_height_mkm_binexists_prefix_point_choose_decoded_value. bcf_height_mkm_binexists_prefix_point_choose_decoded_value + S (mkm_factor_binexists_prefix_point) = S ((S (mkm_partial_binexists_prefix_point)) * bcf_row_scale_mkm_binexists_prefix_point_choose)) /\ exists bcf_quotient_mkm_binexists_prefix_point_choose_decoded_value. bcf_row_code_mkm_binexists_prefix_point_choose = bcf_quotient_mkm_binexists_prefix_point_choose_decoded_value * S ((S (mkm_partial_binexists_prefix_point)) * bcf_row_scale_mkm_binexists_prefix_point_choose) + (mkm_factor_binexists_prefix_point))))))))) /\ (((exists fs_h_mkm_binexists_prefix_point_factor. fs_h_mkm_binexists_prefix_point_factor + S (mkm_factor_binexists_prefix_point) = S ((S (mkm_index_binexists_prefix)) * cc)) /\ exists fs_q_mkm_binexists_prefix_point_factor. cb = fs_q_mkm_binexists_prefix_point_factor * S ((S (mkm_index_binexists_prefix)) * cc) + (mkm_factor_binexists_prefix_point)))))) - 0016
apply IH - 0017
cases hprefix - 0018
cases hprefix_witness - 0019
have hpart : exists a. ((exists fs_h_mkm_binexists_part. fs_h_mkm_binexists_part + S (a) = S ((S (l)) * c)) /\ exists fs_q_mkm_binexists_part. b = fs_q_mkm_binexists_part * S ((S (l)) * c) + (a)) - 0020
specialize beta_at_exists b - 0021
specialize beta_at_exists c - 0022
specialize beta_at_exists l - 0023
apply beta_at_exists - 0024
cases hpart - 0025
have hpartial : exists u. ((exists fs_h_mkm_binexists_partial. fs_h_mkm_binexists_partial + S (u) = S ((S (l)) * sc)) /\ exists fs_q_mkm_binexists_partial. sb = fs_q_mkm_binexists_partial * S ((S (l)) * sc) + (u)) - 0026
specialize beta_at_exists sb - 0027
specialize beta_at_exists sc - 0028
specialize beta_at_exists l - 0029
apply beta_at_exists - 0030
cases hpartial - 0031
have hchoose : exists C. ((exists bcf_lt_gap_mkm_binexists_choose_out_of_range. bcf_lt_gap_mkm_binexists_choose_out_of_range + S (x3 + x2) = x3) /\ C = 0) \/ ((exists bcf_le_gap_mkm_binexists_choose_in_range. bcf_le_gap_mkm_binexists_choose_in_range + (x3) = x3 + x2) /\ (exists bcf_row_code_code_mkm_binexists_choose bcf_row_code_scale_mkm_binexists_choose bcf_row_scale_code_mkm_binexists_choose bcf_row_scale_scale_mkm_binexists_choose bcf_row_code_mkm_binexists_choose bcf_row_scale_mkm_binexists_choose. ((forall bcf_row_index_mkm_binexists_choose_table. (exists bcf_lt_gap_mkm_binexists_choose_table_row_bound. bcf_lt_gap_mkm_binexists_choose_table_row_bound + S (bcf_row_index_mkm_binexists_choose_table) = S (x3 + x2)) -> exists bcf_row_code_mkm_binexists_choose_table bcf_row_scale_mkm_binexists_choose_table. ((((exists bcf_height_mkm_binexists_choose_table_decoded_row_code. bcf_height_mkm_binexists_choose_table_decoded_row_code + S (bcf_row_code_mkm_binexists_choose_table) = S ((S (bcf_row_index_mkm_binexists_choose_table)) * bcf_row_code_scale_mkm_binexists_choose)) /\ exists bcf_quotient_mkm_binexists_choose_table_decoded_row_code. bcf_row_code_code_mkm_binexists_choose = bcf_quotient_mkm_binexists_choose_table_decoded_row_code * S ((S (bcf_row_index_mkm_binexists_choose_table)) * bcf_row_code_scale_mkm_binexists_choose) + (bcf_row_code_mkm_binexists_choose_table))) /\ ((((exists bcf_height_mkm_binexists_choose_table_decoded_row_scale. bcf_height_mkm_binexists_choose_table_decoded_row_scale + S (bcf_row_scale_mkm_binexists_choose_table) = S ((S (bcf_row_index_mkm_binexists_choose_table)) * bcf_row_scale_scale_mkm_binexists_choose)) /\ exists bcf_quotient_mkm_binexists_choose_table_decoded_row_scale. bcf_row_scale_code_mkm_binexists_choose = bcf_quotient_mkm_binexists_choose_table_decoded_row_scale * S ((S (bcf_row_index_mkm_binexists_choose_table)) * bcf_row_scale_scale_mkm_binexists_choose) + (bcf_row_scale_mkm_binexists_choose_table))) /\ ((bcf_row_index_mkm_binexists_choose_table = 0 /\ (forall bcf_index_mkm_binexists_choose_table_zero_row. (exists bcf_lt_gap_mkm_binexists_choose_table_zero_row_bound. bcf_lt_gap_mkm_binexists_choose_table_zero_row_bound + S (bcf_index_mkm_binexists_choose_table_zero_row) = S (x3 + x2)) -> exists bcf_value_mkm_binexists_choose_table_zero_row. ((((exists bcf_height_mkm_binexists_choose_table_zero_row_entry. bcf_height_mkm_binexists_choose_table_zero_row_entry + S (bcf_value_mkm_binexists_choose_table_zero_row) = S ((S (bcf_index_mkm_binexists_choose_table_zero_row)) * bcf_row_scale_mkm_binexists_choose_table)) /\ exists bcf_quotient_mkm_binexists_choose_table_zero_row_entry. bcf_row_code_mkm_binexists_choose_table = bcf_quotient_mkm_binexists_choose_table_zero_row_entry * S ((S (bcf_index_mkm_binexists_choose_table_zero_row)) * bcf_row_scale_mkm_binexists_choose_table) + (bcf_value_mkm_binexists_choose_table_zero_row))) /\ ((bcf_index_mkm_binexists_choose_table_zero_row = 0 /\ bcf_value_mkm_binexists_choose_table_zero_row = 1) \/ exists bcf_predecessor_mkm_binexists_choose_table_zero_row. bcf_index_mkm_binexists_choose_table_zero_row = S bcf_predecessor_mkm_binexists_choose_table_zero_row /\ bcf_value_mkm_binexists_choose_table_zero_row = 0)))) \/ exists bcf_predecessor_mkm_binexists_choose_table bcf_previous_code_mkm_binexists_choose_table bcf_previous_scale_mkm_binexists_choose_table. bcf_row_index_mkm_binexists_choose_table = S bcf_predecessor_mkm_binexists_choose_table /\ ((((exists bcf_height_mkm_binexists_choose_table_decoded_previous_code. bcf_height_mkm_binexists_choose_table_decoded_previous_code + S (bcf_previous_code_mkm_binexists_choose_table) = S ((S (bcf_predecessor_mkm_binexists_choose_table)) * bcf_row_code_scale_mkm_binexists_choose)) /\ exists bcf_quotient_mkm_binexists_choose_table_decoded_previous_code. bcf_row_code_code_mkm_binexists_choose = bcf_quotient_mkm_binexists_choose_table_decoded_previous_code * S ((S (bcf_predecessor_mkm_binexists_choose_table)) * bcf_row_code_scale_mkm_binexists_choose) + (bcf_previous_code_mkm_binexists_choose_table))) /\ ((((exists bcf_height_mkm_binexists_choose_table_decoded_previous_scale. bcf_height_mkm_binexists_choose_table_decoded_previous_scale + S (bcf_previous_scale_mkm_binexists_choose_table) = S ((S (bcf_predecessor_mkm_binexists_choose_table)) * bcf_row_scale_scale_mkm_binexists_choose)) /\ exists bcf_quotient_mkm_binexists_choose_table_decoded_previous_scale. bcf_row_scale_code_mkm_binexists_choose = bcf_quotient_mkm_binexists_choose_table_decoded_previous_scale * S ((S (bcf_predecessor_mkm_binexists_choose_table)) * bcf_row_scale_scale_mkm_binexists_choose) + (bcf_previous_scale_mkm_binexists_choose_table))) /\ (forall bcf_index_mkm_binexists_choose_table_row_step. (exists bcf_lt_gap_mkm_binexists_choose_table_row_step_bound. bcf_lt_gap_mkm_binexists_choose_table_row_step_bound + S (bcf_index_mkm_binexists_choose_table_row_step) = S (x3 + x2)) -> exists bcf_value_mkm_binexists_choose_table_row_step. ((((exists bcf_height_mkm_binexists_choose_table_row_step_entry. bcf_height_mkm_binexists_choose_table_row_step_entry + S (bcf_value_mkm_binexists_choose_table_row_step) = S ((S (bcf_index_mkm_binexists_choose_table_row_step)) * bcf_row_scale_mkm_binexists_choose_table)) /\ exists bcf_quotient_mkm_binexists_choose_table_row_step_entry. bcf_row_code_mkm_binexists_choose_table = bcf_quotient_mkm_binexists_choose_table_row_step_entry * S ((S (bcf_index_mkm_binexists_choose_table_row_step)) * bcf_row_scale_mkm_binexists_choose_table) + (bcf_value_mkm_binexists_choose_table_row_step))) /\ ((bcf_index_mkm_binexists_choose_table_row_step = 0 /\ bcf_value_mkm_binexists_choose_table_row_step = 1) \/ exists bcf_predecessor_mkm_binexists_choose_table_row_step bcf_left_mkm_binexists_choose_table_row_step bcf_right_mkm_binexists_choose_table_row_step. bcf_index_mkm_binexists_choose_table_row_step = S bcf_predecessor_mkm_binexists_choose_table_row_step /\ ((((exists bcf_height_mkm_binexists_choose_table_row_step_previous_left. bcf_height_mkm_binexists_choose_table_row_step_previous_left + S (bcf_left_mkm_binexists_choose_table_row_step) = S ((S (bcf_predecessor_mkm_binexists_choose_table_row_step)) * bcf_previous_scale_mkm_binexists_choose_table)) /\ exists bcf_quotient_mkm_binexists_choose_table_row_step_previous_left. bcf_previous_code_mkm_binexists_choose_table = bcf_quotient_mkm_binexists_choose_table_row_step_previous_left * S ((S (bcf_predecessor_mkm_binexists_choose_table_row_step)) * bcf_previous_scale_mkm_binexists_choose_table) + (bcf_left_mkm_binexists_choose_table_row_step))) /\ ((((exists bcf_height_mkm_binexists_choose_table_row_step_previous_right. bcf_height_mkm_binexists_choose_table_row_step_previous_right + S (bcf_right_mkm_binexists_choose_table_row_step) = S ((S (S (bcf_predecessor_mkm_binexists_choose_table_row_step))) * bcf_previous_scale_mkm_binexists_choose_table)) /\ exists bcf_quotient_mkm_binexists_choose_table_row_step_previous_right. bcf_previous_code_mkm_binexists_choose_table = bcf_quotient_mkm_binexists_choose_table_row_step_previous_right * S ((S (S (bcf_predecessor_mkm_binexists_choose_table_row_step))) * bcf_previous_scale_mkm_binexists_choose_table) + (bcf_right_mkm_binexists_choose_table_row_step))) /\ bcf_value_mkm_binexists_choose_table_row_step = bcf_left_mkm_binexists_choose_table_row_step + bcf_right_mkm_binexists_choose_table_row_step))))))))))) /\ ((((exists bcf_height_mkm_binexists_choose_decoded_row_code. bcf_height_mkm_binexists_choose_decoded_row_code + S (bcf_row_code_mkm_binexists_choose) = S ((S (x3 + x2)) * bcf_row_code_scale_mkm_binexists_choose)) /\ exists bcf_quotient_mkm_binexists_choose_decoded_row_code. bcf_row_code_code_mkm_binexists_choose = bcf_quotient_mkm_binexists_choose_decoded_row_code * S ((S (x3 + x2)) * bcf_row_code_scale_mkm_binexists_choose) + (bcf_row_code_mkm_binexists_choose))) /\ ((((exists bcf_height_mkm_binexists_choose_decoded_row_scale. bcf_height_mkm_binexists_choose_decoded_row_scale + S (bcf_row_scale_mkm_binexists_choose) = S ((S (x3 + x2)) * bcf_row_scale_scale_mkm_binexists_choose)) /\ exists bcf_quotient_mkm_binexists_choose_decoded_row_scale. bcf_row_scale_code_mkm_binexists_choose = bcf_quotient_mkm_binexists_choose_decoded_row_scale * S ((S (x3 + x2)) * bcf_row_scale_scale_mkm_binexists_choose) + (bcf_row_scale_mkm_binexists_choose))) /\ (((exists bcf_height_mkm_binexists_choose_decoded_value. bcf_height_mkm_binexists_choose_decoded_value + S (C) = S ((S (x3)) * bcf_row_scale_mkm_binexists_choose)) /\ exists bcf_quotient_mkm_binexists_choose_decoded_value. bcf_row_code_mkm_binexists_choose = bcf_quotient_mkm_binexists_choose_decoded_value * S ((S (x3)) * bcf_row_scale_mkm_binexists_choose) + (C)))))))) - 0032
specialize choose_exists (x3 + x2) - 0033
specialize choose_exists x3 - 0034
apply choose_exists - 0035
cases hchoose - 0036
specialize multinomial_binomial_prefix_extend b - 0037
specialize multinomial_binomial_prefix_extend c - 0038
specialize multinomial_binomial_prefix_extend sb - 0039
specialize multinomial_binomial_prefix_extend sc - 0040
specialize multinomial_binomial_prefix_extend x - 0041
specialize multinomial_binomial_prefix_extend x1 - 0042
specialize multinomial_binomial_prefix_extend l - 0043
specialize multinomial_binomial_prefix_extend x2 - 0044
specialize multinomial_binomial_prefix_extend x3 - 0045
specialize multinomial_binomial_prefix_extend x4 - 0046
apply multinomial_binomial_prefix_extend - 0047
exact hprefix_witness_witness - 0048
exact hpart_witness - 0049
exact hpartial_witness - 0050
exact hchoose_witness