Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
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
PA009I scaled_inverse_prefix_choose_omitted_orbit PA009J scaled_orbit_closed_unused_mate PA009K beta_prefix_append_two_exists PA009M beta_prefix_append_two_scaled_orbit_closed PA009N beta_prefix_append_two_injectiveDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v25 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (5)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–15
03Establish hchosenL16–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply scaled inverse prefix choose omitted orbit.
- L16
have hchosen : ∃ i. ∃ j. Lt(i,n) ∧ (¬ContainsPrefix(b,c,l,i) ∧ (Lt(j,n) ∧ (¬i = j ∧ (BetaAt(u,v,i,S j) ∧ BetaAt(u,v,j,S i)))))Definitions: LtBetaAtContainsPrefix - L17
specialize scaled_inverse_prefix_choose_omitted_orbit p - L18
specialize scaled_inverse_prefix_choose_omitted_orbit a - L19
specialize scaled_inverse_prefix_choose_omitted_orbit n - L20
specialize scaled_inverse_prefix_choose_omitted_orbit u - L21
specialize scaled_inverse_prefix_choose_omitted_orbit v - L22
specialize scaled_inverse_prefix_choose_omitted_orbit b - L23
specialize scaled_inverse_prefix_choose_omitted_orbit c - L24
specialize scaled_inverse_prefix_choose_omitted_orbit l - L25
apply scaled_inverse_prefix_choose_omitted_orbit
04Use earlier factsL26–30
05Separate the logical casesL31–32
06Establish hpartsL33–34
Establish this local claim before using it. It is not an additional assumption.
- L33
have hparts : Lt(x,n) ∧ (¬ContainsPrefix(b,c,l,x) ∧ (Lt(x1,n) ∧ (¬x = x1 ∧ (BetaAt(u,v,x,S x1) ∧ BetaAt(u,v,x1,S x)))))Definitions: LtBetaAtContainsPrefix - L34
exact hchosen_witness_witness
07Separate the logical casesL35–39
08Establish hjomitL40–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply scaled orbit closed unused mate.
- L40
have 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))))) - L41
intro hjcontains - L42
specialize scaled_orbit_closed_unused_mate u - L43
specialize scaled_orbit_closed_unused_mate v - L44
specialize scaled_orbit_closed_unused_mate b - L45
specialize scaled_orbit_closed_unused_mate c - L46
specialize scaled_orbit_closed_unused_mate l - L47
specialize scaled_orbit_closed_unused_mate x - L48
specialize scaled_orbit_closed_unused_mate x1 - L49
apply scaled_orbit_closed_unused_mate
09Use earlier factsL50–53
10Establish happendL54–60
Establish this local claim before using it. It is not an additional assumption.
11Separate the logical casesL61–62
12Establish hclosed_afterL63–72
Establish this local claim before using it. It is not an additional assumption.
- L63
have hclosed_after : ∀ espo_position_witness_closed_after. ∀ espo_source_witness_closed_after. ∀ espo_mate_witness_closed_after. Lt(espo_position_witness_closed_after,S S l) → BetaAt(x2,x3,espo_position_witness_closed_after,espo_source_witness_closed_after) → BetaAt(u,v,espo_source_witness_closed_after,S espo_mate_witness_closed_after) → ContainsPrefix(x2,x3,S S l,espo_mate_witness_closed_after)Definitions: LtBetaAtContainsPrefix - L64
specialize beta_prefix_append_two_scaled_orbit_closed u - L65
specialize beta_prefix_append_two_scaled_orbit_closed v - L66
specialize beta_prefix_append_two_scaled_orbit_closed b - L67
specialize beta_prefix_append_two_scaled_orbit_closed c - L68
specialize beta_prefix_append_two_scaled_orbit_closed x2 - L69
specialize beta_prefix_append_two_scaled_orbit_closed x3 - L70
specialize beta_prefix_append_two_scaled_orbit_closed l - L71
specialize beta_prefix_append_two_scaled_orbit_closed x - L72
specialize beta_prefix_append_two_scaled_orbit_closed x1
13Use earlier factsL73–77
14Establish hinjective_afterL78–87
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix append two injective.
- L78
have hinjective_after : InjectivePrefix(x2,x3,S S l)Definitions: InjectivePrefix - L79
specialize beta_prefix_append_two_injective b - L80
specialize beta_prefix_append_two_injective c - L81
specialize beta_prefix_append_two_injective x2 - L82
specialize beta_prefix_append_two_injective x3 - L83
specialize beta_prefix_append_two_injective l - L84
specialize beta_prefix_append_two_injective x - L85
specialize beta_prefix_append_two_injective x1 - L86
apply beta_prefix_append_two_injective - L87
exact happend_witness_witness
15Use earlier factsL88–91
16Construct an explicit witnessL92–95
17Separate the logical casesL96–96
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L96
split
18Use earlier factsL97–97
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L97
exact happend_witness_witness
19Separate the logical casesL98–98
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L98
split
20Use earlier factsL99–99
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L99
exact hparts_left
21Separate the logical casesL100–100
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L100
split
22Use earlier factsL101–101
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L101
exact hparts_right_right_left
23Separate the logical casesL102–102
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L102
split
24Use earlier factsL103–103
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L103
exact hparts_right_left
25Separate the logical casesL104–104
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L104
split
26Use earlier factsL105–105
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L105
exact hjomit
27Separate the logical casesL106–106
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L106
split
28Use earlier factsL107–107
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L107
exact hparts_right_right_right_left
29Separate the logical casesL108–108
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L108
split
30Use earlier factsL109–109
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L109
exact hparts_right_right_right_right_left
31Separate the logical casesL110–110
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L110
split
32Use earlier factsL111–111
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L111
exact hparts_right_right_right_right_right
33Separate the logical casesL112–112
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L112
split
Original exact command ledger · 114 lines
- 0001
intro p - 0002
intro a - 0003
intro n - 0004
intro u - 0005
intro v - 0006
intro b - 0007
intro c - 0008
intro l - 0009
intro hpn - 0010
intro hp - 0011
intro hnotqres - 0012
intro hprefix - 0013
intro hshort - 0014
intro hclosed - 0015
intro hinjective - 0016
have 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)))))))))))) - 0017
specialize scaled_inverse_prefix_choose_omitted_orbit p - 0018
specialize scaled_inverse_prefix_choose_omitted_orbit a - 0019
specialize scaled_inverse_prefix_choose_omitted_orbit n - 0020
specialize scaled_inverse_prefix_choose_omitted_orbit u - 0021
specialize scaled_inverse_prefix_choose_omitted_orbit v - 0022
specialize scaled_inverse_prefix_choose_omitted_orbit b - 0023
specialize scaled_inverse_prefix_choose_omitted_orbit c - 0024
specialize scaled_inverse_prefix_choose_omitted_orbit l - 0025
apply scaled_inverse_prefix_choose_omitted_orbit - 0026
exact hpn - 0027
exact hp - 0028
exact hnotqres - 0029
exact hprefix - 0030
exact hshort - 0031
cases hchosen - 0032
cases hchosen_witness - 0033
have 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)))))))))))) - 0034
exact hchosen_witness_witness - 0035
cases hparts - 0036
cases hparts_right - 0037
cases hparts_right_right - 0038
cases hparts_right_right_right - 0039
cases hparts_right_right_right_right - 0040
have 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))))) - 0041
intro hjcontains - 0042
specialize scaled_orbit_closed_unused_mate u - 0043
specialize scaled_orbit_closed_unused_mate v - 0044
specialize scaled_orbit_closed_unused_mate b - 0045
specialize scaled_orbit_closed_unused_mate c - 0046
specialize scaled_orbit_closed_unused_mate l - 0047
specialize scaled_orbit_closed_unused_mate x - 0048
specialize scaled_orbit_closed_unused_mate x1 - 0049
apply scaled_orbit_closed_unused_mate - 0050
exact hclosed - 0051
exact hparts_right_left - 0052
exact hparts_right_right_right_right_right - 0053
exact hjcontains - 0054
have 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))))))) - 0055
specialize beta_prefix_append_two_exists b - 0056
specialize beta_prefix_append_two_exists c - 0057
specialize beta_prefix_append_two_exists l - 0058
specialize beta_prefix_append_two_exists x - 0059
specialize beta_prefix_append_two_exists x1 - 0060
exact beta_prefix_append_two_exists - 0061
cases happend - 0062
cases happend_witness - 0063
have 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)))) - 0064
specialize beta_prefix_append_two_scaled_orbit_closed u - 0065
specialize beta_prefix_append_two_scaled_orbit_closed v - 0066
specialize beta_prefix_append_two_scaled_orbit_closed b - 0067
specialize beta_prefix_append_two_scaled_orbit_closed c - 0068
specialize beta_prefix_append_two_scaled_orbit_closed x2 - 0069
specialize beta_prefix_append_two_scaled_orbit_closed x3 - 0070
specialize beta_prefix_append_two_scaled_orbit_closed l - 0071
specialize beta_prefix_append_two_scaled_orbit_closed x - 0072
specialize beta_prefix_append_two_scaled_orbit_closed x1 - 0073
apply beta_prefix_append_two_scaled_orbit_closed - 0074
exact happend_witness_witness - 0075
exact hclosed - 0076
exact hparts_right_right_right_right_left - 0077
exact hparts_right_right_right_right_right - 0078
have 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 - 0079
specialize beta_prefix_append_two_injective b - 0080
specialize beta_prefix_append_two_injective c - 0081
specialize beta_prefix_append_two_injective x2 - 0082
specialize beta_prefix_append_two_injective x3 - 0083
specialize beta_prefix_append_two_injective l - 0084
specialize beta_prefix_append_two_injective x - 0085
specialize beta_prefix_append_two_injective x1 - 0086
apply beta_prefix_append_two_injective - 0087
exact happend_witness_witness - 0088
exact hinjective - 0089
exact hparts_right_left - 0090
exact hjomit - 0091
exact hparts_right_right_right_left - 0092
exists x2 - 0093
exists x3 - 0094
exists x - 0095
exists x1 - 0096
split - 0097
exact happend_witness_witness - 0098
split - 0099
exact hparts_left - 0100
split - 0101
exact hparts_right_right_left - 0102
split - 0103
exact hparts_right_left - 0104
split - 0105
exact hjomit - 0106
split - 0107
exact hparts_right_right_right_left - 0108
split - 0109
exact hparts_right_right_right_right_left - 0110
split - 0111
exact hparts_right_right_right_right_right - 0112
split - 0113
exact hclosed_after - 0114
exact hinjective_after