BT00TK

choose_self_of_eq

Alpha body-checked ยท checked-use disabled

A column equal to its row has Choose value one.

Exact expanded PA statement

forall n k z. k = n -> (((exists bcf_lt_gap_bcse_source_out_of_range. bcf_lt_gap_bcse_source_out_of_range + S (n) = k) /\ z = 0) \/ ((exists bcf_le_gap_bcse_source_in_range. bcf_le_gap_bcse_source_in_range + (k) = n) /\ (exists bcf_row_code_code_bcse_source bcf_row_code_scale_bcse_source bcf_row_scale_code_bcse_source bcf_row_scale_scale_bcse_source bcf_row_code_bcse_source bcf_row_scale_bcse_source. ((forall bcf_row_index_bcse_source_table. (exists bcf_lt_gap_bcse_source_table_row_bound. bcf_lt_gap_bcse_source_table_row_bound + S (bcf_row_index_bcse_source_table) = S (n)) -> exists bcf_row_code_bcse_source_table bcf_row_scale_bcse_source_table. ((((exists bcf_height_bcse_source_table_decoded_row_code. bcf_height_bcse_source_table_decoded_row_code + S (bcf_row_code_bcse_source_table) = S ((S (bcf_row_index_bcse_source_table)) * bcf_row_code_scale_bcse_source)) /\ exists bcf_quotient_bcse_source_table_decoded_row_code. bcf_row_code_code_bcse_source = bcf_quotient_bcse_source_table_decoded_row_code * S ((S (bcf_row_index_bcse_source_table)) * bcf_row_code_scale_bcse_source) + (bcf_row_code_bcse_source_table))) /\ ((((exists bcf_height_bcse_source_table_decoded_row_scale. bcf_height_bcse_source_table_decoded_row_scale + S (bcf_row_scale_bcse_source_table) = S ((S (bcf_row_index_bcse_source_table)) * bcf_row_scale_scale_bcse_source)) /\ exists bcf_quotient_bcse_source_table_decoded_row_scale. bcf_row_scale_code_bcse_source = bcf_quotient_bcse_source_table_decoded_row_scale * S ((S (bcf_row_index_bcse_source_table)) * bcf_row_scale_scale_bcse_source) + (bcf_row_scale_bcse_source_table))) /\ ((bcf_row_index_bcse_source_table = 0 /\ (forall bcf_index_bcse_source_table_zero_row. (exists bcf_lt_gap_bcse_source_table_zero_row_bound. bcf_lt_gap_bcse_source_table_zero_row_bound + S (bcf_index_bcse_source_table_zero_row) = S (n)) -> exists bcf_value_bcse_source_table_zero_row. ((((exists bcf_height_bcse_source_table_zero_row_entry. bcf_height_bcse_source_table_zero_row_entry + S (bcf_value_bcse_source_table_zero_row) = S ((S (bcf_index_bcse_source_table_zero_row)) * bcf_row_scale_bcse_source_table)) /\ exists bcf_quotient_bcse_source_table_zero_row_entry. bcf_row_code_bcse_source_table = bcf_quotient_bcse_source_table_zero_row_entry * S ((S (bcf_index_bcse_source_table_zero_row)) * bcf_row_scale_bcse_source_table) + (bcf_value_bcse_source_table_zero_row))) /\ ((bcf_index_bcse_source_table_zero_row = 0 /\ bcf_value_bcse_source_table_zero_row = 1) \/ exists bcf_predecessor_bcse_source_table_zero_row. bcf_index_bcse_source_table_zero_row = S bcf_predecessor_bcse_source_table_zero_row /\ bcf_value_bcse_source_table_zero_row = 0)))) \/ exists bcf_predecessor_bcse_source_table bcf_previous_code_bcse_source_table bcf_previous_scale_bcse_source_table. bcf_row_index_bcse_source_table = S bcf_predecessor_bcse_source_table /\ ((((exists bcf_height_bcse_source_table_decoded_previous_code. bcf_height_bcse_source_table_decoded_previous_code + S (bcf_previous_code_bcse_source_table) = S ((S (bcf_predecessor_bcse_source_table)) * bcf_row_code_scale_bcse_source)) /\ exists bcf_quotient_bcse_source_table_decoded_previous_code. bcf_row_code_code_bcse_source = bcf_quotient_bcse_source_table_decoded_previous_code * S ((S (bcf_predecessor_bcse_source_table)) * bcf_row_code_scale_bcse_source) + (bcf_previous_code_bcse_source_table))) /\ ((((exists bcf_height_bcse_source_table_decoded_previous_scale. bcf_height_bcse_source_table_decoded_previous_scale + S (bcf_previous_scale_bcse_source_table) = S ((S (bcf_predecessor_bcse_source_table)) * bcf_row_scale_scale_bcse_source)) /\ exists bcf_quotient_bcse_source_table_decoded_previous_scale. bcf_row_scale_code_bcse_source = bcf_quotient_bcse_source_table_decoded_previous_scale * S ((S (bcf_predecessor_bcse_source_table)) * bcf_row_scale_scale_bcse_source) + (bcf_previous_scale_bcse_source_table))) /\ (forall bcf_index_bcse_source_table_row_step. (exists bcf_lt_gap_bcse_source_table_row_step_bound. bcf_lt_gap_bcse_source_table_row_step_bound + S (bcf_index_bcse_source_table_row_step) = S (n)) -> exists bcf_value_bcse_source_table_row_step. ((((exists bcf_height_bcse_source_table_row_step_entry. bcf_height_bcse_source_table_row_step_entry + S (bcf_value_bcse_source_table_row_step) = S ((S (bcf_index_bcse_source_table_row_step)) * bcf_row_scale_bcse_source_table)) /\ exists bcf_quotient_bcse_source_table_row_step_entry. bcf_row_code_bcse_source_table = bcf_quotient_bcse_source_table_row_step_entry * S ((S (bcf_index_bcse_source_table_row_step)) * bcf_row_scale_bcse_source_table) + (bcf_value_bcse_source_table_row_step))) /\ ((bcf_index_bcse_source_table_row_step = 0 /\ bcf_value_bcse_source_table_row_step = 1) \/ exists bcf_predecessor_bcse_source_table_row_step bcf_left_bcse_source_table_row_step bcf_right_bcse_source_table_row_step. bcf_index_bcse_source_table_row_step = S bcf_predecessor_bcse_source_table_row_step /\ ((((exists bcf_height_bcse_source_table_row_step_previous_left. bcf_height_bcse_source_table_row_step_previous_left + S (bcf_left_bcse_source_table_row_step) = S ((S (bcf_predecessor_bcse_source_table_row_step)) * bcf_previous_scale_bcse_source_table)) /\ exists bcf_quotient_bcse_source_table_row_step_previous_left. bcf_previous_code_bcse_source_table = bcf_quotient_bcse_source_table_row_step_previous_left * S ((S (bcf_predecessor_bcse_source_table_row_step)) * bcf_previous_scale_bcse_source_table) + (bcf_left_bcse_source_table_row_step))) /\ ((((exists bcf_height_bcse_source_table_row_step_previous_right. bcf_height_bcse_source_table_row_step_previous_right + S (bcf_right_bcse_source_table_row_step) = S ((S (S (bcf_predecessor_bcse_source_table_row_step))) * bcf_previous_scale_bcse_source_table)) /\ exists bcf_quotient_bcse_source_table_row_step_previous_right. bcf_previous_code_bcse_source_table = bcf_quotient_bcse_source_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcse_source_table_row_step))) * bcf_previous_scale_bcse_source_table) + (bcf_right_bcse_source_table_row_step))) /\ bcf_value_bcse_source_table_row_step = bcf_left_bcse_source_table_row_step + bcf_right_bcse_source_table_row_step))))))))))) /\ ((((exists bcf_height_bcse_source_decoded_row_code. bcf_height_bcse_source_decoded_row_code + S (bcf_row_code_bcse_source) = S ((S (n)) * bcf_row_code_scale_bcse_source)) /\ exists bcf_quotient_bcse_source_decoded_row_code. bcf_row_code_code_bcse_source = bcf_quotient_bcse_source_decoded_row_code * S ((S (n)) * bcf_row_code_scale_bcse_source) + (bcf_row_code_bcse_source))) /\ ((((exists bcf_height_bcse_source_decoded_row_scale. bcf_height_bcse_source_decoded_row_scale + S (bcf_row_scale_bcse_source) = S ((S (n)) * bcf_row_scale_scale_bcse_source)) /\ exists bcf_quotient_bcse_source_decoded_row_scale. bcf_row_scale_code_bcse_source = bcf_quotient_bcse_source_decoded_row_scale * S ((S (n)) * bcf_row_scale_scale_bcse_source) + (bcf_row_scale_bcse_source))) /\ (((exists bcf_height_bcse_source_decoded_value. bcf_height_bcse_source_decoded_value + S (z) = S ((S (k)) * bcf_row_scale_bcse_source)) /\ exists bcf_quotient_bcse_source_decoded_value. bcf_row_code_bcse_source = bcf_quotient_bcse_source_decoded_value * S ((S (k)) * bcf_row_scale_bcse_source) + (z))))))))) -> z = 1

Structural proof guide

A column equal to its row has Choose value one.

Direct prerequisites: choose_self. The authored body proceeds by case analysis (12), equality transport (4).

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.

  1. 0001intro n
  2. 0002intro k
  3. 0003intro z
  4. 0004intro heq
  5. 0005intro hchoose
  6. 0006specialize choose_self n
  7. 0007specialize choose_self z
  8. 0008apply choose_self
  9. 0009cases hchoose
  10. 0010cases hchoose_left
  11. 0011left
  12. 0012split
  13. 0013rewrite heq at hchoose_left_left
  14. 0014exact hchoose_left_left
  15. 0015exact hchoose_left_right
  16. 0016cases hchoose_right
  17. 0017right
  18. 0018split
  19. 0019rewrite heq at hchoose_right_left
  20. 0020exact hchoose_right_left
  21. 0021cases hchoose_right_right
  22. 0022cases hchoose_right_right_witness
  23. 0023cases hchoose_right_right_witness_witness
  24. 0024cases hchoose_right_right_witness_witness_witness
  25. 0025cases hchoose_right_right_witness_witness_witness_witness
  26. 0026cases hchoose_right_right_witness_witness_witness_witness_witness
  27. 0027cases hchoose_right_right_witness_witness_witness_witness_witness_witness
  28. 0028cases hchoose_right_right_witness_witness_witness_witness_witness_witness_right
  29. 0029cases hchoose_right_right_witness_witness_witness_witness_witness_witness_right_right
  30. 0030exists x
  31. 0031exists x1
  32. 0032exists x2
  33. 0033exists x3
  34. 0034exists x4
  35. 0035exists x5
  36. 0036split
  37. 0037exact hchoose_right_right_witness_witness_witness_witness_witness_witness_left
  38. 0038split
  39. 0039exact hchoose_right_right_witness_witness_witness_witness_witness_witness_right_left
  40. 0040split
  41. 0041exact hchoose_right_right_witness_witness_witness_witness_witness_witness_right_right_left
  42. 0042rewrite heq at hchoose_right_right_witness_witness_witness_witness_witness_witness_right_right_right
  43. 0043rewrite heq at hchoose_right_right_witness_witness_witness_witness_witness_witness_right_right_right
  44. 0044exact hchoose_right_right_witness_witness_witness_witness_witness_witness_right_right_right