Exact expanded PA statement
forall n k z. (exists bcf_le_gap_bcp_bound. bcf_le_gap_bcp_bound + (k) = n) -> (((exists bcf_lt_gap_bcp_source_out_of_range. bcf_lt_gap_bcp_source_out_of_range + S (n) = k) /\ z = 0) \/ ((exists bcf_le_gap_bcp_source_in_range. bcf_le_gap_bcp_source_in_range + (k) = n) /\ (exists bcf_row_code_code_bcp_source bcf_row_code_scale_bcp_source bcf_row_scale_code_bcp_source bcf_row_scale_scale_bcp_source bcf_row_code_bcp_source bcf_row_scale_bcp_source. ((forall bcf_row_index_bcp_source_table. (exists bcf_lt_gap_bcp_source_table_row_bound. bcf_lt_gap_bcp_source_table_row_bound + S (bcf_row_index_bcp_source_table) = S (n)) -> exists bcf_row_code_bcp_source_table bcf_row_scale_bcp_source_table. ((((exists bcf_height_bcp_source_table_decoded_row_code. bcf_height_bcp_source_table_decoded_row_code + S (bcf_row_code_bcp_source_table) = S ((S (bcf_row_index_bcp_source_table)) * bcf_row_code_scale_bcp_source)) /\ exists bcf_quotient_bcp_source_table_decoded_row_code. bcf_row_code_code_bcp_source = bcf_quotient_bcp_source_table_decoded_row_code * S ((S (bcf_row_index_bcp_source_table)) * bcf_row_code_scale_bcp_source) + (bcf_row_code_bcp_source_table))) /\ ((((exists bcf_height_bcp_source_table_decoded_row_scale. bcf_height_bcp_source_table_decoded_row_scale + S (bcf_row_scale_bcp_source_table) = S ((S (bcf_row_index_bcp_source_table)) * bcf_row_scale_scale_bcp_source)) /\ exists bcf_quotient_bcp_source_table_decoded_row_scale. bcf_row_scale_code_bcp_source = bcf_quotient_bcp_source_table_decoded_row_scale * S ((S (bcf_row_index_bcp_source_table)) * bcf_row_scale_scale_bcp_source) + (bcf_row_scale_bcp_source_table))) /\ ((bcf_row_index_bcp_source_table = 0 /\ (forall bcf_index_bcp_source_table_zero_row. (exists bcf_lt_gap_bcp_source_table_zero_row_bound. bcf_lt_gap_bcp_source_table_zero_row_bound + S (bcf_index_bcp_source_table_zero_row) = S (n)) -> exists bcf_value_bcp_source_table_zero_row. ((((exists bcf_height_bcp_source_table_zero_row_entry. bcf_height_bcp_source_table_zero_row_entry + S (bcf_value_bcp_source_table_zero_row) = S ((S (bcf_index_bcp_source_table_zero_row)) * bcf_row_scale_bcp_source_table)) /\ exists bcf_quotient_bcp_source_table_zero_row_entry. bcf_row_code_bcp_source_table = bcf_quotient_bcp_source_table_zero_row_entry * S ((S (bcf_index_bcp_source_table_zero_row)) * bcf_row_scale_bcp_source_table) + (bcf_value_bcp_source_table_zero_row))) /\ ((bcf_index_bcp_source_table_zero_row = 0 /\ bcf_value_bcp_source_table_zero_row = 1) \/ exists bcf_predecessor_bcp_source_table_zero_row. bcf_index_bcp_source_table_zero_row = S bcf_predecessor_bcp_source_table_zero_row /\ bcf_value_bcp_source_table_zero_row = 0)))) \/ exists bcf_predecessor_bcp_source_table bcf_previous_code_bcp_source_table bcf_previous_scale_bcp_source_table. bcf_row_index_bcp_source_table = S bcf_predecessor_bcp_source_table /\ ((((exists bcf_height_bcp_source_table_decoded_previous_code. bcf_height_bcp_source_table_decoded_previous_code + S (bcf_previous_code_bcp_source_table) = S ((S (bcf_predecessor_bcp_source_table)) * bcf_row_code_scale_bcp_source)) /\ exists bcf_quotient_bcp_source_table_decoded_previous_code. bcf_row_code_code_bcp_source = bcf_quotient_bcp_source_table_decoded_previous_code * S ((S (bcf_predecessor_bcp_source_table)) * bcf_row_code_scale_bcp_source) + (bcf_previous_code_bcp_source_table))) /\ ((((exists bcf_height_bcp_source_table_decoded_previous_scale. bcf_height_bcp_source_table_decoded_previous_scale + S (bcf_previous_scale_bcp_source_table) = S ((S (bcf_predecessor_bcp_source_table)) * bcf_row_scale_scale_bcp_source)) /\ exists bcf_quotient_bcp_source_table_decoded_previous_scale. bcf_row_scale_code_bcp_source = bcf_quotient_bcp_source_table_decoded_previous_scale * S ((S (bcf_predecessor_bcp_source_table)) * bcf_row_scale_scale_bcp_source) + (bcf_previous_scale_bcp_source_table))) /\ (forall bcf_index_bcp_source_table_row_step. (exists bcf_lt_gap_bcp_source_table_row_step_bound. bcf_lt_gap_bcp_source_table_row_step_bound + S (bcf_index_bcp_source_table_row_step) = S (n)) -> exists bcf_value_bcp_source_table_row_step. ((((exists bcf_height_bcp_source_table_row_step_entry. bcf_height_bcp_source_table_row_step_entry + S (bcf_value_bcp_source_table_row_step) = S ((S (bcf_index_bcp_source_table_row_step)) * bcf_row_scale_bcp_source_table)) /\ exists bcf_quotient_bcp_source_table_row_step_entry. bcf_row_code_bcp_source_table = bcf_quotient_bcp_source_table_row_step_entry * S ((S (bcf_index_bcp_source_table_row_step)) * bcf_row_scale_bcp_source_table) + (bcf_value_bcp_source_table_row_step))) /\ ((bcf_index_bcp_source_table_row_step = 0 /\ bcf_value_bcp_source_table_row_step = 1) \/ exists bcf_predecessor_bcp_source_table_row_step bcf_left_bcp_source_table_row_step bcf_right_bcp_source_table_row_step. bcf_index_bcp_source_table_row_step = S bcf_predecessor_bcp_source_table_row_step /\ ((((exists bcf_height_bcp_source_table_row_step_previous_left. bcf_height_bcp_source_table_row_step_previous_left + S (bcf_left_bcp_source_table_row_step) = S ((S (bcf_predecessor_bcp_source_table_row_step)) * bcf_previous_scale_bcp_source_table)) /\ exists bcf_quotient_bcp_source_table_row_step_previous_left. bcf_previous_code_bcp_source_table = bcf_quotient_bcp_source_table_row_step_previous_left * S ((S (bcf_predecessor_bcp_source_table_row_step)) * bcf_previous_scale_bcp_source_table) + (bcf_left_bcp_source_table_row_step))) /\ ((((exists bcf_height_bcp_source_table_row_step_previous_right. bcf_height_bcp_source_table_row_step_previous_right + S (bcf_right_bcp_source_table_row_step) = S ((S (S (bcf_predecessor_bcp_source_table_row_step))) * bcf_previous_scale_bcp_source_table)) /\ exists bcf_quotient_bcp_source_table_row_step_previous_right. bcf_previous_code_bcp_source_table = bcf_quotient_bcp_source_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcp_source_table_row_step))) * bcf_previous_scale_bcp_source_table) + (bcf_right_bcp_source_table_row_step))) /\ bcf_value_bcp_source_table_row_step = bcf_left_bcp_source_table_row_step + bcf_right_bcp_source_table_row_step))))))))))) /\ ((((exists bcf_height_bcp_source_decoded_row_code. bcf_height_bcp_source_decoded_row_code + S (bcf_row_code_bcp_source) = S ((S (n)) * bcf_row_code_scale_bcp_source)) /\ exists bcf_quotient_bcp_source_decoded_row_code. bcf_row_code_code_bcp_source = bcf_quotient_bcp_source_decoded_row_code * S ((S (n)) * bcf_row_code_scale_bcp_source) + (bcf_row_code_bcp_source))) /\ ((((exists bcf_height_bcp_source_decoded_row_scale. bcf_height_bcp_source_decoded_row_scale + S (bcf_row_scale_bcp_source) = S ((S (n)) * bcf_row_scale_scale_bcp_source)) /\ exists bcf_quotient_bcp_source_decoded_row_scale. bcf_row_scale_code_bcp_source = bcf_quotient_bcp_source_decoded_row_scale * S ((S (n)) * bcf_row_scale_scale_bcp_source) + (bcf_row_scale_bcp_source))) /\ (((exists bcf_height_bcp_source_decoded_value. bcf_height_bcp_source_decoded_value + S (z) = S ((S (k)) * bcf_row_scale_bcp_source)) /\ exists bcf_quotient_bcp_source_decoded_value. bcf_row_code_bcp_source = bcf_quotient_bcp_source_decoded_value * S ((S (k)) * bcf_row_scale_bcp_source) + (z))))))))) -> exists p. z = S pStructural proof guide
Every in-range relational Choose value is a successor.
Direct prerequisites: le_zero, le_of_succ_le_succ, add_succ_left, choose_exists, choose_zero, choose_succ_succ. The authored body proceeds by structural induction (3), case analysis (3), intermediate claims (5), equality transport (1).
Proof neighborhood
Direct dependencies
BT000Y le_zero BT0017 le_of_succ_le_succ BT0001 add_succ_left BT00T8 choose_exists BT00TE choose_zero BT00TJ choose_succ_succDirect dependents
Formal native tactic body
Dependencies are hypotheses of this body receipt. The focused endpoint audits separately check the complete empty-context certificates.
- 0001
induction n - 0002
induction k - 0003
intro z - 0004
intro hbound - 0005
intro hchoose - 0006
exists 0 - 0007
specialize choose_zero 0 - 0008
specialize choose_zero z - 0009
apply choose_zero - 0010
exact hchoose - 0011
intro z - 0012
intro hbound - 0013
intro hchoose - 0014
have hk0 : S k = 0 - 0015
specialize le_zero (S k) - 0016
apply le_zero - 0017
exact hbound - 0018
exfalso - 0019
apply PA1 - 0020
exact hk0 - 0021
induction k - 0022
intro z - 0023
intro hbound - 0024
intro hchoose - 0025
exists 0 - 0026
specialize choose_zero (S n) - 0027
specialize choose_zero z - 0028
apply choose_zero - 0029
exact hchoose - 0030
intro z - 0031
intro hbound - 0032
intro hchoose - 0033
have ha_exists : exists a. (((exists bcf_lt_gap_bcp_previous_left_out_of_range. bcf_lt_gap_bcp_previous_left_out_of_range + S (n) = k) /\ a = 0) \/ ((exists bcf_le_gap_bcp_previous_left_in_range. bcf_le_gap_bcp_previous_left_in_range + (k) = n) /\ (exists bcf_row_code_code_bcp_previous_left bcf_row_code_scale_bcp_previous_left bcf_row_scale_code_bcp_previous_left bcf_row_scale_scale_bcp_previous_left bcf_row_code_bcp_previous_left bcf_row_scale_bcp_previous_left. ((forall bcf_row_index_bcp_previous_left_table. (exists bcf_lt_gap_bcp_previous_left_table_row_bound. bcf_lt_gap_bcp_previous_left_table_row_bound + S (bcf_row_index_bcp_previous_left_table) = S (n)) -> exists bcf_row_code_bcp_previous_left_table bcf_row_scale_bcp_previous_left_table. ((((exists bcf_height_bcp_previous_left_table_decoded_row_code. bcf_height_bcp_previous_left_table_decoded_row_code + S (bcf_row_code_bcp_previous_left_table) = S ((S (bcf_row_index_bcp_previous_left_table)) * bcf_row_code_scale_bcp_previous_left)) /\ exists bcf_quotient_bcp_previous_left_table_decoded_row_code. bcf_row_code_code_bcp_previous_left = bcf_quotient_bcp_previous_left_table_decoded_row_code * S ((S (bcf_row_index_bcp_previous_left_table)) * bcf_row_code_scale_bcp_previous_left) + (bcf_row_code_bcp_previous_left_table))) /\ ((((exists bcf_height_bcp_previous_left_table_decoded_row_scale. bcf_height_bcp_previous_left_table_decoded_row_scale + S (bcf_row_scale_bcp_previous_left_table) = S ((S (bcf_row_index_bcp_previous_left_table)) * bcf_row_scale_scale_bcp_previous_left)) /\ exists bcf_quotient_bcp_previous_left_table_decoded_row_scale. bcf_row_scale_code_bcp_previous_left = bcf_quotient_bcp_previous_left_table_decoded_row_scale * S ((S (bcf_row_index_bcp_previous_left_table)) * bcf_row_scale_scale_bcp_previous_left) + (bcf_row_scale_bcp_previous_left_table))) /\ ((bcf_row_index_bcp_previous_left_table = 0 /\ (forall bcf_index_bcp_previous_left_table_zero_row. (exists bcf_lt_gap_bcp_previous_left_table_zero_row_bound. bcf_lt_gap_bcp_previous_left_table_zero_row_bound + S (bcf_index_bcp_previous_left_table_zero_row) = S (n)) -> exists bcf_value_bcp_previous_left_table_zero_row. ((((exists bcf_height_bcp_previous_left_table_zero_row_entry. bcf_height_bcp_previous_left_table_zero_row_entry + S (bcf_value_bcp_previous_left_table_zero_row) = S ((S (bcf_index_bcp_previous_left_table_zero_row)) * bcf_row_scale_bcp_previous_left_table)) /\ exists bcf_quotient_bcp_previous_left_table_zero_row_entry. bcf_row_code_bcp_previous_left_table = bcf_quotient_bcp_previous_left_table_zero_row_entry * S ((S (bcf_index_bcp_previous_left_table_zero_row)) * bcf_row_scale_bcp_previous_left_table) + (bcf_value_bcp_previous_left_table_zero_row))) /\ ((bcf_index_bcp_previous_left_table_zero_row = 0 /\ bcf_value_bcp_previous_left_table_zero_row = 1) \/ exists bcf_predecessor_bcp_previous_left_table_zero_row. bcf_index_bcp_previous_left_table_zero_row = S bcf_predecessor_bcp_previous_left_table_zero_row /\ bcf_value_bcp_previous_left_table_zero_row = 0)))) \/ exists bcf_predecessor_bcp_previous_left_table bcf_previous_code_bcp_previous_left_table bcf_previous_scale_bcp_previous_left_table. bcf_row_index_bcp_previous_left_table = S bcf_predecessor_bcp_previous_left_table /\ ((((exists bcf_height_bcp_previous_left_table_decoded_previous_code. bcf_height_bcp_previous_left_table_decoded_previous_code + S (bcf_previous_code_bcp_previous_left_table) = S ((S (bcf_predecessor_bcp_previous_left_table)) * bcf_row_code_scale_bcp_previous_left)) /\ exists bcf_quotient_bcp_previous_left_table_decoded_previous_code. bcf_row_code_code_bcp_previous_left = bcf_quotient_bcp_previous_left_table_decoded_previous_code * S ((S (bcf_predecessor_bcp_previous_left_table)) * bcf_row_code_scale_bcp_previous_left) + (bcf_previous_code_bcp_previous_left_table))) /\ ((((exists bcf_height_bcp_previous_left_table_decoded_previous_scale. bcf_height_bcp_previous_left_table_decoded_previous_scale + S (bcf_previous_scale_bcp_previous_left_table) = S ((S (bcf_predecessor_bcp_previous_left_table)) * bcf_row_scale_scale_bcp_previous_left)) /\ exists bcf_quotient_bcp_previous_left_table_decoded_previous_scale. bcf_row_scale_code_bcp_previous_left = bcf_quotient_bcp_previous_left_table_decoded_previous_scale * S ((S (bcf_predecessor_bcp_previous_left_table)) * bcf_row_scale_scale_bcp_previous_left) + (bcf_previous_scale_bcp_previous_left_table))) /\ (forall bcf_index_bcp_previous_left_table_row_step. (exists bcf_lt_gap_bcp_previous_left_table_row_step_bound. bcf_lt_gap_bcp_previous_left_table_row_step_bound + S (bcf_index_bcp_previous_left_table_row_step) = S (n)) -> exists bcf_value_bcp_previous_left_table_row_step. ((((exists bcf_height_bcp_previous_left_table_row_step_entry. bcf_height_bcp_previous_left_table_row_step_entry + S (bcf_value_bcp_previous_left_table_row_step) = S ((S (bcf_index_bcp_previous_left_table_row_step)) * bcf_row_scale_bcp_previous_left_table)) /\ exists bcf_quotient_bcp_previous_left_table_row_step_entry. bcf_row_code_bcp_previous_left_table = bcf_quotient_bcp_previous_left_table_row_step_entry * S ((S (bcf_index_bcp_previous_left_table_row_step)) * bcf_row_scale_bcp_previous_left_table) + (bcf_value_bcp_previous_left_table_row_step))) /\ ((bcf_index_bcp_previous_left_table_row_step = 0 /\ bcf_value_bcp_previous_left_table_row_step = 1) \/ exists bcf_predecessor_bcp_previous_left_table_row_step bcf_left_bcp_previous_left_table_row_step bcf_right_bcp_previous_left_table_row_step. bcf_index_bcp_previous_left_table_row_step = S bcf_predecessor_bcp_previous_left_table_row_step /\ ((((exists bcf_height_bcp_previous_left_table_row_step_previous_left. bcf_height_bcp_previous_left_table_row_step_previous_left + S (bcf_left_bcp_previous_left_table_row_step) = S ((S (bcf_predecessor_bcp_previous_left_table_row_step)) * bcf_previous_scale_bcp_previous_left_table)) /\ exists bcf_quotient_bcp_previous_left_table_row_step_previous_left. bcf_previous_code_bcp_previous_left_table = bcf_quotient_bcp_previous_left_table_row_step_previous_left * S ((S (bcf_predecessor_bcp_previous_left_table_row_step)) * bcf_previous_scale_bcp_previous_left_table) + (bcf_left_bcp_previous_left_table_row_step))) /\ ((((exists bcf_height_bcp_previous_left_table_row_step_previous_right. bcf_height_bcp_previous_left_table_row_step_previous_right + S (bcf_right_bcp_previous_left_table_row_step) = S ((S (S (bcf_predecessor_bcp_previous_left_table_row_step))) * bcf_previous_scale_bcp_previous_left_table)) /\ exists bcf_quotient_bcp_previous_left_table_row_step_previous_right. bcf_previous_code_bcp_previous_left_table = bcf_quotient_bcp_previous_left_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcp_previous_left_table_row_step))) * bcf_previous_scale_bcp_previous_left_table) + (bcf_right_bcp_previous_left_table_row_step))) /\ bcf_value_bcp_previous_left_table_row_step = bcf_left_bcp_previous_left_table_row_step + bcf_right_bcp_previous_left_table_row_step))))))))))) /\ ((((exists bcf_height_bcp_previous_left_decoded_row_code. bcf_height_bcp_previous_left_decoded_row_code + S (bcf_row_code_bcp_previous_left) = S ((S (n)) * bcf_row_code_scale_bcp_previous_left)) /\ exists bcf_quotient_bcp_previous_left_decoded_row_code. bcf_row_code_code_bcp_previous_left = bcf_quotient_bcp_previous_left_decoded_row_code * S ((S (n)) * bcf_row_code_scale_bcp_previous_left) + (bcf_row_code_bcp_previous_left))) /\ ((((exists bcf_height_bcp_previous_left_decoded_row_scale. bcf_height_bcp_previous_left_decoded_row_scale + S (bcf_row_scale_bcp_previous_left) = S ((S (n)) * bcf_row_scale_scale_bcp_previous_left)) /\ exists bcf_quotient_bcp_previous_left_decoded_row_scale. bcf_row_scale_code_bcp_previous_left = bcf_quotient_bcp_previous_left_decoded_row_scale * S ((S (n)) * bcf_row_scale_scale_bcp_previous_left) + (bcf_row_scale_bcp_previous_left))) /\ (((exists bcf_height_bcp_previous_left_decoded_value. bcf_height_bcp_previous_left_decoded_value + S (a) = S ((S (k)) * bcf_row_scale_bcp_previous_left)) /\ exists bcf_quotient_bcp_previous_left_decoded_value. bcf_row_code_bcp_previous_left = bcf_quotient_bcp_previous_left_decoded_value * S ((S (k)) * bcf_row_scale_bcp_previous_left) + (a))))))))) - 0034
specialize choose_exists n - 0035
specialize choose_exists k - 0036
exact choose_exists - 0037
cases ha_exists - 0038
have hb_exists : exists b. (((exists bcf_lt_gap_bcp_previous_right_out_of_range. bcf_lt_gap_bcp_previous_right_out_of_range + S (n) = S k) /\ b = 0) \/ ((exists bcf_le_gap_bcp_previous_right_in_range. bcf_le_gap_bcp_previous_right_in_range + (S k) = n) /\ (exists bcf_row_code_code_bcp_previous_right bcf_row_code_scale_bcp_previous_right bcf_row_scale_code_bcp_previous_right bcf_row_scale_scale_bcp_previous_right bcf_row_code_bcp_previous_right bcf_row_scale_bcp_previous_right. ((forall bcf_row_index_bcp_previous_right_table. (exists bcf_lt_gap_bcp_previous_right_table_row_bound. bcf_lt_gap_bcp_previous_right_table_row_bound + S (bcf_row_index_bcp_previous_right_table) = S (n)) -> exists bcf_row_code_bcp_previous_right_table bcf_row_scale_bcp_previous_right_table. ((((exists bcf_height_bcp_previous_right_table_decoded_row_code. bcf_height_bcp_previous_right_table_decoded_row_code + S (bcf_row_code_bcp_previous_right_table) = S ((S (bcf_row_index_bcp_previous_right_table)) * bcf_row_code_scale_bcp_previous_right)) /\ exists bcf_quotient_bcp_previous_right_table_decoded_row_code. bcf_row_code_code_bcp_previous_right = bcf_quotient_bcp_previous_right_table_decoded_row_code * S ((S (bcf_row_index_bcp_previous_right_table)) * bcf_row_code_scale_bcp_previous_right) + (bcf_row_code_bcp_previous_right_table))) /\ ((((exists bcf_height_bcp_previous_right_table_decoded_row_scale. bcf_height_bcp_previous_right_table_decoded_row_scale + S (bcf_row_scale_bcp_previous_right_table) = S ((S (bcf_row_index_bcp_previous_right_table)) * bcf_row_scale_scale_bcp_previous_right)) /\ exists bcf_quotient_bcp_previous_right_table_decoded_row_scale. bcf_row_scale_code_bcp_previous_right = bcf_quotient_bcp_previous_right_table_decoded_row_scale * S ((S (bcf_row_index_bcp_previous_right_table)) * bcf_row_scale_scale_bcp_previous_right) + (bcf_row_scale_bcp_previous_right_table))) /\ ((bcf_row_index_bcp_previous_right_table = 0 /\ (forall bcf_index_bcp_previous_right_table_zero_row. (exists bcf_lt_gap_bcp_previous_right_table_zero_row_bound. bcf_lt_gap_bcp_previous_right_table_zero_row_bound + S (bcf_index_bcp_previous_right_table_zero_row) = S (n)) -> exists bcf_value_bcp_previous_right_table_zero_row. ((((exists bcf_height_bcp_previous_right_table_zero_row_entry. bcf_height_bcp_previous_right_table_zero_row_entry + S (bcf_value_bcp_previous_right_table_zero_row) = S ((S (bcf_index_bcp_previous_right_table_zero_row)) * bcf_row_scale_bcp_previous_right_table)) /\ exists bcf_quotient_bcp_previous_right_table_zero_row_entry. bcf_row_code_bcp_previous_right_table = bcf_quotient_bcp_previous_right_table_zero_row_entry * S ((S (bcf_index_bcp_previous_right_table_zero_row)) * bcf_row_scale_bcp_previous_right_table) + (bcf_value_bcp_previous_right_table_zero_row))) /\ ((bcf_index_bcp_previous_right_table_zero_row = 0 /\ bcf_value_bcp_previous_right_table_zero_row = 1) \/ exists bcf_predecessor_bcp_previous_right_table_zero_row. bcf_index_bcp_previous_right_table_zero_row = S bcf_predecessor_bcp_previous_right_table_zero_row /\ bcf_value_bcp_previous_right_table_zero_row = 0)))) \/ exists bcf_predecessor_bcp_previous_right_table bcf_previous_code_bcp_previous_right_table bcf_previous_scale_bcp_previous_right_table. bcf_row_index_bcp_previous_right_table = S bcf_predecessor_bcp_previous_right_table /\ ((((exists bcf_height_bcp_previous_right_table_decoded_previous_code. bcf_height_bcp_previous_right_table_decoded_previous_code + S (bcf_previous_code_bcp_previous_right_table) = S ((S (bcf_predecessor_bcp_previous_right_table)) * bcf_row_code_scale_bcp_previous_right)) /\ exists bcf_quotient_bcp_previous_right_table_decoded_previous_code. bcf_row_code_code_bcp_previous_right = bcf_quotient_bcp_previous_right_table_decoded_previous_code * S ((S (bcf_predecessor_bcp_previous_right_table)) * bcf_row_code_scale_bcp_previous_right) + (bcf_previous_code_bcp_previous_right_table))) /\ ((((exists bcf_height_bcp_previous_right_table_decoded_previous_scale. bcf_height_bcp_previous_right_table_decoded_previous_scale + S (bcf_previous_scale_bcp_previous_right_table) = S ((S (bcf_predecessor_bcp_previous_right_table)) * bcf_row_scale_scale_bcp_previous_right)) /\ exists bcf_quotient_bcp_previous_right_table_decoded_previous_scale. bcf_row_scale_code_bcp_previous_right = bcf_quotient_bcp_previous_right_table_decoded_previous_scale * S ((S (bcf_predecessor_bcp_previous_right_table)) * bcf_row_scale_scale_bcp_previous_right) + (bcf_previous_scale_bcp_previous_right_table))) /\ (forall bcf_index_bcp_previous_right_table_row_step. (exists bcf_lt_gap_bcp_previous_right_table_row_step_bound. bcf_lt_gap_bcp_previous_right_table_row_step_bound + S (bcf_index_bcp_previous_right_table_row_step) = S (n)) -> exists bcf_value_bcp_previous_right_table_row_step. ((((exists bcf_height_bcp_previous_right_table_row_step_entry. bcf_height_bcp_previous_right_table_row_step_entry + S (bcf_value_bcp_previous_right_table_row_step) = S ((S (bcf_index_bcp_previous_right_table_row_step)) * bcf_row_scale_bcp_previous_right_table)) /\ exists bcf_quotient_bcp_previous_right_table_row_step_entry. bcf_row_code_bcp_previous_right_table = bcf_quotient_bcp_previous_right_table_row_step_entry * S ((S (bcf_index_bcp_previous_right_table_row_step)) * bcf_row_scale_bcp_previous_right_table) + (bcf_value_bcp_previous_right_table_row_step))) /\ ((bcf_index_bcp_previous_right_table_row_step = 0 /\ bcf_value_bcp_previous_right_table_row_step = 1) \/ exists bcf_predecessor_bcp_previous_right_table_row_step bcf_left_bcp_previous_right_table_row_step bcf_right_bcp_previous_right_table_row_step. bcf_index_bcp_previous_right_table_row_step = S bcf_predecessor_bcp_previous_right_table_row_step /\ ((((exists bcf_height_bcp_previous_right_table_row_step_previous_left. bcf_height_bcp_previous_right_table_row_step_previous_left + S (bcf_left_bcp_previous_right_table_row_step) = S ((S (bcf_predecessor_bcp_previous_right_table_row_step)) * bcf_previous_scale_bcp_previous_right_table)) /\ exists bcf_quotient_bcp_previous_right_table_row_step_previous_left. bcf_previous_code_bcp_previous_right_table = bcf_quotient_bcp_previous_right_table_row_step_previous_left * S ((S (bcf_predecessor_bcp_previous_right_table_row_step)) * bcf_previous_scale_bcp_previous_right_table) + (bcf_left_bcp_previous_right_table_row_step))) /\ ((((exists bcf_height_bcp_previous_right_table_row_step_previous_right. bcf_height_bcp_previous_right_table_row_step_previous_right + S (bcf_right_bcp_previous_right_table_row_step) = S ((S (S (bcf_predecessor_bcp_previous_right_table_row_step))) * bcf_previous_scale_bcp_previous_right_table)) /\ exists bcf_quotient_bcp_previous_right_table_row_step_previous_right. bcf_previous_code_bcp_previous_right_table = bcf_quotient_bcp_previous_right_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcp_previous_right_table_row_step))) * bcf_previous_scale_bcp_previous_right_table) + (bcf_right_bcp_previous_right_table_row_step))) /\ bcf_value_bcp_previous_right_table_row_step = bcf_left_bcp_previous_right_table_row_step + bcf_right_bcp_previous_right_table_row_step))))))))))) /\ ((((exists bcf_height_bcp_previous_right_decoded_row_code. bcf_height_bcp_previous_right_decoded_row_code + S (bcf_row_code_bcp_previous_right) = S ((S (n)) * bcf_row_code_scale_bcp_previous_right)) /\ exists bcf_quotient_bcp_previous_right_decoded_row_code. bcf_row_code_code_bcp_previous_right = bcf_quotient_bcp_previous_right_decoded_row_code * S ((S (n)) * bcf_row_code_scale_bcp_previous_right) + (bcf_row_code_bcp_previous_right))) /\ ((((exists bcf_height_bcp_previous_right_decoded_row_scale. bcf_height_bcp_previous_right_decoded_row_scale + S (bcf_row_scale_bcp_previous_right) = S ((S (n)) * bcf_row_scale_scale_bcp_previous_right)) /\ exists bcf_quotient_bcp_previous_right_decoded_row_scale. bcf_row_scale_code_bcp_previous_right = bcf_quotient_bcp_previous_right_decoded_row_scale * S ((S (n)) * bcf_row_scale_scale_bcp_previous_right) + (bcf_row_scale_bcp_previous_right))) /\ (((exists bcf_height_bcp_previous_right_decoded_value. bcf_height_bcp_previous_right_decoded_value + S (b) = S ((S (S k)) * bcf_row_scale_bcp_previous_right)) /\ exists bcf_quotient_bcp_previous_right_decoded_value. bcf_row_code_bcp_previous_right = bcf_quotient_bcp_previous_right_decoded_value * S ((S (S k)) * bcf_row_scale_bcp_previous_right) + (b))))))))) - 0039
specialize choose_exists n - 0040
specialize choose_exists (S k) - 0041
exact choose_exists - 0042
cases hb_exists - 0043
have hpositive : exists p. x = S p - 0044
specialize IH k - 0045
specialize IH x - 0046
apply IH - 0047
specialize le_of_succ_le_succ k - 0048
specialize le_of_succ_le_succ n - 0049
apply le_of_succ_le_succ - 0050
exact hbound - 0051
exact ha_exists_witness - 0052
cases hpositive - 0053
have hsum : z = x + x1 - 0054
specialize choose_succ_succ n - 0055
specialize choose_succ_succ k - 0056
specialize choose_succ_succ x - 0057
specialize choose_succ_succ x1 - 0058
specialize choose_succ_succ z - 0059
apply choose_succ_succ - 0060
exact ha_exists_witness - 0061
exact hb_exists_witness - 0062
exact hchoose - 0063
exists x2 + x1 - 0064
trans x + x1 - 0065
exact hsum - 0066
rewrite hpositive_witness - 0067
specialize add_succ_left x2 - 0068
specialize add_succ_left x1 - 0069
exact add_succ_left