PA009O

scaled_inverse_pair_order_choose_append

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

Choose one omitted fixed-point-free scaled orbit and append its two sources adjacently.

Exact expanded PA statement

forall p a n u v b c l. p = S n -> ((~(p = 1) /\ forall esi_prime_left_espo_choose_prime esi_prime_right_espo_choose_prime. p = esi_prime_left_espo_choose_prime * esi_prime_right_espo_choose_prime -> esi_prime_left_espo_choose_prime = 1 \/ esi_prime_right_espo_choose_prime = 1)) -> ~(exists qr_x_espo_choose_nonresidue. exists qr_u_espo_choose_nonresidue qr_v_espo_choose_nonresidue. qr_x_espo_choose_nonresidue * qr_x_espo_choose_nonresidue + p * qr_u_espo_choose_nonresidue = a + p * qr_v_espo_choose_nonresidue) -> (forall esip_index_espo_choose_prefix. (exists esip_gap_espo_choose_prefix_prefix_bound. esip_gap_espo_choose_prefix_prefix_bound + S (esip_index_espo_choose_prefix) = n) -> exists esip_mate_espo_choose_prefix. ((((exists ff_h_esip_espo_choose_prefix_entry. ff_h_esip_espo_choose_prefix_entry + S (esip_mate_espo_choose_prefix) = S ((S (esip_index_espo_choose_prefix)) * v)) /\ exists ff_q_esip_espo_choose_prefix_entry. u = ff_q_esip_espo_choose_prefix_entry * S ((S (esip_index_espo_choose_prefix)) * v) + (esip_mate_espo_choose_prefix))) /\ ((exists esip_gap_espo_choose_prefix_relation_index_bound. esip_gap_espo_choose_prefix_relation_index_bound + S (esip_index_espo_choose_prefix) = n) /\ ((((~((S esip_index_espo_choose_prefix) = 0) /\ (exists esip_gap_espo_choose_prefix_relation_scaled_left_bound. esip_gap_espo_choose_prefix_relation_scaled_left_bound + S (S esip_index_espo_choose_prefix) = p))) /\ (((~(esip_mate_espo_choose_prefix = 0) /\ (exists esip_gap_espo_choose_prefix_relation_scaled_right_bound. esip_gap_espo_choose_prefix_relation_scaled_right_bound + S (esip_mate_espo_choose_prefix) = p))) /\ (exists esi_mod_left_espo_choose_prefix_relation_scaled_mod esi_mod_right_espo_choose_prefix_relation_scaled_mod. ((S esip_index_espo_choose_prefix) * esip_mate_espo_choose_prefix) + p * esi_mod_left_espo_choose_prefix_relation_scaled_mod = (a) + p * esi_mod_right_espo_choose_prefix_relation_scaled_mod))))))) -> (exists wpo_gap_choose_short. wpo_gap_choose_short + S (l) = n) -> (forall espo_position_step_closed_before espo_source_step_closed_before espo_mate_step_closed_before. (exists wpo_gap_step_closed_before_position_bound. wpo_gap_step_closed_before_position_bound + S (espo_position_step_closed_before) = l) -> (((exists wpo_beta_height_step_closed_before_source_entry. wpo_beta_height_step_closed_before_source_entry + S (espo_source_step_closed_before) = S ((S (espo_position_step_closed_before)) * c)) /\ exists wpo_beta_quotient_step_closed_before_source_entry. b = wpo_beta_quotient_step_closed_before_source_entry * S ((S (espo_position_step_closed_before)) * c) + (espo_source_step_closed_before))) -> (((exists wpo_beta_height_step_closed_before_scaled_entry. wpo_beta_height_step_closed_before_scaled_entry + S (S espo_mate_step_closed_before) = S ((S (espo_source_step_closed_before)) * v)) /\ exists wpo_beta_quotient_step_closed_before_scaled_entry. u = wpo_beta_quotient_step_closed_before_scaled_entry * S ((S (espo_source_step_closed_before)) * v) + (S espo_mate_step_closed_before))) -> exists espo_mate_position_step_closed_before. ((exists wpo_gap_step_closed_before_mate_bound. wpo_gap_step_closed_before_mate_bound + S (espo_mate_position_step_closed_before) = l) /\ (((exists wpo_beta_height_step_closed_before_mate_entry. wpo_beta_height_step_closed_before_mate_entry + S (espo_mate_step_closed_before) = S ((S (espo_mate_position_step_closed_before)) * c)) /\ exists wpo_beta_quotient_step_closed_before_mate_entry. b = wpo_beta_quotient_step_closed_before_mate_entry * S ((S (espo_mate_position_step_closed_before)) * c) + (espo_mate_step_closed_before))))) -> (forall wpo_injective_left_step_injective_before wpo_injective_right_step_injective_before wpo_injective_value_step_injective_before. (exists wpo_gap_step_injective_before_left_bound. wpo_gap_step_injective_before_left_bound + S (wpo_injective_left_step_injective_before) = l) -> (exists wpo_gap_step_injective_before_right_bound. wpo_gap_step_injective_before_right_bound + S (wpo_injective_right_step_injective_before) = l) -> (((exists wpo_beta_height_step_injective_before_left_entry. wpo_beta_height_step_injective_before_left_entry + S (wpo_injective_value_step_injective_before) = S ((S (wpo_injective_left_step_injective_before)) * c)) /\ exists wpo_beta_quotient_step_injective_before_left_entry. b = wpo_beta_quotient_step_injective_before_left_entry * S ((S (wpo_injective_left_step_injective_before)) * c) + (wpo_injective_value_step_injective_before))) -> (((exists wpo_beta_height_step_injective_before_right_entry. wpo_beta_height_step_injective_before_right_entry + S (wpo_injective_value_step_injective_before) = S ((S (wpo_injective_right_step_injective_before)) * c)) /\ exists wpo_beta_quotient_step_injective_before_right_entry. b = wpo_beta_quotient_step_injective_before_right_entry * S ((S (wpo_injective_right_step_injective_before)) * c) + (wpo_injective_value_step_injective_before))) -> wpo_injective_left_step_injective_before = wpo_injective_right_step_injective_before) -> (exists z d i j. ((((((exists wpo_beta_height_step_trace_first. wpo_beta_height_step_trace_first + S (i) = S ((S (l)) * d)) /\ exists wpo_beta_quotient_step_trace_first. z = wpo_beta_quotient_step_trace_first * S ((S (l)) * d) + (i))) /\ ((((exists wpo_beta_height_step_trace_second. wpo_beta_height_step_trace_second + S (j) = S ((S (S (l))) * d)) /\ exists wpo_beta_quotient_step_trace_second. z = wpo_beta_quotient_step_trace_second * S ((S (S (l))) * d) + (j))) /\ (forall wpo_old_index_step_trace wpo_old_value_step_trace. (exists wpo_gap_step_trace_old_bound. wpo_gap_step_trace_old_bound + S (wpo_old_index_step_trace) = l) -> (((exists wpo_beta_height_step_trace_old_entry. wpo_beta_height_step_trace_old_entry + S (wpo_old_value_step_trace) = S ((S (wpo_old_index_step_trace)) * c)) /\ exists wpo_beta_quotient_step_trace_old_entry. b = wpo_beta_quotient_step_trace_old_entry * S ((S (wpo_old_index_step_trace)) * c) + (wpo_old_value_step_trace))) -> (((exists wpo_beta_height_step_trace_new_entry. wpo_beta_height_step_trace_new_entry + S (wpo_old_value_step_trace) = S ((S (wpo_old_index_step_trace)) * d)) /\ exists wpo_beta_quotient_step_trace_new_entry. z = wpo_beta_quotient_step_trace_new_entry * S ((S (wpo_old_index_step_trace)) * d) + (wpo_old_value_step_trace))))))) /\ (((exists wpo_gap_chosen_i_bound. wpo_gap_chosen_i_bound + S (i) = n) /\ (((exists wpo_gap_chosen_j_bound. wpo_gap_chosen_j_bound + S (j) = n) /\ (((~(exists wpo_index_chosen_i_omit_contains. ((exists wpo_gap_chosen_i_omit_contains_bound. wpo_gap_chosen_i_omit_contains_bound + S (wpo_index_chosen_i_omit_contains) = l) /\ (((exists wpo_beta_height_chosen_i_omit_contains_entry. wpo_beta_height_chosen_i_omit_contains_entry + S (i) = S ((S (wpo_index_chosen_i_omit_contains)) * c)) /\ exists wpo_beta_quotient_chosen_i_omit_contains_entry. b = wpo_beta_quotient_chosen_i_omit_contains_entry * S ((S (wpo_index_chosen_i_omit_contains)) * c) + (i)))))) /\ (((~(exists wpo_index_step_j_omit_contains. ((exists wpo_gap_step_j_omit_contains_bound. wpo_gap_step_j_omit_contains_bound + S (wpo_index_step_j_omit_contains) = l) /\ (((exists wpo_beta_height_step_j_omit_contains_entry. wpo_beta_height_step_j_omit_contains_entry + S (j) = S ((S (wpo_index_step_j_omit_contains)) * c)) /\ exists wpo_beta_quotient_step_j_omit_contains_entry. b = wpo_beta_quotient_step_j_omit_contains_entry * S ((S (wpo_index_step_j_omit_contains)) * c) + (j)))))) /\ (((~(i = j)) /\ (((((exists wpo_beta_height_chosen_forward. wpo_beta_height_chosen_forward + S (S j) = S ((S (i)) * v)) /\ exists wpo_beta_quotient_chosen_forward. u = wpo_beta_quotient_chosen_forward * S ((S (i)) * v) + (S j))) /\ (((((exists wpo_beta_height_chosen_back. wpo_beta_height_chosen_back + S (S i) = S ((S (j)) * v)) /\ exists wpo_beta_quotient_chosen_back. u = wpo_beta_quotient_chosen_back * S ((S (j)) * v) + (S i))) /\ (((forall espo_position_step_closed_after espo_source_step_closed_after espo_mate_step_closed_after. (exists wpo_gap_step_closed_after_position_bound. wpo_gap_step_closed_after_position_bound + S (espo_position_step_closed_after) = S (S l)) -> (((exists wpo_beta_height_step_closed_after_source_entry. wpo_beta_height_step_closed_after_source_entry + S (espo_source_step_closed_after) = S ((S (espo_position_step_closed_after)) * d)) /\ exists wpo_beta_quotient_step_closed_after_source_entry. z = wpo_beta_quotient_step_closed_after_source_entry * S ((S (espo_position_step_closed_after)) * d) + (espo_source_step_closed_after))) -> (((exists wpo_beta_height_step_closed_after_scaled_entry. wpo_beta_height_step_closed_after_scaled_entry + S (S espo_mate_step_closed_after) = S ((S (espo_source_step_closed_after)) * v)) /\ exists wpo_beta_quotient_step_closed_after_scaled_entry. u = wpo_beta_quotient_step_closed_after_scaled_entry * S ((S (espo_source_step_closed_after)) * v) + (S espo_mate_step_closed_after))) -> exists espo_mate_position_step_closed_after. ((exists wpo_gap_step_closed_after_mate_bound. wpo_gap_step_closed_after_mate_bound + S (espo_mate_position_step_closed_after) = S (S l)) /\ (((exists wpo_beta_height_step_closed_after_mate_entry. wpo_beta_height_step_closed_after_mate_entry + S (espo_mate_step_closed_after) = S ((S (espo_mate_position_step_closed_after)) * d)) /\ exists wpo_beta_quotient_step_closed_after_mate_entry. z = wpo_beta_quotient_step_closed_after_mate_entry * S ((S (espo_mate_position_step_closed_after)) * d) + (espo_mate_step_closed_after))))) /\ (forall wpo_injective_left_step_injective_after wpo_injective_right_step_injective_after wpo_injective_value_step_injective_after. (exists wpo_gap_step_injective_after_left_bound. wpo_gap_step_injective_after_left_bound + S (wpo_injective_left_step_injective_after) = S (S l)) -> (exists wpo_gap_step_injective_after_right_bound. wpo_gap_step_injective_after_right_bound + S (wpo_injective_right_step_injective_after) = S (S l)) -> (((exists wpo_beta_height_step_injective_after_left_entry. wpo_beta_height_step_injective_after_left_entry + S (wpo_injective_value_step_injective_after) = S ((S (wpo_injective_left_step_injective_after)) * d)) /\ exists wpo_beta_quotient_step_injective_after_left_entry. z = wpo_beta_quotient_step_injective_after_left_entry * S ((S (wpo_injective_left_step_injective_after)) * d) + (wpo_injective_value_step_injective_after))) -> (((exists wpo_beta_height_step_injective_after_right_entry. wpo_beta_height_step_injective_after_right_entry + S (wpo_injective_value_step_injective_after) = S ((S (wpo_injective_right_step_injective_after)) * d)) /\ exists wpo_beta_quotient_step_injective_after_right_entry. z = wpo_beta_quotient_step_injective_after_right_entry * S ((S (wpo_injective_right_step_injective_after)) * d) + (wpo_injective_value_step_injective_after))) -> wpo_injective_left_step_injective_after = wpo_injective_right_step_injective_after)))))))))))))))))))

Structural proof guide

Generated structural guide

Choose one omitted fixed-point-free scaled orbit and append its two sources adjacently.

Use the direct prerequisites scaled_inverse_prefix_choose_omitted_orbit, scaled_orbit_closed_unused_mate, beta_prefix_append_two_exists, beta_prefix_append_two_scaled_orbit_closed, beta_prefix_append_two_injective as previously established PA formulas.

The proof proceeds by case analysis (9), intermediate claims (6).

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 p
  2. 0002intro a
  3. 0003intro n
  4. 0004intro u
  5. 0005intro v
  6. 0006intro b
  7. 0007intro c
  8. 0008intro l
  9. 0009intro hpn
  10. 0010intro hp
  11. 0011intro hnotqres
  12. 0012intro hprefix
  13. 0013intro hshort
  14. 0014intro hclosed
  15. 0015intro hinjective
  16. 0016have hchosen : exists i j. ((exists wpo_gap_chosen_i_bound. wpo_gap_chosen_i_bound + S (i) = n) /\ (((~(exists wpo_index_chosen_i_omit_contains. ((exists wpo_gap_chosen_i_omit_contains_bound. wpo_gap_chosen_i_omit_contains_bound + S (wpo_index_chosen_i_omit_contains) = l) /\ (((exists wpo_beta_height_chosen_i_omit_contains_entry. wpo_beta_height_chosen_i_omit_contains_entry + S (i) = S ((S (wpo_index_chosen_i_omit_contains)) * c)) /\ exists wpo_beta_quotient_chosen_i_omit_contains_entry. b = wpo_beta_quotient_chosen_i_omit_contains_entry * S ((S (wpo_index_chosen_i_omit_contains)) * c) + (i)))))) /\ (((exists wpo_gap_chosen_j_bound. wpo_gap_chosen_j_bound + S (j) = n) /\ (((~(i = j)) /\ (((((exists wpo_beta_height_chosen_forward. wpo_beta_height_chosen_forward + S (S j) = S ((S (i)) * v)) /\ exists wpo_beta_quotient_chosen_forward. u = wpo_beta_quotient_chosen_forward * S ((S (i)) * v) + (S j))) /\ (((exists wpo_beta_height_chosen_back. wpo_beta_height_chosen_back + S (S i) = S ((S (j)) * v)) /\ exists wpo_beta_quotient_chosen_back. u = wpo_beta_quotient_chosen_back * S ((S (j)) * v) + (S i))))))))))))
  17. 0017specialize scaled_inverse_prefix_choose_omitted_orbit p
  18. 0018specialize scaled_inverse_prefix_choose_omitted_orbit a
  19. 0019specialize scaled_inverse_prefix_choose_omitted_orbit n
  20. 0020specialize scaled_inverse_prefix_choose_omitted_orbit u
  21. 0021specialize scaled_inverse_prefix_choose_omitted_orbit v
  22. 0022specialize scaled_inverse_prefix_choose_omitted_orbit b
  23. 0023specialize scaled_inverse_prefix_choose_omitted_orbit c
  24. 0024specialize scaled_inverse_prefix_choose_omitted_orbit l
  25. 0025apply scaled_inverse_prefix_choose_omitted_orbit
  26. 0026exact hpn
  27. 0027exact hp
  28. 0028exact hnotqres
  29. 0029exact hprefix
  30. 0030exact hshort
  31. 0031cases hchosen
  32. 0032cases hchosen_witness
  33. 0033have hparts : ((exists wpo_gap_witness_i_bound. wpo_gap_witness_i_bound + S (x) = n) /\ (((~(exists wpo_index_witness_i_omit_contains. ((exists wpo_gap_witness_i_omit_contains_bound. wpo_gap_witness_i_omit_contains_bound + S (wpo_index_witness_i_omit_contains) = l) /\ (((exists wpo_beta_height_witness_i_omit_contains_entry. wpo_beta_height_witness_i_omit_contains_entry + S (x) = S ((S (wpo_index_witness_i_omit_contains)) * c)) /\ exists wpo_beta_quotient_witness_i_omit_contains_entry. b = wpo_beta_quotient_witness_i_omit_contains_entry * S ((S (wpo_index_witness_i_omit_contains)) * c) + (x)))))) /\ (((exists wpo_gap_witness_j_bound. wpo_gap_witness_j_bound + S (x1) = n) /\ (((~(x = x1)) /\ (((((exists wpo_beta_height_witness_forward. wpo_beta_height_witness_forward + S (S x1) = S ((S (x)) * v)) /\ exists wpo_beta_quotient_witness_forward. u = wpo_beta_quotient_witness_forward * S ((S (x)) * v) + (S x1))) /\ (((exists wpo_beta_height_witness_back. wpo_beta_height_witness_back + S (S x) = S ((S (x1)) * v)) /\ exists wpo_beta_quotient_witness_back. u = wpo_beta_quotient_witness_back * S ((S (x1)) * v) + (S x))))))))))))
  34. 0034exact hchosen_witness_witness
  35. 0035cases hparts
  36. 0036cases hparts_right
  37. 0037cases hparts_right_right
  38. 0038cases hparts_right_right_right
  39. 0039cases hparts_right_right_right_right
  40. 0040have hjomit : ~(exists wpo_index_witness_j_omit_contains. ((exists wpo_gap_witness_j_omit_contains_bound. wpo_gap_witness_j_omit_contains_bound + S (wpo_index_witness_j_omit_contains) = l) /\ (((exists wpo_beta_height_witness_j_omit_contains_entry. wpo_beta_height_witness_j_omit_contains_entry + S (x1) = S ((S (wpo_index_witness_j_omit_contains)) * c)) /\ exists wpo_beta_quotient_witness_j_omit_contains_entry. b = wpo_beta_quotient_witness_j_omit_contains_entry * S ((S (wpo_index_witness_j_omit_contains)) * c) + (x1)))))
  41. 0041intro hjcontains
  42. 0042specialize scaled_orbit_closed_unused_mate u
  43. 0043specialize scaled_orbit_closed_unused_mate v
  44. 0044specialize scaled_orbit_closed_unused_mate b
  45. 0045specialize scaled_orbit_closed_unused_mate c
  46. 0046specialize scaled_orbit_closed_unused_mate l
  47. 0047specialize scaled_orbit_closed_unused_mate x
  48. 0048specialize scaled_orbit_closed_unused_mate x1
  49. 0049apply scaled_orbit_closed_unused_mate
  50. 0050exact hclosed
  51. 0051exact hparts_right_left
  52. 0052exact hparts_right_right_right_right_right
  53. 0053exact hjcontains
  54. 0054have happend : exists z d. (((((exists wpo_beta_height_witness_exists_trace_first. wpo_beta_height_witness_exists_trace_first + S (x) = S ((S (l)) * d)) /\ exists wpo_beta_quotient_witness_exists_trace_first. z = wpo_beta_quotient_witness_exists_trace_first * S ((S (l)) * d) + (x))) /\ ((((exists wpo_beta_height_witness_exists_trace_second. wpo_beta_height_witness_exists_trace_second + S (x1) = S ((S (S (l))) * d)) /\ exists wpo_beta_quotient_witness_exists_trace_second. z = wpo_beta_quotient_witness_exists_trace_second * S ((S (S (l))) * d) + (x1))) /\ (forall wpo_old_index_witness_exists_trace wpo_old_value_witness_exists_trace. (exists wpo_gap_witness_exists_trace_old_bound. wpo_gap_witness_exists_trace_old_bound + S (wpo_old_index_witness_exists_trace) = l) -> (((exists wpo_beta_height_witness_exists_trace_old_entry. wpo_beta_height_witness_exists_trace_old_entry + S (wpo_old_value_witness_exists_trace) = S ((S (wpo_old_index_witness_exists_trace)) * c)) /\ exists wpo_beta_quotient_witness_exists_trace_old_entry. b = wpo_beta_quotient_witness_exists_trace_old_entry * S ((S (wpo_old_index_witness_exists_trace)) * c) + (wpo_old_value_witness_exists_trace))) -> (((exists wpo_beta_height_witness_exists_trace_new_entry. wpo_beta_height_witness_exists_trace_new_entry + S (wpo_old_value_witness_exists_trace) = S ((S (wpo_old_index_witness_exists_trace)) * d)) /\ exists wpo_beta_quotient_witness_exists_trace_new_entry. z = wpo_beta_quotient_witness_exists_trace_new_entry * S ((S (wpo_old_index_witness_exists_trace)) * d) + (wpo_old_value_witness_exists_trace)))))))
  55. 0055specialize beta_prefix_append_two_exists b
  56. 0056specialize beta_prefix_append_two_exists c
  57. 0057specialize beta_prefix_append_two_exists l
  58. 0058specialize beta_prefix_append_two_exists x
  59. 0059specialize beta_prefix_append_two_exists x1
  60. 0060exact beta_prefix_append_two_exists
  61. 0061cases happend
  62. 0062cases happend_witness
  63. 0063have hclosed_after : forall espo_position_witness_closed_after espo_source_witness_closed_after espo_mate_witness_closed_after. (exists wpo_gap_witness_closed_after_position_bound. wpo_gap_witness_closed_after_position_bound + S (espo_position_witness_closed_after) = S (S l)) -> (((exists wpo_beta_height_witness_closed_after_source_entry. wpo_beta_height_witness_closed_after_source_entry + S (espo_source_witness_closed_after) = S ((S (espo_position_witness_closed_after)) * x3)) /\ exists wpo_beta_quotient_witness_closed_after_source_entry. x2 = wpo_beta_quotient_witness_closed_after_source_entry * S ((S (espo_position_witness_closed_after)) * x3) + (espo_source_witness_closed_after))) -> (((exists wpo_beta_height_witness_closed_after_scaled_entry. wpo_beta_height_witness_closed_after_scaled_entry + S (S espo_mate_witness_closed_after) = S ((S (espo_source_witness_closed_after)) * v)) /\ exists wpo_beta_quotient_witness_closed_after_scaled_entry. u = wpo_beta_quotient_witness_closed_after_scaled_entry * S ((S (espo_source_witness_closed_after)) * v) + (S espo_mate_witness_closed_after))) -> exists espo_mate_position_witness_closed_after. ((exists wpo_gap_witness_closed_after_mate_bound. wpo_gap_witness_closed_after_mate_bound + S (espo_mate_position_witness_closed_after) = S (S l)) /\ (((exists wpo_beta_height_witness_closed_after_mate_entry. wpo_beta_height_witness_closed_after_mate_entry + S (espo_mate_witness_closed_after) = S ((S (espo_mate_position_witness_closed_after)) * x3)) /\ exists wpo_beta_quotient_witness_closed_after_mate_entry. x2 = wpo_beta_quotient_witness_closed_after_mate_entry * S ((S (espo_mate_position_witness_closed_after)) * x3) + (espo_mate_witness_closed_after))))
  64. 0064specialize beta_prefix_append_two_scaled_orbit_closed u
  65. 0065specialize beta_prefix_append_two_scaled_orbit_closed v
  66. 0066specialize beta_prefix_append_two_scaled_orbit_closed b
  67. 0067specialize beta_prefix_append_two_scaled_orbit_closed c
  68. 0068specialize beta_prefix_append_two_scaled_orbit_closed x2
  69. 0069specialize beta_prefix_append_two_scaled_orbit_closed x3
  70. 0070specialize beta_prefix_append_two_scaled_orbit_closed l
  71. 0071specialize beta_prefix_append_two_scaled_orbit_closed x
  72. 0072specialize beta_prefix_append_two_scaled_orbit_closed x1
  73. 0073apply beta_prefix_append_two_scaled_orbit_closed
  74. 0074exact happend_witness_witness
  75. 0075exact hclosed
  76. 0076exact hparts_right_right_right_right_left
  77. 0077exact hparts_right_right_right_right_right
  78. 0078have hinjective_after : forall wpo_injective_left_witness_injective_after wpo_injective_right_witness_injective_after wpo_injective_value_witness_injective_after. (exists wpo_gap_witness_injective_after_left_bound. wpo_gap_witness_injective_after_left_bound + S (wpo_injective_left_witness_injective_after) = S (S l)) -> (exists wpo_gap_witness_injective_after_right_bound. wpo_gap_witness_injective_after_right_bound + S (wpo_injective_right_witness_injective_after) = S (S l)) -> (((exists wpo_beta_height_witness_injective_after_left_entry. wpo_beta_height_witness_injective_after_left_entry + S (wpo_injective_value_witness_injective_after) = S ((S (wpo_injective_left_witness_injective_after)) * x3)) /\ exists wpo_beta_quotient_witness_injective_after_left_entry. x2 = wpo_beta_quotient_witness_injective_after_left_entry * S ((S (wpo_injective_left_witness_injective_after)) * x3) + (wpo_injective_value_witness_injective_after))) -> (((exists wpo_beta_height_witness_injective_after_right_entry. wpo_beta_height_witness_injective_after_right_entry + S (wpo_injective_value_witness_injective_after) = S ((S (wpo_injective_right_witness_injective_after)) * x3)) /\ exists wpo_beta_quotient_witness_injective_after_right_entry. x2 = wpo_beta_quotient_witness_injective_after_right_entry * S ((S (wpo_injective_right_witness_injective_after)) * x3) + (wpo_injective_value_witness_injective_after))) -> wpo_injective_left_witness_injective_after = wpo_injective_right_witness_injective_after
  79. 0079specialize beta_prefix_append_two_injective b
  80. 0080specialize beta_prefix_append_two_injective c
  81. 0081specialize beta_prefix_append_two_injective x2
  82. 0082specialize beta_prefix_append_two_injective x3
  83. 0083specialize beta_prefix_append_two_injective l
  84. 0084specialize beta_prefix_append_two_injective x
  85. 0085specialize beta_prefix_append_two_injective x1
  86. 0086apply beta_prefix_append_two_injective
  87. 0087exact happend_witness_witness
  88. 0088exact hinjective
  89. 0089exact hparts_right_left
  90. 0090exact hjomit
  91. 0091exact hparts_right_right_right_left
  92. 0092exists x2
  93. 0093exists x3
  94. 0094exists x
  95. 0095exists x1
  96. 0096split
  97. 0097exact happend_witness_witness
  98. 0098split
  99. 0099exact hparts_left
  100. 0100split
  101. 0101exact hparts_right_right_left
  102. 0102split
  103. 0103exact hparts_right_left
  104. 0104split
  105. 0105exact hjomit
  106. 0106split
  107. 0107exact hparts_right_right_right_left
  108. 0108split
  109. 0109exact hparts_right_right_right_right_left
  110. 0110split
  111. 0111exact hparts_right_right_right_right_right
  112. 0112split
  113. 0113exact hclosed_after
  114. 0114exact hinjective_after