PA00BB

pair_order_terminal_state_magnitude_range

Alpha v16 checked-use theorem · independently closed; not Stable

A terminal PairOrder state decodes exactly positive values bounded by its length.

Exact expanded PA statement

forall u v b c l n. n = S (S l) -> (((forall wpo_position_wtp_terminal_state_closed wpo_source_wtp_terminal_state_closed wpo_mate_wtp_terminal_state_closed. (exists wpo_gap_wtp_terminal_state_closed_position_bound. wpo_gap_wtp_terminal_state_closed_position_bound + S (wpo_position_wtp_terminal_state_closed) = l) -> (((exists wpo_beta_height_wtp_terminal_state_closed_source_entry. wpo_beta_height_wtp_terminal_state_closed_source_entry + S (wpo_source_wtp_terminal_state_closed) = S ((S (wpo_position_wtp_terminal_state_closed)) * c)) /\ exists wpo_beta_quotient_wtp_terminal_state_closed_source_entry. b = wpo_beta_quotient_wtp_terminal_state_closed_source_entry * S ((S (wpo_position_wtp_terminal_state_closed)) * c) + (wpo_source_wtp_terminal_state_closed))) -> (((exists wpo_beta_height_wtp_terminal_state_closed_inverse_entry. wpo_beta_height_wtp_terminal_state_closed_inverse_entry + S (wpo_mate_wtp_terminal_state_closed) = S ((S (wpo_source_wtp_terminal_state_closed)) * v)) /\ exists wpo_beta_quotient_wtp_terminal_state_closed_inverse_entry. u = wpo_beta_quotient_wtp_terminal_state_closed_inverse_entry * S ((S (wpo_source_wtp_terminal_state_closed)) * v) + (wpo_mate_wtp_terminal_state_closed))) -> exists wpo_mate_position_wtp_terminal_state_closed. ((exists wpo_gap_wtp_terminal_state_closed_mate_bound. wpo_gap_wtp_terminal_state_closed_mate_bound + S (wpo_mate_position_wtp_terminal_state_closed) = l) /\ (((exists wpo_beta_height_wtp_terminal_state_closed_mate_entry. wpo_beta_height_wtp_terminal_state_closed_mate_entry + S (wpo_mate_wtp_terminal_state_closed) = S ((S (wpo_mate_position_wtp_terminal_state_closed)) * c)) /\ exists wpo_beta_quotient_wtp_terminal_state_closed_mate_entry. b = wpo_beta_quotient_wtp_terminal_state_closed_mate_entry * S ((S (wpo_mate_position_wtp_terminal_state_closed)) * c) + (wpo_mate_wtp_terminal_state_closed))))) /\ ((forall fom_index_wtp_terminal_state_bounded. (exists fom_gap_wtp_terminal_state_bounded_index_bound. fom_gap_wtp_terminal_state_bounded_index_bound + S (fom_index_wtp_terminal_state_bounded) = l) -> exists fom_value_wtp_terminal_state_bounded. ((((exists fom_beta_height_wtp_terminal_state_bounded_entry. fom_beta_height_wtp_terminal_state_bounded_entry + S (fom_value_wtp_terminal_state_bounded) = S ((S (fom_index_wtp_terminal_state_bounded)) * c)) /\ exists fom_beta_quotient_wtp_terminal_state_bounded_entry. b = fom_beta_quotient_wtp_terminal_state_bounded_entry * S ((S (fom_index_wtp_terminal_state_bounded)) * c) + (fom_value_wtp_terminal_state_bounded))) /\ (exists fom_gap_wtp_terminal_state_bounded_value_bound. fom_gap_wtp_terminal_state_bounded_value_bound + S (fom_value_wtp_terminal_state_bounded) = n))) /\ ((forall wpo_position_wtp_terminal_state_nonendpoint wpo_value_wtp_terminal_state_nonendpoint. (exists wpo_gap_wtp_terminal_state_nonendpoint_position_bound. wpo_gap_wtp_terminal_state_nonendpoint_position_bound + S (wpo_position_wtp_terminal_state_nonendpoint) = l) -> (((exists wpo_beta_height_wtp_terminal_state_nonendpoint_entry. wpo_beta_height_wtp_terminal_state_nonendpoint_entry + S (wpo_value_wtp_terminal_state_nonendpoint) = S ((S (wpo_position_wtp_terminal_state_nonendpoint)) * c)) /\ exists wpo_beta_quotient_wtp_terminal_state_nonendpoint_entry. b = wpo_beta_quotient_wtp_terminal_state_nonendpoint_entry * S ((S (wpo_position_wtp_terminal_state_nonendpoint)) * c) + (wpo_value_wtp_terminal_state_nonendpoint))) -> (~(wpo_value_wtp_terminal_state_nonendpoint = 0) /\ ~((S wpo_value_wtp_terminal_state_nonendpoint) = n))) /\ (forall wpo_injective_left_wtp_terminal_state_injective wpo_injective_right_wtp_terminal_state_injective wpo_injective_value_wtp_terminal_state_injective. (exists wpo_gap_wtp_terminal_state_injective_left_bound. wpo_gap_wtp_terminal_state_injective_left_bound + S (wpo_injective_left_wtp_terminal_state_injective) = l) -> (exists wpo_gap_wtp_terminal_state_injective_right_bound. wpo_gap_wtp_terminal_state_injective_right_bound + S (wpo_injective_right_wtp_terminal_state_injective) = l) -> (((exists wpo_beta_height_wtp_terminal_state_injective_left_entry. wpo_beta_height_wtp_terminal_state_injective_left_entry + S (wpo_injective_value_wtp_terminal_state_injective) = S ((S (wpo_injective_left_wtp_terminal_state_injective)) * c)) /\ exists wpo_beta_quotient_wtp_terminal_state_injective_left_entry. b = wpo_beta_quotient_wtp_terminal_state_injective_left_entry * S ((S (wpo_injective_left_wtp_terminal_state_injective)) * c) + (wpo_injective_value_wtp_terminal_state_injective))) -> (((exists wpo_beta_height_wtp_terminal_state_injective_right_entry. wpo_beta_height_wtp_terminal_state_injective_right_entry + S (wpo_injective_value_wtp_terminal_state_injective) = S ((S (wpo_injective_right_wtp_terminal_state_injective)) * c)) /\ exists wpo_beta_quotient_wtp_terminal_state_injective_right_entry. b = wpo_beta_quotient_wtp_terminal_state_injective_right_entry * S ((S (wpo_injective_right_wtp_terminal_state_injective)) * c) + (wpo_injective_value_wtp_terminal_state_injective))) -> wpo_injective_left_wtp_terminal_state_injective = wpo_injective_right_wtp_terminal_state_injective))))) -> (forall gmp_index_wtp_terminal_range. (exists gsp_lt_gap_wtp_terminal_range_index_bound. gsp_lt_gap_wtp_terminal_range_index_bound + S gmp_index_wtp_terminal_range = l) -> exists gmp_magnitude_wtp_terminal_range. ((((exists ff_h_gmp_wtp_terminal_range_decoded. ff_h_gmp_wtp_terminal_range_decoded + S (gmp_magnitude_wtp_terminal_range) = S ((S (gmp_index_wtp_terminal_range)) * c)) /\ exists ff_q_gmp_wtp_terminal_range_decoded. b = ff_q_gmp_wtp_terminal_range_decoded * S ((S (gmp_index_wtp_terminal_range)) * c) + (gmp_magnitude_wtp_terminal_range))) /\ ((exists gsp_lt_gap_wtp_terminal_range_positive. gsp_lt_gap_wtp_terminal_range_positive + S 0 = gmp_magnitude_wtp_terminal_range) /\ (exists gsp_le_gap_wtp_terminal_range_bounded. gsp_le_gap_wtp_terminal_range_bounded + gmp_magnitude_wtp_terminal_range = l))))

Structural proof guide

Generated structural guide

A terminal PairOrder state decodes exactly positive values bounded by its length.

Use the direct prerequisites one_le_of_ne_zero, le_of_succ_le_succ, le_eq_or_lt as previously established PA formulas.

The proof proceeds by case analysis (7), intermediate claims (4), equality transport (3).

Referenced ingredients

Proof neighborhood

Direct dependencies

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v16 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.

  1. 0001intro u
  2. 0002intro v
  3. 0003intro b
  4. 0004intro c
  5. 0005intro l
  6. 0006intro n
  7. 0007intro hterminal
  8. 0008intro hstate
  9. 0009cases hstate
  10. 0010cases hstate_right
  11. 0011cases hstate_right_right
  12. 0012rewrite hterminal at hstate_right_left
  13. 0013rewrite hterminal at hstate_right_right_left
  14. 0014intro q
  15. 0015intro hq
  16. 0016have hentry : exists x. ((((exists wpo_beta_height_wtp_terminal_entry_x. wpo_beta_height_wtp_terminal_entry_x + S (x) = S ((S (q)) * c)) /\ exists wpo_beta_quotient_wtp_terminal_entry_x. b = wpo_beta_quotient_wtp_terminal_entry_x * S ((S (q)) * c) + (x))) /\ (exists wpo_gap_wtp_terminal_value_bound_x. wpo_gap_wtp_terminal_value_bound_x + S (x) = S (S l)))
  17. 0017specialize hstate_right_left q
  18. 0018apply hstate_right_left
  19. 0019exact hq
  20. 0020cases hentry
  21. 0021cases hentry_witness
  22. 0022have hnonendpoint : ~(x = 0) /\ ~((S x) = S (S l))
  23. 0023specialize hstate_right_right_left q
  24. 0024specialize hstate_right_right_left x
  25. 0025apply hstate_right_right_left
  26. 0026exact hq
  27. 0027exact hentry_witness_left
  28. 0028cases hnonendpoint
  29. 0029exists x
  30. 0030split
  31. 0031exact hentry_witness_left
  32. 0032split
  33. 0033specialize one_le_of_ne_zero x
  34. 0034apply one_le_of_ne_zero
  35. 0035exact hnonendpoint_left
  36. 0036have hxle_succ : exists h. h + x = S l
  37. 0037specialize le_of_succ_le_succ x
  38. 0038specialize le_of_succ_le_succ (S l)
  39. 0039apply le_of_succ_le_succ
  40. 0040exact hentry_witness_right
  41. 0041have hxsplit : x = S l \/ exists h. h + S x = S l
  42. 0042specialize le_eq_or_lt x
  43. 0043specialize le_eq_or_lt (S l)
  44. 0044apply le_eq_or_lt
  45. 0045exact hxle_succ
  46. 0046cases hxsplit
  47. 0047exfalso
  48. 0048apply hnonendpoint_right
  49. 0049rewrite hxsplit_left
  50. 0050refl
  51. 0051specialize le_of_succ_le_succ x
  52. 0052specialize le_of_succ_le_succ l
  53. 0053apply le_of_succ_le_succ
  54. 0054exact hxsplit_right