Exact expanded PA statement
forall w r. exists bb bc sb sc. (forall bcf_row_index_bptpx_result. (exists bcf_lt_gap_bptpx_result_row_bound. bcf_lt_gap_bptpx_result_row_bound + S (bcf_row_index_bptpx_result) = r) -> exists bcf_row_code_bptpx_result bcf_row_scale_bptpx_result. ((((exists bcf_height_bptpx_result_decoded_row_code. bcf_height_bptpx_result_decoded_row_code + S (bcf_row_code_bptpx_result) = S ((S (bcf_row_index_bptpx_result)) * bc)) /\ exists bcf_quotient_bptpx_result_decoded_row_code. bb = bcf_quotient_bptpx_result_decoded_row_code * S ((S (bcf_row_index_bptpx_result)) * bc) + (bcf_row_code_bptpx_result))) /\ ((((exists bcf_height_bptpx_result_decoded_row_scale. bcf_height_bptpx_result_decoded_row_scale + S (bcf_row_scale_bptpx_result) = S ((S (bcf_row_index_bptpx_result)) * sc)) /\ exists bcf_quotient_bptpx_result_decoded_row_scale. sb = bcf_quotient_bptpx_result_decoded_row_scale * S ((S (bcf_row_index_bptpx_result)) * sc) + (bcf_row_scale_bptpx_result))) /\ ((bcf_row_index_bptpx_result = 0 /\ (forall bcf_index_bptpx_result_zero_row. (exists bcf_lt_gap_bptpx_result_zero_row_bound. bcf_lt_gap_bptpx_result_zero_row_bound + S (bcf_index_bptpx_result_zero_row) = w) -> exists bcf_value_bptpx_result_zero_row. ((((exists bcf_height_bptpx_result_zero_row_entry. bcf_height_bptpx_result_zero_row_entry + S (bcf_value_bptpx_result_zero_row) = S ((S (bcf_index_bptpx_result_zero_row)) * bcf_row_scale_bptpx_result)) /\ exists bcf_quotient_bptpx_result_zero_row_entry. bcf_row_code_bptpx_result = bcf_quotient_bptpx_result_zero_row_entry * S ((S (bcf_index_bptpx_result_zero_row)) * bcf_row_scale_bptpx_result) + (bcf_value_bptpx_result_zero_row))) /\ ((bcf_index_bptpx_result_zero_row = 0 /\ bcf_value_bptpx_result_zero_row = 1) \/ exists bcf_predecessor_bptpx_result_zero_row. bcf_index_bptpx_result_zero_row = S bcf_predecessor_bptpx_result_zero_row /\ bcf_value_bptpx_result_zero_row = 0)))) \/ exists bcf_predecessor_bptpx_result bcf_previous_code_bptpx_result bcf_previous_scale_bptpx_result. bcf_row_index_bptpx_result = S bcf_predecessor_bptpx_result /\ ((((exists bcf_height_bptpx_result_decoded_previous_code. bcf_height_bptpx_result_decoded_previous_code + S (bcf_previous_code_bptpx_result) = S ((S (bcf_predecessor_bptpx_result)) * bc)) /\ exists bcf_quotient_bptpx_result_decoded_previous_code. bb = bcf_quotient_bptpx_result_decoded_previous_code * S ((S (bcf_predecessor_bptpx_result)) * bc) + (bcf_previous_code_bptpx_result))) /\ ((((exists bcf_height_bptpx_result_decoded_previous_scale. bcf_height_bptpx_result_decoded_previous_scale + S (bcf_previous_scale_bptpx_result) = S ((S (bcf_predecessor_bptpx_result)) * sc)) /\ exists bcf_quotient_bptpx_result_decoded_previous_scale. sb = bcf_quotient_bptpx_result_decoded_previous_scale * S ((S (bcf_predecessor_bptpx_result)) * sc) + (bcf_previous_scale_bptpx_result))) /\ (forall bcf_index_bptpx_result_row_step. (exists bcf_lt_gap_bptpx_result_row_step_bound. bcf_lt_gap_bptpx_result_row_step_bound + S (bcf_index_bptpx_result_row_step) = w) -> exists bcf_value_bptpx_result_row_step. ((((exists bcf_height_bptpx_result_row_step_entry. bcf_height_bptpx_result_row_step_entry + S (bcf_value_bptpx_result_row_step) = S ((S (bcf_index_bptpx_result_row_step)) * bcf_row_scale_bptpx_result)) /\ exists bcf_quotient_bptpx_result_row_step_entry. bcf_row_code_bptpx_result = bcf_quotient_bptpx_result_row_step_entry * S ((S (bcf_index_bptpx_result_row_step)) * bcf_row_scale_bptpx_result) + (bcf_value_bptpx_result_row_step))) /\ ((bcf_index_bptpx_result_row_step = 0 /\ bcf_value_bptpx_result_row_step = 1) \/ exists bcf_predecessor_bptpx_result_row_step bcf_left_bptpx_result_row_step bcf_right_bptpx_result_row_step. bcf_index_bptpx_result_row_step = S bcf_predecessor_bptpx_result_row_step /\ ((((exists bcf_height_bptpx_result_row_step_previous_left. bcf_height_bptpx_result_row_step_previous_left + S (bcf_left_bptpx_result_row_step) = S ((S (bcf_predecessor_bptpx_result_row_step)) * bcf_previous_scale_bptpx_result)) /\ exists bcf_quotient_bptpx_result_row_step_previous_left. bcf_previous_code_bptpx_result = bcf_quotient_bptpx_result_row_step_previous_left * S ((S (bcf_predecessor_bptpx_result_row_step)) * bcf_previous_scale_bptpx_result) + (bcf_left_bptpx_result_row_step))) /\ ((((exists bcf_height_bptpx_result_row_step_previous_right. bcf_height_bptpx_result_row_step_previous_right + S (bcf_right_bptpx_result_row_step) = S ((S (S (bcf_predecessor_bptpx_result_row_step))) * bcf_previous_scale_bptpx_result)) /\ exists bcf_quotient_bptpx_result_row_step_previous_right. bcf_previous_code_bptpx_result = bcf_quotient_bptpx_result_row_step_previous_right * S ((S (S (bcf_predecessor_bptpx_result_row_step))) * bcf_previous_scale_bptpx_result) + (bcf_right_bptpx_result_row_step))) /\ bcf_value_bptpx_result_row_step = bcf_left_bptpx_result_row_step + bcf_right_bptpx_result_row_step)))))))))))Structural proof guide
Every finite width and height has a nested beta Pascal table.
Direct prerequisites: add_eq_zero_right, succ_ne_zero, beta_pascal_table_prefix_extend. The authored body proceeds by structural induction (1), case analysis (5), intermediate claims (3).
Proof neighborhood
Direct dependencies
Direct dependents
Formal native tactic body
Dependencies are hypotheses of this body receipt. The focused endpoint audits separately check the complete empty-context certificates.
- 0001
intro w - 0002
induction r - 0003
exists 0 - 0004
exists 0 - 0005
exists 0 - 0006
exists 0 - 0007
intro i - 0008
intro hi - 0009
exfalso - 0010
cases hi - 0011
have hsi : S i = 0 - 0012
specialize add_eq_zero_right x - 0013
specialize add_eq_zero_right (S i) - 0014
apply add_eq_zero_right - 0015
exact hi_witness - 0016
specialize succ_ne_zero i - 0017
apply succ_ne_zero - 0018
exact hsi - 0019
have hprevious : exists bb bc sb sc. (forall bcf_row_index_bptpx_previous. (exists bcf_lt_gap_bptpx_previous_row_bound. bcf_lt_gap_bptpx_previous_row_bound + S (bcf_row_index_bptpx_previous) = r) -> exists bcf_row_code_bptpx_previous bcf_row_scale_bptpx_previous. ((((exists bcf_height_bptpx_previous_decoded_row_code. bcf_height_bptpx_previous_decoded_row_code + S (bcf_row_code_bptpx_previous) = S ((S (bcf_row_index_bptpx_previous)) * bc)) /\ exists bcf_quotient_bptpx_previous_decoded_row_code. bb = bcf_quotient_bptpx_previous_decoded_row_code * S ((S (bcf_row_index_bptpx_previous)) * bc) + (bcf_row_code_bptpx_previous))) /\ ((((exists bcf_height_bptpx_previous_decoded_row_scale. bcf_height_bptpx_previous_decoded_row_scale + S (bcf_row_scale_bptpx_previous) = S ((S (bcf_row_index_bptpx_previous)) * sc)) /\ exists bcf_quotient_bptpx_previous_decoded_row_scale. sb = bcf_quotient_bptpx_previous_decoded_row_scale * S ((S (bcf_row_index_bptpx_previous)) * sc) + (bcf_row_scale_bptpx_previous))) /\ ((bcf_row_index_bptpx_previous = 0 /\ (forall bcf_index_bptpx_previous_zero_row. (exists bcf_lt_gap_bptpx_previous_zero_row_bound. bcf_lt_gap_bptpx_previous_zero_row_bound + S (bcf_index_bptpx_previous_zero_row) = w) -> exists bcf_value_bptpx_previous_zero_row. ((((exists bcf_height_bptpx_previous_zero_row_entry. bcf_height_bptpx_previous_zero_row_entry + S (bcf_value_bptpx_previous_zero_row) = S ((S (bcf_index_bptpx_previous_zero_row)) * bcf_row_scale_bptpx_previous)) /\ exists bcf_quotient_bptpx_previous_zero_row_entry. bcf_row_code_bptpx_previous = bcf_quotient_bptpx_previous_zero_row_entry * S ((S (bcf_index_bptpx_previous_zero_row)) * bcf_row_scale_bptpx_previous) + (bcf_value_bptpx_previous_zero_row))) /\ ((bcf_index_bptpx_previous_zero_row = 0 /\ bcf_value_bptpx_previous_zero_row = 1) \/ exists bcf_predecessor_bptpx_previous_zero_row. bcf_index_bptpx_previous_zero_row = S bcf_predecessor_bptpx_previous_zero_row /\ bcf_value_bptpx_previous_zero_row = 0)))) \/ exists bcf_predecessor_bptpx_previous bcf_previous_code_bptpx_previous bcf_previous_scale_bptpx_previous. bcf_row_index_bptpx_previous = S bcf_predecessor_bptpx_previous /\ ((((exists bcf_height_bptpx_previous_decoded_previous_code. bcf_height_bptpx_previous_decoded_previous_code + S (bcf_previous_code_bptpx_previous) = S ((S (bcf_predecessor_bptpx_previous)) * bc)) /\ exists bcf_quotient_bptpx_previous_decoded_previous_code. bb = bcf_quotient_bptpx_previous_decoded_previous_code * S ((S (bcf_predecessor_bptpx_previous)) * bc) + (bcf_previous_code_bptpx_previous))) /\ ((((exists bcf_height_bptpx_previous_decoded_previous_scale. bcf_height_bptpx_previous_decoded_previous_scale + S (bcf_previous_scale_bptpx_previous) = S ((S (bcf_predecessor_bptpx_previous)) * sc)) /\ exists bcf_quotient_bptpx_previous_decoded_previous_scale. sb = bcf_quotient_bptpx_previous_decoded_previous_scale * S ((S (bcf_predecessor_bptpx_previous)) * sc) + (bcf_previous_scale_bptpx_previous))) /\ (forall bcf_index_bptpx_previous_row_step. (exists bcf_lt_gap_bptpx_previous_row_step_bound. bcf_lt_gap_bptpx_previous_row_step_bound + S (bcf_index_bptpx_previous_row_step) = w) -> exists bcf_value_bptpx_previous_row_step. ((((exists bcf_height_bptpx_previous_row_step_entry. bcf_height_bptpx_previous_row_step_entry + S (bcf_value_bptpx_previous_row_step) = S ((S (bcf_index_bptpx_previous_row_step)) * bcf_row_scale_bptpx_previous)) /\ exists bcf_quotient_bptpx_previous_row_step_entry. bcf_row_code_bptpx_previous = bcf_quotient_bptpx_previous_row_step_entry * S ((S (bcf_index_bptpx_previous_row_step)) * bcf_row_scale_bptpx_previous) + (bcf_value_bptpx_previous_row_step))) /\ ((bcf_index_bptpx_previous_row_step = 0 /\ bcf_value_bptpx_previous_row_step = 1) \/ exists bcf_predecessor_bptpx_previous_row_step bcf_left_bptpx_previous_row_step bcf_right_bptpx_previous_row_step. bcf_index_bptpx_previous_row_step = S bcf_predecessor_bptpx_previous_row_step /\ ((((exists bcf_height_bptpx_previous_row_step_previous_left. bcf_height_bptpx_previous_row_step_previous_left + S (bcf_left_bptpx_previous_row_step) = S ((S (bcf_predecessor_bptpx_previous_row_step)) * bcf_previous_scale_bptpx_previous)) /\ exists bcf_quotient_bptpx_previous_row_step_previous_left. bcf_previous_code_bptpx_previous = bcf_quotient_bptpx_previous_row_step_previous_left * S ((S (bcf_predecessor_bptpx_previous_row_step)) * bcf_previous_scale_bptpx_previous) + (bcf_left_bptpx_previous_row_step))) /\ ((((exists bcf_height_bptpx_previous_row_step_previous_right. bcf_height_bptpx_previous_row_step_previous_right + S (bcf_right_bptpx_previous_row_step) = S ((S (S (bcf_predecessor_bptpx_previous_row_step))) * bcf_previous_scale_bptpx_previous)) /\ exists bcf_quotient_bptpx_previous_row_step_previous_right. bcf_previous_code_bptpx_previous = bcf_quotient_bptpx_previous_row_step_previous_right * S ((S (S (bcf_predecessor_bptpx_previous_row_step))) * bcf_previous_scale_bptpx_previous) + (bcf_right_bptpx_previous_row_step))) /\ bcf_value_bptpx_previous_row_step = bcf_left_bptpx_previous_row_step + bcf_right_bptpx_previous_row_step))))))))))) - 0020
exact IH - 0021
cases hprevious - 0022
cases hprevious_witness - 0023
cases hprevious_witness_witness - 0024
cases hprevious_witness_witness_witness - 0025
have hnext : exists bb bc sb sc. (forall bcf_row_index_bptpx_successor. (exists bcf_lt_gap_bptpx_successor_row_bound. bcf_lt_gap_bptpx_successor_row_bound + S (bcf_row_index_bptpx_successor) = S (r)) -> exists bcf_row_code_bptpx_successor bcf_row_scale_bptpx_successor. ((((exists bcf_height_bptpx_successor_decoded_row_code. bcf_height_bptpx_successor_decoded_row_code + S (bcf_row_code_bptpx_successor) = S ((S (bcf_row_index_bptpx_successor)) * bc)) /\ exists bcf_quotient_bptpx_successor_decoded_row_code. bb = bcf_quotient_bptpx_successor_decoded_row_code * S ((S (bcf_row_index_bptpx_successor)) * bc) + (bcf_row_code_bptpx_successor))) /\ ((((exists bcf_height_bptpx_successor_decoded_row_scale. bcf_height_bptpx_successor_decoded_row_scale + S (bcf_row_scale_bptpx_successor) = S ((S (bcf_row_index_bptpx_successor)) * sc)) /\ exists bcf_quotient_bptpx_successor_decoded_row_scale. sb = bcf_quotient_bptpx_successor_decoded_row_scale * S ((S (bcf_row_index_bptpx_successor)) * sc) + (bcf_row_scale_bptpx_successor))) /\ ((bcf_row_index_bptpx_successor = 0 /\ (forall bcf_index_bptpx_successor_zero_row. (exists bcf_lt_gap_bptpx_successor_zero_row_bound. bcf_lt_gap_bptpx_successor_zero_row_bound + S (bcf_index_bptpx_successor_zero_row) = w) -> exists bcf_value_bptpx_successor_zero_row. ((((exists bcf_height_bptpx_successor_zero_row_entry. bcf_height_bptpx_successor_zero_row_entry + S (bcf_value_bptpx_successor_zero_row) = S ((S (bcf_index_bptpx_successor_zero_row)) * bcf_row_scale_bptpx_successor)) /\ exists bcf_quotient_bptpx_successor_zero_row_entry. bcf_row_code_bptpx_successor = bcf_quotient_bptpx_successor_zero_row_entry * S ((S (bcf_index_bptpx_successor_zero_row)) * bcf_row_scale_bptpx_successor) + (bcf_value_bptpx_successor_zero_row))) /\ ((bcf_index_bptpx_successor_zero_row = 0 /\ bcf_value_bptpx_successor_zero_row = 1) \/ exists bcf_predecessor_bptpx_successor_zero_row. bcf_index_bptpx_successor_zero_row = S bcf_predecessor_bptpx_successor_zero_row /\ bcf_value_bptpx_successor_zero_row = 0)))) \/ exists bcf_predecessor_bptpx_successor bcf_previous_code_bptpx_successor bcf_previous_scale_bptpx_successor. bcf_row_index_bptpx_successor = S bcf_predecessor_bptpx_successor /\ ((((exists bcf_height_bptpx_successor_decoded_previous_code. bcf_height_bptpx_successor_decoded_previous_code + S (bcf_previous_code_bptpx_successor) = S ((S (bcf_predecessor_bptpx_successor)) * bc)) /\ exists bcf_quotient_bptpx_successor_decoded_previous_code. bb = bcf_quotient_bptpx_successor_decoded_previous_code * S ((S (bcf_predecessor_bptpx_successor)) * bc) + (bcf_previous_code_bptpx_successor))) /\ ((((exists bcf_height_bptpx_successor_decoded_previous_scale. bcf_height_bptpx_successor_decoded_previous_scale + S (bcf_previous_scale_bptpx_successor) = S ((S (bcf_predecessor_bptpx_successor)) * sc)) /\ exists bcf_quotient_bptpx_successor_decoded_previous_scale. sb = bcf_quotient_bptpx_successor_decoded_previous_scale * S ((S (bcf_predecessor_bptpx_successor)) * sc) + (bcf_previous_scale_bptpx_successor))) /\ (forall bcf_index_bptpx_successor_row_step. (exists bcf_lt_gap_bptpx_successor_row_step_bound. bcf_lt_gap_bptpx_successor_row_step_bound + S (bcf_index_bptpx_successor_row_step) = w) -> exists bcf_value_bptpx_successor_row_step. ((((exists bcf_height_bptpx_successor_row_step_entry. bcf_height_bptpx_successor_row_step_entry + S (bcf_value_bptpx_successor_row_step) = S ((S (bcf_index_bptpx_successor_row_step)) * bcf_row_scale_bptpx_successor)) /\ exists bcf_quotient_bptpx_successor_row_step_entry. bcf_row_code_bptpx_successor = bcf_quotient_bptpx_successor_row_step_entry * S ((S (bcf_index_bptpx_successor_row_step)) * bcf_row_scale_bptpx_successor) + (bcf_value_bptpx_successor_row_step))) /\ ((bcf_index_bptpx_successor_row_step = 0 /\ bcf_value_bptpx_successor_row_step = 1) \/ exists bcf_predecessor_bptpx_successor_row_step bcf_left_bptpx_successor_row_step bcf_right_bptpx_successor_row_step. bcf_index_bptpx_successor_row_step = S bcf_predecessor_bptpx_successor_row_step /\ ((((exists bcf_height_bptpx_successor_row_step_previous_left. bcf_height_bptpx_successor_row_step_previous_left + S (bcf_left_bptpx_successor_row_step) = S ((S (bcf_predecessor_bptpx_successor_row_step)) * bcf_previous_scale_bptpx_successor)) /\ exists bcf_quotient_bptpx_successor_row_step_previous_left. bcf_previous_code_bptpx_successor = bcf_quotient_bptpx_successor_row_step_previous_left * S ((S (bcf_predecessor_bptpx_successor_row_step)) * bcf_previous_scale_bptpx_successor) + (bcf_left_bptpx_successor_row_step))) /\ ((((exists bcf_height_bptpx_successor_row_step_previous_right. bcf_height_bptpx_successor_row_step_previous_right + S (bcf_right_bptpx_successor_row_step) = S ((S (S (bcf_predecessor_bptpx_successor_row_step))) * bcf_previous_scale_bptpx_successor)) /\ exists bcf_quotient_bptpx_successor_row_step_previous_right. bcf_previous_code_bptpx_successor = bcf_quotient_bptpx_successor_row_step_previous_right * S ((S (S (bcf_predecessor_bptpx_successor_row_step))) * bcf_previous_scale_bptpx_successor) + (bcf_right_bptpx_successor_row_step))) /\ bcf_value_bptpx_successor_row_step = bcf_left_bptpx_successor_row_step + bcf_right_bptpx_successor_row_step))))))))))) - 0026
specialize beta_pascal_table_prefix_extend x - 0027
specialize beta_pascal_table_prefix_extend x1 - 0028
specialize beta_pascal_table_prefix_extend x2 - 0029
specialize beta_pascal_table_prefix_extend x3 - 0030
specialize beta_pascal_table_prefix_extend w - 0031
specialize beta_pascal_table_prefix_extend r - 0032
apply beta_pascal_table_prefix_extend - 0033
exact hprevious_witness_witness_witness_witness - 0034
exact hnext