PA00B0 · theorem

prime_pair_order_paired_state_step

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

Preserve the bounded PairOrder state and every adjacent inverse-pair witness through one append.

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.

Statement with defined notation

∀ p. ∀ n. ∀ u. ∀ v. ∀ b. ∀ c. ∀ m. ∀ r. p = S n → Prime(p)InversePrefix(p,n,u,v,n) → n = S r → Lt(S S (m + m),n) → (∀ x. ∀ y. ∀ z. Lt(x,m + m)BetaAt(b,c,x,y)BetaAt(u,v,y,z)ContainsPrefix(b,c,m + m,z)) ∧ ((∀ x. Lt(x,m + m) → ∃ y. BetaAt(b,c,x,y)Lt(y,n)) ∧ ((∀ x. ∀ y. Lt(x,m + m)BetaAt(b,c,x,y) → ¬y = 0 ∧ ¬S y = n) ∧ InjectivePrefix(b,c,m + m))) → (∀ x. Lt(x,m) → ∃ y. ∃ z. BetaAt(b,c,x + x,y) ∧ (BetaAt(b,c,S (x + x),z)BetaAt(u,v,y,z))) → ∃ x. ∃ y. (∀ z. ∀ k. ∀ i. Lt(z,S S (m + m))BetaAt(x,y,z,k)BetaAt(u,v,k,i)ContainsPrefix(x,y,S S (m + m),i)) ∧ ((∀ z. Lt(z,S S (m + m)) → ∃ k. BetaAt(x,y,z,k)Lt(k,n)) ∧ ((∀ z. ∀ k. Lt(z,S S (m + m))BetaAt(x,y,z,k) → ¬k = 0 ∧ ¬S k = n) ∧ InjectivePrefix(x,y,S S (m + m)))) ∧ (∀ z. Lt(z,S m) → ∃ k. ∃ i. BetaAt(x,y,z + z,k) ∧ (BetaAt(x,y,S (z + z),i)BetaAt(u,v,k,i)))

Every purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.

Definitions used by this theorem

In the theorem statement

31 occurrences

In local proof propositions

46 occurrences

Exact expanded native-PA statement
forall p n u v b c m r. p = S n -> ((~(p = 1) /\ forall wip_prime_left_wpopi_prime wip_prime_right_wpopi_prime. p = wip_prime_left_wpopi_prime * wip_prime_right_wpopi_prime -> wip_prime_left_wpopi_prime = 1 \/ wip_prime_right_wpopi_prime = 1)) -> (forall wip_index_wpopi_inverse. (exists wip_gap_wpopi_inverse_prefix_bound. wip_gap_wpopi_inverse_prefix_bound + S wip_index_wpopi_inverse = n) -> exists wip_mate_wpopi_inverse. ((((exists wip_beta_height_wpopi_inverse_decoded. wip_beta_height_wpopi_inverse_decoded + S (wip_mate_wpopi_inverse) = S ((S (wip_index_wpopi_inverse)) * v)) /\ exists wip_beta_quotient_wpopi_inverse_decoded. u = wip_beta_quotient_wpopi_inverse_decoded * S ((S (wip_index_wpopi_inverse)) * v) + (wip_mate_wpopi_inverse))) /\ ((exists wip_gap_wpopi_inverse_inverse_index_bound. wip_gap_wpopi_inverse_inverse_index_bound + S wip_index_wpopi_inverse = n) /\ ((exists wip_gap_wpopi_inverse_inverse_mate_bound. wip_gap_wpopi_inverse_inverse_mate_bound + S wip_mate_wpopi_inverse = n) /\ (exists wip_mod_left_wpopi_inverse_inverse_mod wip_mod_right_wpopi_inverse_inverse_mod. ((S wip_index_wpopi_inverse) * S wip_mate_wpopi_inverse) + p * wip_mod_left_wpopi_inverse_inverse_mod = 1 + p * wip_mod_right_wpopi_inverse_inverse_mod))))) -> n = S r -> (exists h. h + S (S (S (m + m))) = n) -> (((forall wpo_position_wpopi_old_state_closed wpo_source_wpopi_old_state_closed wpo_mate_wpopi_old_state_closed. (exists wpo_gap_wpopi_old_state_closed_position_bound. wpo_gap_wpopi_old_state_closed_position_bound + S (wpo_position_wpopi_old_state_closed) = (m + m)) -> (((exists wpo_beta_height_wpopi_old_state_closed_source_entry. wpo_beta_height_wpopi_old_state_closed_source_entry + S (wpo_source_wpopi_old_state_closed) = S ((S (wpo_position_wpopi_old_state_closed)) * c)) /\ exists wpo_beta_quotient_wpopi_old_state_closed_source_entry. b = wpo_beta_quotient_wpopi_old_state_closed_source_entry * S ((S (wpo_position_wpopi_old_state_closed)) * c) + (wpo_source_wpopi_old_state_closed))) -> (((exists wpo_beta_height_wpopi_old_state_closed_inverse_entry. wpo_beta_height_wpopi_old_state_closed_inverse_entry + S (wpo_mate_wpopi_old_state_closed) = S ((S (wpo_source_wpopi_old_state_closed)) * v)) /\ exists wpo_beta_quotient_wpopi_old_state_closed_inverse_entry. u = wpo_beta_quotient_wpopi_old_state_closed_inverse_entry * S ((S (wpo_source_wpopi_old_state_closed)) * v) + (wpo_mate_wpopi_old_state_closed))) -> exists wpo_mate_position_wpopi_old_state_closed. ((exists wpo_gap_wpopi_old_state_closed_mate_bound. wpo_gap_wpopi_old_state_closed_mate_bound + S (wpo_mate_position_wpopi_old_state_closed) = (m + m)) /\ (((exists wpo_beta_height_wpopi_old_state_closed_mate_entry. wpo_beta_height_wpopi_old_state_closed_mate_entry + S (wpo_mate_wpopi_old_state_closed) = S ((S (wpo_mate_position_wpopi_old_state_closed)) * c)) /\ exists wpo_beta_quotient_wpopi_old_state_closed_mate_entry. b = wpo_beta_quotient_wpopi_old_state_closed_mate_entry * S ((S (wpo_mate_position_wpopi_old_state_closed)) * c) + (wpo_mate_wpopi_old_state_closed))))) /\ ((forall fom_index_wpopi_old_state_bounded. (exists fom_gap_wpopi_old_state_bounded_index_bound. fom_gap_wpopi_old_state_bounded_index_bound + S (fom_index_wpopi_old_state_bounded) = (m + m)) -> exists fom_value_wpopi_old_state_bounded. ((((exists fom_beta_height_wpopi_old_state_bounded_entry. fom_beta_height_wpopi_old_state_bounded_entry + S (fom_value_wpopi_old_state_bounded) = S ((S (fom_index_wpopi_old_state_bounded)) * c)) /\ exists fom_beta_quotient_wpopi_old_state_bounded_entry. b = fom_beta_quotient_wpopi_old_state_bounded_entry * S ((S (fom_index_wpopi_old_state_bounded)) * c) + (fom_value_wpopi_old_state_bounded))) /\ (exists fom_gap_wpopi_old_state_bounded_value_bound. fom_gap_wpopi_old_state_bounded_value_bound + S (fom_value_wpopi_old_state_bounded) = n))) /\ ((forall wpo_position_wpopi_old_state_nonendpoint wpo_value_wpopi_old_state_nonendpoint. (exists wpo_gap_wpopi_old_state_nonendpoint_position_bound. wpo_gap_wpopi_old_state_nonendpoint_position_bound + S (wpo_position_wpopi_old_state_nonendpoint) = (m + m)) -> (((exists wpo_beta_height_wpopi_old_state_nonendpoint_entry. wpo_beta_height_wpopi_old_state_nonendpoint_entry + S (wpo_value_wpopi_old_state_nonendpoint) = S ((S (wpo_position_wpopi_old_state_nonendpoint)) * c)) /\ exists wpo_beta_quotient_wpopi_old_state_nonendpoint_entry. b = wpo_beta_quotient_wpopi_old_state_nonendpoint_entry * S ((S (wpo_position_wpopi_old_state_nonendpoint)) * c) + (wpo_value_wpopi_old_state_nonendpoint))) -> (~(wpo_value_wpopi_old_state_nonendpoint = 0) /\ ~((S wpo_value_wpopi_old_state_nonendpoint) = n))) /\ (forall wpo_injective_left_wpopi_old_state_injective wpo_injective_right_wpopi_old_state_injective wpo_injective_value_wpopi_old_state_injective. (exists wpo_gap_wpopi_old_state_injective_left_bound. wpo_gap_wpopi_old_state_injective_left_bound + S (wpo_injective_left_wpopi_old_state_injective) = (m + m)) -> (exists wpo_gap_wpopi_old_state_injective_right_bound. wpo_gap_wpopi_old_state_injective_right_bound + S (wpo_injective_right_wpopi_old_state_injective) = (m + m)) -> (((exists wpo_beta_height_wpopi_old_state_injective_left_entry. wpo_beta_height_wpopi_old_state_injective_left_entry + S (wpo_injective_value_wpopi_old_state_injective) = S ((S (wpo_injective_left_wpopi_old_state_injective)) * c)) /\ exists wpo_beta_quotient_wpopi_old_state_injective_left_entry. b = wpo_beta_quotient_wpopi_old_state_injective_left_entry * S ((S (wpo_injective_left_wpopi_old_state_injective)) * c) + (wpo_injective_value_wpopi_old_state_injective))) -> (((exists wpo_beta_height_wpopi_old_state_injective_right_entry. wpo_beta_height_wpopi_old_state_injective_right_entry + S (wpo_injective_value_wpopi_old_state_injective) = S ((S (wpo_injective_right_wpopi_old_state_injective)) * c)) /\ exists wpo_beta_quotient_wpopi_old_state_injective_right_entry. b = wpo_beta_quotient_wpopi_old_state_injective_right_entry * S ((S (wpo_injective_right_wpopi_old_state_injective)) * c) + (wpo_injective_value_wpopi_old_state_injective))) -> wpo_injective_left_wpopi_old_state_injective = wpo_injective_right_wpopi_old_state_injective))))) -> (forall wpop_pair_wpop_old_pairs. (exists wpo_gap_wpop_old_pairs_pair_bound. wpo_gap_wpop_old_pairs_pair_bound + S (wpop_pair_wpop_old_pairs) = m) -> exists wpop_left_wpop_old_pairs wpop_right_wpop_old_pairs. ((((exists wpo_beta_height_wpop_old_pairs_left_entry. wpo_beta_height_wpop_old_pairs_left_entry + S (wpop_left_wpop_old_pairs) = S ((S (wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs)) * c)) /\ exists wpo_beta_quotient_wpop_old_pairs_left_entry. b = wpo_beta_quotient_wpop_old_pairs_left_entry * S ((S (wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs)) * c) + (wpop_left_wpop_old_pairs))) /\ ((((exists wpo_beta_height_wpop_old_pairs_right_entry. wpo_beta_height_wpop_old_pairs_right_entry + S (wpop_right_wpop_old_pairs) = S ((S (S (wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs))) * c)) /\ exists wpo_beta_quotient_wpop_old_pairs_right_entry. b = wpo_beta_quotient_wpop_old_pairs_right_entry * S ((S (S (wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs))) * c) + (wpop_right_wpop_old_pairs))) /\ (((exists wpo_beta_height_wpop_old_pairs_inverse_entry. wpo_beta_height_wpop_old_pairs_inverse_entry + S (wpop_right_wpop_old_pairs) = S ((S (wpop_left_wpop_old_pairs)) * v)) /\ exists wpo_beta_quotient_wpop_old_pairs_inverse_entry. u = wpo_beta_quotient_wpop_old_pairs_inverse_entry * S ((S (wpop_left_wpop_old_pairs)) * v) + (wpop_right_wpop_old_pairs)))))) -> (exists z d. ((((forall wpo_position_wpopi_next_state_closed wpo_source_wpopi_next_state_closed wpo_mate_wpopi_next_state_closed. (exists wpo_gap_wpopi_next_state_closed_position_bound. wpo_gap_wpopi_next_state_closed_position_bound + S (wpo_position_wpopi_next_state_closed) = S (S (m + m))) -> (((exists wpo_beta_height_wpopi_next_state_closed_source_entry. wpo_beta_height_wpopi_next_state_closed_source_entry + S (wpo_source_wpopi_next_state_closed) = S ((S (wpo_position_wpopi_next_state_closed)) * d)) /\ exists wpo_beta_quotient_wpopi_next_state_closed_source_entry. z = wpo_beta_quotient_wpopi_next_state_closed_source_entry * S ((S (wpo_position_wpopi_next_state_closed)) * d) + (wpo_source_wpopi_next_state_closed))) -> (((exists wpo_beta_height_wpopi_next_state_closed_inverse_entry. wpo_beta_height_wpopi_next_state_closed_inverse_entry + S (wpo_mate_wpopi_next_state_closed) = S ((S (wpo_source_wpopi_next_state_closed)) * v)) /\ exists wpo_beta_quotient_wpopi_next_state_closed_inverse_entry. u = wpo_beta_quotient_wpopi_next_state_closed_inverse_entry * S ((S (wpo_source_wpopi_next_state_closed)) * v) + (wpo_mate_wpopi_next_state_closed))) -> exists wpo_mate_position_wpopi_next_state_closed. ((exists wpo_gap_wpopi_next_state_closed_mate_bound. wpo_gap_wpopi_next_state_closed_mate_bound + S (wpo_mate_position_wpopi_next_state_closed) = S (S (m + m))) /\ (((exists wpo_beta_height_wpopi_next_state_closed_mate_entry. wpo_beta_height_wpopi_next_state_closed_mate_entry + S (wpo_mate_wpopi_next_state_closed) = S ((S (wpo_mate_position_wpopi_next_state_closed)) * d)) /\ exists wpo_beta_quotient_wpopi_next_state_closed_mate_entry. z = wpo_beta_quotient_wpopi_next_state_closed_mate_entry * S ((S (wpo_mate_position_wpopi_next_state_closed)) * d) + (wpo_mate_wpopi_next_state_closed))))) /\ ((forall fom_index_wpopi_next_state_bounded. (exists fom_gap_wpopi_next_state_bounded_index_bound. fom_gap_wpopi_next_state_bounded_index_bound + S (fom_index_wpopi_next_state_bounded) = S (S (m + m))) -> exists fom_value_wpopi_next_state_bounded. ((((exists fom_beta_height_wpopi_next_state_bounded_entry. fom_beta_height_wpopi_next_state_bounded_entry + S (fom_value_wpopi_next_state_bounded) = S ((S (fom_index_wpopi_next_state_bounded)) * d)) /\ exists fom_beta_quotient_wpopi_next_state_bounded_entry. z = fom_beta_quotient_wpopi_next_state_bounded_entry * S ((S (fom_index_wpopi_next_state_bounded)) * d) + (fom_value_wpopi_next_state_bounded))) /\ (exists fom_gap_wpopi_next_state_bounded_value_bound. fom_gap_wpopi_next_state_bounded_value_bound + S (fom_value_wpopi_next_state_bounded) = n))) /\ ((forall wpo_position_wpopi_next_state_nonendpoint wpo_value_wpopi_next_state_nonendpoint. (exists wpo_gap_wpopi_next_state_nonendpoint_position_bound. wpo_gap_wpopi_next_state_nonendpoint_position_bound + S (wpo_position_wpopi_next_state_nonendpoint) = S (S (m + m))) -> (((exists wpo_beta_height_wpopi_next_state_nonendpoint_entry. wpo_beta_height_wpopi_next_state_nonendpoint_entry + S (wpo_value_wpopi_next_state_nonendpoint) = S ((S (wpo_position_wpopi_next_state_nonendpoint)) * d)) /\ exists wpo_beta_quotient_wpopi_next_state_nonendpoint_entry. z = wpo_beta_quotient_wpopi_next_state_nonendpoint_entry * S ((S (wpo_position_wpopi_next_state_nonendpoint)) * d) + (wpo_value_wpopi_next_state_nonendpoint))) -> (~(wpo_value_wpopi_next_state_nonendpoint = 0) /\ ~((S wpo_value_wpopi_next_state_nonendpoint) = n))) /\ (forall wpo_injective_left_wpopi_next_state_injective wpo_injective_right_wpopi_next_state_injective wpo_injective_value_wpopi_next_state_injective. (exists wpo_gap_wpopi_next_state_injective_left_bound. wpo_gap_wpopi_next_state_injective_left_bound + S (wpo_injective_left_wpopi_next_state_injective) = S (S (m + m))) -> (exists wpo_gap_wpopi_next_state_injective_right_bound. wpo_gap_wpopi_next_state_injective_right_bound + S (wpo_injective_right_wpopi_next_state_injective) = S (S (m + m))) -> (((exists wpo_beta_height_wpopi_next_state_injective_left_entry. wpo_beta_height_wpopi_next_state_injective_left_entry + S (wpo_injective_value_wpopi_next_state_injective) = S ((S (wpo_injective_left_wpopi_next_state_injective)) * d)) /\ exists wpo_beta_quotient_wpopi_next_state_injective_left_entry. z = wpo_beta_quotient_wpopi_next_state_injective_left_entry * S ((S (wpo_injective_left_wpopi_next_state_injective)) * d) + (wpo_injective_value_wpopi_next_state_injective))) -> (((exists wpo_beta_height_wpopi_next_state_injective_right_entry. wpo_beta_height_wpopi_next_state_injective_right_entry + S (wpo_injective_value_wpopi_next_state_injective) = S ((S (wpo_injective_right_wpopi_next_state_injective)) * d)) /\ exists wpo_beta_quotient_wpopi_next_state_injective_right_entry. z = wpo_beta_quotient_wpopi_next_state_injective_right_entry * S ((S (wpo_injective_right_wpopi_next_state_injective)) * d) + (wpo_injective_value_wpopi_next_state_injective))) -> wpo_injective_left_wpopi_next_state_injective = wpo_injective_right_wpopi_next_state_injective))))) /\ (forall wpop_pair_wpop_new_pairs. (exists wpo_gap_wpop_new_pairs_pair_bound. wpo_gap_wpop_new_pairs_pair_bound + S (wpop_pair_wpop_new_pairs) = S m) -> exists wpop_left_wpop_new_pairs wpop_right_wpop_new_pairs. ((((exists wpo_beta_height_wpop_new_pairs_left_entry. wpo_beta_height_wpop_new_pairs_left_entry + S (wpop_left_wpop_new_pairs) = S ((S (wpop_pair_wpop_new_pairs + wpop_pair_wpop_new_pairs)) * d)) /\ exists wpo_beta_quotient_wpop_new_pairs_left_entry. z = wpo_beta_quotient_wpop_new_pairs_left_entry * S ((S (wpop_pair_wpop_new_pairs + wpop_pair_wpop_new_pairs)) * d) + (wpop_left_wpop_new_pairs))) /\ ((((exists wpo_beta_height_wpop_new_pairs_right_entry. wpo_beta_height_wpop_new_pairs_right_entry + S (wpop_right_wpop_new_pairs) = S ((S (S (wpop_pair_wpop_new_pairs + wpop_pair_wpop_new_pairs))) * d)) /\ exists wpo_beta_quotient_wpop_new_pairs_right_entry. z = wpo_beta_quotient_wpop_new_pairs_right_entry * S ((S (S (wpop_pair_wpop_new_pairs + wpop_pair_wpop_new_pairs))) * d) + (wpop_right_wpop_new_pairs))) /\ (((exists wpo_beta_height_wpop_new_pairs_inverse_entry. wpo_beta_height_wpop_new_pairs_inverse_entry + S (wpop_right_wpop_new_pairs) = S ((S (wpop_left_wpop_new_pairs)) * v)) /\ exists wpo_beta_quotient_wpop_new_pairs_inverse_entry. u = wpo_beta_quotient_wpop_new_pairs_inverse_entry * S ((S (wpop_left_wpop_new_pairs)) * v) + (wpop_right_wpop_new_pairs))))))))

Proof neighborhood

Direct theorem prerequisites

Direct theorem dependents

Definition-aware tactic body

Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed command.

Read the argument

Proof checkpoints

81 script commands · 18 reading checkpoints · 3 local claims

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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (2)
01Fix variables and assumptionsL1–10

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro p
  2. L2
    intro n
  3. L3
    intro u
  4. L4
    intro v
  5. L5
    intro b
  6. L6
    intro c
  7. L7
    intro m
  8. L8
    intro r
  9. L9
    intro hpn
  10. L10
    intro hp
02Fix variables and assumptionsL11–15

Work with arbitrary variables or the premises of the current implication.

  1. L11
    intro hprefix
  2. L12
    intro hnr
  3. L13
    intro hroom
  4. L14
    intro hstate
  5. L15
    intro hhistory
03Separate the logical casesL16–18

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L16
    cases hstate
  2. L17
    cases hstate_right
  3. L18
    cases hstate_right_right
04Establish hstepL19–28

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime pair order choose append state.

  1. L19
    have hstep · expand full local formula (605 characters)have hstep : ∃ z. ∃ d. ∃ i. ∃ j. BetaAt(z,d,m + m,i) ∧ (BetaAt(z,d,S (m + m),j) ∧ (∀ x. ∀ y. Lt(x,m + m) → BetaAt(b,c,x,y) → BetaAt(z,d,x,y))) ∧ (Lt(i,n) ∧ (¬i = 0 ∧ ¬S i = n ∧ (¬ContainsPrefix(b,c,m + m,i) ∧ (BetaAt(u,v,i,j) ∧ (Lt(j,n) ∧ (¬j = 0 ∧ ¬S j = n ∧ (¬i = j ∧ (BetaAt(u,v,j,i) ∧ (¬ContainsPrefix(b,c,m + m,j) ∧ ((∀ x. ∀ y. ∀ k. Lt(x,S S (m + m)) → BetaAt(z,d,x,y) → BetaAt(u,v,y,k) → ContainsPrefix(z,d,S S (m + m),k)) ∧ (∀ x. ∀ y. Lt(x,S S (m + m)) → BetaAt(z,d,x,y) → ¬y = 0 ∧ ¬S y = n))))))))))) ∧ ((∀ x. Lt(x,S S (m + m)) → ∃ y. BetaAt(z,d,x,y) ∧ Lt(y,n)) ∧ InjectivePrefix(z,d,S S (m + m)))
    Definitions: BetaAt(z,d,m + m,i)BetaAt(z,d,S (m + m),j)Lt(x,m + m)BetaAt(b,c,x,y)BetaAt(z,d,x,y)Lt(i,n)ContainsPrefix(b,c,m + m,i)BetaAt(u,v,i,j)Lt(j,n)BetaAt(u,v,j,i)ContainsPrefix(b,c,m + m,j)Lt(x,S S (m + m))BetaAt(u,v,y,k)ContainsPrefix(z,d,S S (m + m),k)Lt(y,n)InjectivePrefix(z,d,S S (m + m))Original native command in the exact edition
  2. L20
    specialize prime_pair_order_choose_append_state p
  3. L21
    specialize prime_pair_order_choose_append_state n
  4. L22
    specialize prime_pair_order_choose_append_state u
  5. L23
    specialize prime_pair_order_choose_append_state v
  6. L24
    specialize prime_pair_order_choose_append_state b
  7. L25
    specialize prime_pair_order_choose_append_state c
  8. L26
    specialize prime_pair_order_choose_append_state (m + m)
  9. L27
    specialize prime_pair_order_choose_append_state r
  10. L28
    apply prime_pair_order_choose_append_state
05Use earlier factsL29–37

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L29
    exact hpn
  2. L30
    exact hp
  3. L31
    exact hprefix
  4. L32
    exact hnr
  5. L33
    exact hroom
  6. L34
    exact hstate_left
  7. L35
    exact hstate_right_left
  8. L36
    exact hstate_right_right_left
  9. L37
    exact hstate_right_right_right
06Separate the logical casesL38–41

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L38
    cases hstep
  2. L39
    cases hstep_witness
  3. L40
    cases hstep_witness_witness
  4. L41
    cases hstep_witness_witness_witness
07Establish hcombinedL42–43

Establish this local claim before using it. It is not an additional assumption.

  1. L42
    have hcombined · expand full local formula (613 characters)have hcombined : BetaAt(x,x1,m + m,x2) ∧ (BetaAt(x,x1,S (m + m),x3) ∧ (∀ y. ∀ z. Lt(y,m + m) → BetaAt(b,c,y,z) → BetaAt(x,x1,y,z))) ∧ (Lt(x2,n) ∧ (¬x2 = 0 ∧ ¬S x2 = n ∧ (¬ContainsPrefix(b,c,m + m,x2) ∧ (BetaAt(u,v,x2,x3) ∧ (Lt(x3,n) ∧ (¬x3 = 0 ∧ ¬S x3 = n ∧ (¬x2 = x3 ∧ (BetaAt(u,v,x3,x2) ∧ (¬ContainsPrefix(b,c,m + m,x3) ∧ ((∀ y. ∀ z. ∀ k. Lt(y,S S (m + m)) → BetaAt(x,x1,y,z) → BetaAt(u,v,z,k) → ContainsPrefix(x,x1,S S (m + m),k)) ∧ (∀ y. ∀ z. Lt(y,S S (m + m)) → BetaAt(x,x1,y,z) → ¬z = 0 ∧ ¬S z = n))))))))))) ∧ ((∀ y. Lt(y,S S (m + m)) → ∃ z. BetaAt(x,x1,y,z) ∧ Lt(z,n)) ∧ InjectivePrefix(x,x1,S S (m + m)))
    Definitions: BetaAt(x,x1,m + m,x2)BetaAt(x,x1,S (m + m),x3)Lt(y,m + m)BetaAt(b,c,y,z)BetaAt(x,x1,y,z)Lt(x2,n)ContainsPrefix(b,c,m + m,x2)BetaAt(u,v,x2,x3)Lt(x3,n)BetaAt(u,v,x3,x2)ContainsPrefix(b,c,m + m,x3)Lt(y,S S (m + m))BetaAt(u,v,z,k)ContainsPrefix(x,x1,S S (m + m),k)Lt(z,n)InjectivePrefix(x,x1,S S (m + m))Original native command in the exact edition
  2. L43
    exact hstep_witness_witness_witness_witness
08Separate the logical casesL44–53

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L44
    cases hcombined
  2. L45
    cases hcombined_right
  3. L46
    cases hcombined_left
  4. L47
    cases hcombined_left_right
  5. L48
    cases hcombined_left_right_right
  6. L49
    cases hcombined_left_right_right_right
  7. L50
    cases hcombined_left_right_right_right_right
  8. L51
    cases hcombined_left_right_right_right_right_right
  9. L52
    cases hcombined_left_right_right_right_right_right_right
  10. L53
    cases hcombined_left_right_right_right_right_right_right_right
09Separate the logical casesL54–56

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L54
    cases hcombined_left_right_right_right_right_right_right_right_right
  2. L55
    cases hcombined_left_right_right_right_right_right_right_right_right_right
  3. L56
    cases hcombined_left_right_right_right_right_right_right_right_right_right_right
10Establish hnew_historyL57–66

Establish this local claim before using it. It is not an additional assumption.

  1. L57
    have hnew_history : ∀ wpop_pair_wpopi_new_history_x. Lt(wpop_pair_wpopi_new_history_x,S m) → ∃ y. ∃ z. BetaAt(x,x1,wpop_pair_wpopi_new_history_x + wpop_pair_wpopi_new_history_x,y) ∧ (BetaAt(x,x1,S (wpop_pair_wpopi_new_history_x + wpop_pair_wpopi_new_history_x),z) ∧ BetaAt(u,v,y,z))Definitions: Lt(wpop_pair_wpopi_new_history_x,S m)BetaAt(x,x1,wpop_pair_wpopi_new_history_x + wpop_pair_wpopi_new_history_x,y)BetaAt(x,x1,S (wpop_pair_wpopi_new_history_x + wpop_pair_wpopi_new_history_x),z)BetaAt(u,v,y,z)Original native command in the exact edition
  2. L58
    specialize paired_inverse_witness_append u
  3. L59
    specialize paired_inverse_witness_append v
  4. L60
    specialize paired_inverse_witness_append b
  5. L61
    specialize paired_inverse_witness_append c
  6. L62
    specialize paired_inverse_witness_append x
  7. L63
    specialize paired_inverse_witness_append x1
  8. L64
    specialize paired_inverse_witness_append m
  9. L65
    specialize paired_inverse_witness_append x2
  10. L66
    specialize paired_inverse_witness_append x3
11Use earlier factsL67–70

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L67
    apply paired_inverse_witness_append
  2. L68
    exact hhistory
  3. L69
    exact hcombined_left_left
  4. L70
    exact hcombined_left_right_right_right_right_left
12Construct an explicit witnessL71–72

Supply the displayed value, then prove that it has the required property.

  1. L71
    exists x
  2. L72
    exists x1
13Separate the logical casesL73–74

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L73
    split
  2. L74
    split
14Use earlier factsL75–75

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L75
    exact hcombined_left_right_right_right_right_right_right_right_right_right_right_left
15Separate the logical casesL76–76

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L76
    split
16Use earlier factsL77–77

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L77
    exact hcombined_right_left
17Separate the logical casesL78–78

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L78
    split
18Use earlier factsL79–81

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L79
    exact hcombined_left_right_right_right_right_right_right_right_right_right_right_right
  2. L80
    exact hcombined_right_right
  3. L81
    exact hnew_history

Library-wide reading audit

Original defined command ledger · 81 lines
  1. 0001intro p
  2. 0002intro n
  3. 0003intro u
  4. 0004intro v
  5. 0005intro b
  6. 0006intro c
  7. 0007intro m
  8. 0008intro r
  9. 0009intro hpn
  10. 0010intro hp
  11. 0011intro hprefix
  12. 0012intro hnr
  13. 0013intro hroom
  14. 0014intro hstate
  15. 0015intro hhistory
  16. 0016cases hstate
  17. 0017cases hstate_right
  18. 0018cases hstate_right_right
  19. 0019have hstep : ∃ z. ∃ d. ∃ i. ∃ j. BetaAt(z,d,m + m,i) ∧ (BetaAt(z,d,S (m + m),j) ∧ (∀ x. ∀ y. Lt(x,m + m)BetaAt(b,c,x,y)BetaAt(z,d,x,y))) ∧ (Lt(i,n) ∧ (¬i = 0 ∧ ¬S i = n ∧ (¬ContainsPrefix(b,c,m + m,i) ∧ (BetaAt(u,v,i,j) ∧ (Lt(j,n) ∧ (¬j = 0 ∧ ¬S j = n ∧ (¬i = j ∧ (BetaAt(u,v,j,i) ∧ (¬ContainsPrefix(b,c,m + m,j) ∧ ((∀ x. ∀ y. ∀ k. Lt(x,S S (m + m))BetaAt(z,d,x,y)BetaAt(u,v,y,k)ContainsPrefix(z,d,S S (m + m),k)) ∧ (∀ x. ∀ y. Lt(x,S S (m + m))BetaAt(z,d,x,y) → ¬y = 0 ∧ ¬S y = n))))))))))) ∧ ((∀ x. Lt(x,S S (m + m)) → ∃ y. BetaAt(z,d,x,y)Lt(y,n)) ∧ InjectivePrefix(z,d,S S (m + m)))
    Exact native replay linehave hstep : exists z d i j. ((((((((exists wpo_beta_height_wpopi_step_body_trace_first. wpo_beta_height_wpopi_step_body_trace_first + S (i) = S ((S ((m + m))) * d)) /\ exists wpo_beta_quotient_wpopi_step_body_trace_first. z = wpo_beta_quotient_wpopi_step_body_trace_first * S ((S ((m + m))) * d) + (i))) /\ ((((exists wpo_beta_height_wpopi_step_body_trace_second. wpo_beta_height_wpopi_step_body_trace_second + S (j) = S ((S (S ((m + m)))) * d)) /\ exists wpo_beta_quotient_wpopi_step_body_trace_second. z = wpo_beta_quotient_wpopi_step_body_trace_second * S ((S (S ((m + m)))) * d) + (j))) /\ (forall wpo_old_index_wpopi_step_body_trace wpo_old_value_wpopi_step_body_trace. (exists wpo_gap_wpopi_step_body_trace_old_bound. wpo_gap_wpopi_step_body_trace_old_bound + S (wpo_old_index_wpopi_step_body_trace) = (m + m)) -> (((exists wpo_beta_height_wpopi_step_body_trace_old_entry. wpo_beta_height_wpopi_step_body_trace_old_entry + S (wpo_old_value_wpopi_step_body_trace) = S ((S (wpo_old_index_wpopi_step_body_trace)) * c)) /\ exists wpo_beta_quotient_wpopi_step_body_trace_old_entry. b = wpo_beta_quotient_wpopi_step_body_trace_old_entry * S ((S (wpo_old_index_wpopi_step_body_trace)) * c) + (wpo_old_value_wpopi_step_body_trace))) -> (((exists wpo_beta_height_wpopi_step_body_trace_new_entry. wpo_beta_height_wpopi_step_body_trace_new_entry + S (wpo_old_value_wpopi_step_body_trace) = S ((S (wpo_old_index_wpopi_step_body_trace)) * d)) /\ exists wpo_beta_quotient_wpopi_step_body_trace_new_entry. z = wpo_beta_quotient_wpopi_step_body_trace_new_entry * S ((S (wpo_old_index_wpopi_step_body_trace)) * d) + (wpo_old_value_wpopi_step_body_trace))))))) /\ ((exists wpo_gap_wpopi_step_body_source_bound. wpo_gap_wpopi_step_body_source_bound + S (i) = n) /\ ((~(i = 0) /\ ~((S i) = n)) /\ ((~(exists wpo_index_wpopi_step_body_source_omit_contains. ((exists wpo_gap_wpopi_step_body_source_omit_contains_bound. wpo_gap_wpopi_step_body_source_omit_contains_bound + S (wpo_index_wpopi_step_body_source_omit_contains) = (m + m)) /\ (((exists wpo_beta_height_wpopi_step_body_source_omit_contains_entry. wpo_beta_height_wpopi_step_body_source_omit_contains_entry + S (i) = S ((S (wpo_index_wpopi_step_body_source_omit_contains)) * c)) /\ exists wpo_beta_quotient_wpopi_step_body_source_omit_contains_entry. b = wpo_beta_quotient_wpopi_step_body_source_omit_contains_entry * S ((S (wpo_index_wpopi_step_body_source_omit_contains)) * c) + (i)))))) /\ ((((exists wpo_beta_height_wpopi_step_body_forward. wpo_beta_height_wpopi_step_body_forward + S (j) = S ((S (i)) * v)) /\ exists wpo_beta_quotient_wpopi_step_body_forward. u = wpo_beta_quotient_wpopi_step_body_forward * S ((S (i)) * v) + (j))) /\ ((exists wpo_gap_wpopi_step_body_mate_bound. wpo_gap_wpopi_step_body_mate_bound + S (j) = n) /\ ((~(j = 0) /\ ~((S j) = n)) /\ (~(i = j) /\ ((((exists wpo_beta_height_wpopi_step_body_back. wpo_beta_height_wpopi_step_body_back + S (i) = S ((S (j)) * v)) /\ exists wpo_beta_quotient_wpopi_step_body_back. u = wpo_beta_quotient_wpopi_step_body_back * S ((S (j)) * v) + (i))) /\ ((~(exists wpo_index_wpopi_step_body_mate_omit_contains. ((exists wpo_gap_wpopi_step_body_mate_omit_contains_bound. wpo_gap_wpopi_step_body_mate_omit_contains_bound + S (wpo_index_wpopi_step_body_mate_omit_contains) = (m + m)) /\ (((exists wpo_beta_height_wpopi_step_body_mate_omit_contains_entry. wpo_beta_height_wpopi_step_body_mate_omit_contains_entry + S (j) = S ((S (wpo_index_wpopi_step_body_mate_omit_contains)) * c)) /\ exists wpo_beta_quotient_wpopi_step_body_mate_omit_contains_entry. b = wpo_beta_quotient_wpopi_step_body_mate_omit_contains_entry * S ((S (wpo_index_wpopi_step_body_mate_omit_contains)) * c) + (j)))))) /\ ((forall wpo_position_wpopi_step_body_closed_after wpo_source_wpopi_step_body_closed_after wpo_mate_wpopi_step_body_closed_after. (exists wpo_gap_wpopi_step_body_closed_after_position_bound. wpo_gap_wpopi_step_body_closed_after_position_bound + S (wpo_position_wpopi_step_body_closed_after) = S (S (m + m))) -> (((exists wpo_beta_height_wpopi_step_body_closed_after_source_entry. wpo_beta_height_wpopi_step_body_closed_after_source_entry + S (wpo_source_wpopi_step_body_closed_after) = S ((S (wpo_position_wpopi_step_body_closed_after)) * d)) /\ exists wpo_beta_quotient_wpopi_step_body_closed_after_source_entry. z = wpo_beta_quotient_wpopi_step_body_closed_after_source_entry * S ((S (wpo_position_wpopi_step_body_closed_after)) * d) + (wpo_source_wpopi_step_body_closed_after))) -> (((exists wpo_beta_height_wpopi_step_body_closed_after_inverse_entry. wpo_beta_height_wpopi_step_body_closed_after_inverse_entry + S (wpo_mate_wpopi_step_body_closed_after) = S ((S (wpo_source_wpopi_step_body_closed_after)) * v)) /\ exists wpo_beta_quotient_wpopi_step_body_closed_after_inverse_entry. u = wpo_beta_quotient_wpopi_step_body_closed_after_inverse_entry * S ((S (wpo_source_wpopi_step_body_closed_after)) * v) + (wpo_mate_wpopi_step_body_closed_after))) -> exists wpo_mate_position_wpopi_step_body_closed_after. ((exists wpo_gap_wpopi_step_body_closed_after_mate_bound. wpo_gap_wpopi_step_body_closed_after_mate_bound + S (wpo_mate_position_wpopi_step_body_closed_after) = S (S (m + m))) /\ (((exists wpo_beta_height_wpopi_step_body_closed_after_mate_entry. wpo_beta_height_wpopi_step_body_closed_after_mate_entry + S (wpo_mate_wpopi_step_body_closed_after) = S ((S (wpo_mate_position_wpopi_step_body_closed_after)) * d)) /\ exists wpo_beta_quotient_wpopi_step_body_closed_after_mate_entry. z = wpo_beta_quotient_wpopi_step_body_closed_after_mate_entry * S ((S (wpo_mate_position_wpopi_step_body_closed_after)) * d) + (wpo_mate_wpopi_step_body_closed_after))))) /\ (forall wpo_position_wpopi_step_body_nonendpoint_after wpo_value_wpopi_step_body_nonendpoint_after. (exists wpo_gap_wpopi_step_body_nonendpoint_after_position_bound. wpo_gap_wpopi_step_body_nonendpoint_after_position_bound + S (wpo_position_wpopi_step_body_nonendpoint_after) = S (S (m + m))) -> (((exists wpo_beta_height_wpopi_step_body_nonendpoint_after_entry. wpo_beta_height_wpopi_step_body_nonendpoint_after_entry + S (wpo_value_wpopi_step_body_nonendpoint_after) = S ((S (wpo_position_wpopi_step_body_nonendpoint_after)) * d)) /\ exists wpo_beta_quotient_wpopi_step_body_nonendpoint_after_entry. z = wpo_beta_quotient_wpopi_step_body_nonendpoint_after_entry * S ((S (wpo_position_wpopi_step_body_nonendpoint_after)) * d) + (wpo_value_wpopi_step_body_nonendpoint_after))) -> (~(wpo_value_wpopi_step_body_nonendpoint_after = 0) /\ ~((S wpo_value_wpopi_step_body_nonendpoint_after) = n))))))))))))))) /\ ((forall fom_index_wpopi_bounded_after. (exists fom_gap_wpopi_bounded_after_index_bound. fom_gap_wpopi_bounded_after_index_bound + S (fom_index_wpopi_bounded_after) = S (S (m + m))) -> exists fom_value_wpopi_bounded_after. ((((exists fom_beta_height_wpopi_bounded_after_entry. fom_beta_height_wpopi_bounded_after_entry + S (fom_value_wpopi_bounded_after) = S ((S (fom_index_wpopi_bounded_after)) * d)) /\ exists fom_beta_quotient_wpopi_bounded_after_entry. z = fom_beta_quotient_wpopi_bounded_after_entry * S ((S (fom_index_wpopi_bounded_after)) * d) + (fom_value_wpopi_bounded_after))) /\ (exists fom_gap_wpopi_bounded_after_value_bound. fom_gap_wpopi_bounded_after_value_bound + S (fom_value_wpopi_bounded_after) = n))) /\ (forall wpo_injective_left_wpopi_injective_after wpo_injective_right_wpopi_injective_after wpo_injective_value_wpopi_injective_after. (exists wpo_gap_wpopi_injective_after_left_bound. wpo_gap_wpopi_injective_after_left_bound + S (wpo_injective_left_wpopi_injective_after) = S (S (m + m))) -> (exists wpo_gap_wpopi_injective_after_right_bound. wpo_gap_wpopi_injective_after_right_bound + S (wpo_injective_right_wpopi_injective_after) = S (S (m + m))) -> (((exists wpo_beta_height_wpopi_injective_after_left_entry. wpo_beta_height_wpopi_injective_after_left_entry + S (wpo_injective_value_wpopi_injective_after) = S ((S (wpo_injective_left_wpopi_injective_after)) * d)) /\ exists wpo_beta_quotient_wpopi_injective_after_left_entry. z = wpo_beta_quotient_wpopi_injective_after_left_entry * S ((S (wpo_injective_left_wpopi_injective_after)) * d) + (wpo_injective_value_wpopi_injective_after))) -> (((exists wpo_beta_height_wpopi_injective_after_right_entry. wpo_beta_height_wpopi_injective_after_right_entry + S (wpo_injective_value_wpopi_injective_after) = S ((S (wpo_injective_right_wpopi_injective_after)) * d)) /\ exists wpo_beta_quotient_wpopi_injective_after_right_entry. z = wpo_beta_quotient_wpopi_injective_after_right_entry * S ((S (wpo_injective_right_wpopi_injective_after)) * d) + (wpo_injective_value_wpopi_injective_after))) -> wpo_injective_left_wpopi_injective_after = wpo_injective_right_wpopi_injective_after)))
  20. 0020specialize prime_pair_order_choose_append_state p
  21. 0021specialize prime_pair_order_choose_append_state n
  22. 0022specialize prime_pair_order_choose_append_state u
  23. 0023specialize prime_pair_order_choose_append_state v
  24. 0024specialize prime_pair_order_choose_append_state b
  25. 0025specialize prime_pair_order_choose_append_state c
  26. 0026specialize prime_pair_order_choose_append_state (m + m)
  27. 0027specialize prime_pair_order_choose_append_state r
  28. 0028apply prime_pair_order_choose_append_state
  29. 0029exact hpn
  30. 0030exact hp
  31. 0031exact hprefix
  32. 0032exact hnr
  33. 0033exact hroom
  34. 0034exact hstate_left
  35. 0035exact hstate_right_left
  36. 0036exact hstate_right_right_left
  37. 0037exact hstate_right_right_right
  38. 0038cases hstep
  39. 0039cases hstep_witness
  40. 0040cases hstep_witness_witness
  41. 0041cases hstep_witness_witness_witness
  42. 0042have hcombined : BetaAt(x,x1,m + m,x2) ∧ (BetaAt(x,x1,S (m + m),x3) ∧ (∀ y. ∀ z. Lt(y,m + m)BetaAt(b,c,y,z)BetaAt(x,x1,y,z))) ∧ (Lt(x2,n) ∧ (¬x2 = 0 ∧ ¬S x2 = n ∧ (¬ContainsPrefix(b,c,m + m,x2) ∧ (BetaAt(u,v,x2,x3) ∧ (Lt(x3,n) ∧ (¬x3 = 0 ∧ ¬S x3 = n ∧ (¬x2 = x3 ∧ (BetaAt(u,v,x3,x2) ∧ (¬ContainsPrefix(b,c,m + m,x3) ∧ ((∀ y. ∀ z. ∀ k. Lt(y,S S (m + m))BetaAt(x,x1,y,z)BetaAt(u,v,z,k)ContainsPrefix(x,x1,S S (m + m),k)) ∧ (∀ y. ∀ z. Lt(y,S S (m + m))BetaAt(x,x1,y,z) → ¬z = 0 ∧ ¬S z = n))))))))))) ∧ ((∀ y. Lt(y,S S (m + m)) → ∃ z. BetaAt(x,x1,y,z)Lt(z,n)) ∧ InjectivePrefix(x,x1,S S (m + m)))
    Exact native replay linehave hcombined : ((((((((exists wpo_beta_height_wpopi_step_body_x_trace_first. wpo_beta_height_wpopi_step_body_x_trace_first + S (x2) = S ((S ((m + m))) * x1)) /\ exists wpo_beta_quotient_wpopi_step_body_x_trace_first. x = wpo_beta_quotient_wpopi_step_body_x_trace_first * S ((S ((m + m))) * x1) + (x2))) /\ ((((exists wpo_beta_height_wpopi_step_body_x_trace_second. wpo_beta_height_wpopi_step_body_x_trace_second + S (x3) = S ((S (S ((m + m)))) * x1)) /\ exists wpo_beta_quotient_wpopi_step_body_x_trace_second. x = wpo_beta_quotient_wpopi_step_body_x_trace_second * S ((S (S ((m + m)))) * x1) + (x3))) /\ (forall wpo_old_index_wpopi_step_body_x_trace wpo_old_value_wpopi_step_body_x_trace. (exists wpo_gap_wpopi_step_body_x_trace_old_bound. wpo_gap_wpopi_step_body_x_trace_old_bound + S (wpo_old_index_wpopi_step_body_x_trace) = (m + m)) -> (((exists wpo_beta_height_wpopi_step_body_x_trace_old_entry. wpo_beta_height_wpopi_step_body_x_trace_old_entry + S (wpo_old_value_wpopi_step_body_x_trace) = S ((S (wpo_old_index_wpopi_step_body_x_trace)) * c)) /\ exists wpo_beta_quotient_wpopi_step_body_x_trace_old_entry. b = wpo_beta_quotient_wpopi_step_body_x_trace_old_entry * S ((S (wpo_old_index_wpopi_step_body_x_trace)) * c) + (wpo_old_value_wpopi_step_body_x_trace))) -> (((exists wpo_beta_height_wpopi_step_body_x_trace_new_entry. wpo_beta_height_wpopi_step_body_x_trace_new_entry + S (wpo_old_value_wpopi_step_body_x_trace) = S ((S (wpo_old_index_wpopi_step_body_x_trace)) * x1)) /\ exists wpo_beta_quotient_wpopi_step_body_x_trace_new_entry. x = wpo_beta_quotient_wpopi_step_body_x_trace_new_entry * S ((S (wpo_old_index_wpopi_step_body_x_trace)) * x1) + (wpo_old_value_wpopi_step_body_x_trace))))))) /\ ((exists wpo_gap_wpopi_step_body_x_source_bound. wpo_gap_wpopi_step_body_x_source_bound + S (x2) = n) /\ ((~(x2 = 0) /\ ~((S x2) = n)) /\ ((~(exists wpo_index_wpopi_step_body_x_source_omit_contains. ((exists wpo_gap_wpopi_step_body_x_source_omit_contains_bound. wpo_gap_wpopi_step_body_x_source_omit_contains_bound + S (wpo_index_wpopi_step_body_x_source_omit_contains) = (m + m)) /\ (((exists wpo_beta_height_wpopi_step_body_x_source_omit_contains_entry. wpo_beta_height_wpopi_step_body_x_source_omit_contains_entry + S (x2) = S ((S (wpo_index_wpopi_step_body_x_source_omit_contains)) * c)) /\ exists wpo_beta_quotient_wpopi_step_body_x_source_omit_contains_entry. b = wpo_beta_quotient_wpopi_step_body_x_source_omit_contains_entry * S ((S (wpo_index_wpopi_step_body_x_source_omit_contains)) * c) + (x2)))))) /\ ((((exists wpo_beta_height_wpopi_step_body_x_forward. wpo_beta_height_wpopi_step_body_x_forward + S (x3) = S ((S (x2)) * v)) /\ exists wpo_beta_quotient_wpopi_step_body_x_forward. u = wpo_beta_quotient_wpopi_step_body_x_forward * S ((S (x2)) * v) + (x3))) /\ ((exists wpo_gap_wpopi_step_body_x_mate_bound. wpo_gap_wpopi_step_body_x_mate_bound + S (x3) = n) /\ ((~(x3 = 0) /\ ~((S x3) = n)) /\ (~(x2 = x3) /\ ((((exists wpo_beta_height_wpopi_step_body_x_back. wpo_beta_height_wpopi_step_body_x_back + S (x2) = S ((S (x3)) * v)) /\ exists wpo_beta_quotient_wpopi_step_body_x_back. u = wpo_beta_quotient_wpopi_step_body_x_back * S ((S (x3)) * v) + (x2))) /\ ((~(exists wpo_index_wpopi_step_body_x_mate_omit_contains. ((exists wpo_gap_wpopi_step_body_x_mate_omit_contains_bound. wpo_gap_wpopi_step_body_x_mate_omit_contains_bound + S (wpo_index_wpopi_step_body_x_mate_omit_contains) = (m + m)) /\ (((exists wpo_beta_height_wpopi_step_body_x_mate_omit_contains_entry. wpo_beta_height_wpopi_step_body_x_mate_omit_contains_entry + S (x3) = S ((S (wpo_index_wpopi_step_body_x_mate_omit_contains)) * c)) /\ exists wpo_beta_quotient_wpopi_step_body_x_mate_omit_contains_entry. b = wpo_beta_quotient_wpopi_step_body_x_mate_omit_contains_entry * S ((S (wpo_index_wpopi_step_body_x_mate_omit_contains)) * c) + (x3)))))) /\ ((forall wpo_position_wpopi_step_body_x_closed_after wpo_source_wpopi_step_body_x_closed_after wpo_mate_wpopi_step_body_x_closed_after. (exists wpo_gap_wpopi_step_body_x_closed_after_position_bound. wpo_gap_wpopi_step_body_x_closed_after_position_bound + S (wpo_position_wpopi_step_body_x_closed_after) = S (S (m + m))) -> (((exists wpo_beta_height_wpopi_step_body_x_closed_after_source_entry. wpo_beta_height_wpopi_step_body_x_closed_after_source_entry + S (wpo_source_wpopi_step_body_x_closed_after) = S ((S (wpo_position_wpopi_step_body_x_closed_after)) * x1)) /\ exists wpo_beta_quotient_wpopi_step_body_x_closed_after_source_entry. x = wpo_beta_quotient_wpopi_step_body_x_closed_after_source_entry * S ((S (wpo_position_wpopi_step_body_x_closed_after)) * x1) + (wpo_source_wpopi_step_body_x_closed_after))) -> (((exists wpo_beta_height_wpopi_step_body_x_closed_after_inverse_entry. wpo_beta_height_wpopi_step_body_x_closed_after_inverse_entry + S (wpo_mate_wpopi_step_body_x_closed_after) = S ((S (wpo_source_wpopi_step_body_x_closed_after)) * v)) /\ exists wpo_beta_quotient_wpopi_step_body_x_closed_after_inverse_entry. u = wpo_beta_quotient_wpopi_step_body_x_closed_after_inverse_entry * S ((S (wpo_source_wpopi_step_body_x_closed_after)) * v) + (wpo_mate_wpopi_step_body_x_closed_after))) -> exists wpo_mate_position_wpopi_step_body_x_closed_after. ((exists wpo_gap_wpopi_step_body_x_closed_after_mate_bound. wpo_gap_wpopi_step_body_x_closed_after_mate_bound + S (wpo_mate_position_wpopi_step_body_x_closed_after) = S (S (m + m))) /\ (((exists wpo_beta_height_wpopi_step_body_x_closed_after_mate_entry. wpo_beta_height_wpopi_step_body_x_closed_after_mate_entry + S (wpo_mate_wpopi_step_body_x_closed_after) = S ((S (wpo_mate_position_wpopi_step_body_x_closed_after)) * x1)) /\ exists wpo_beta_quotient_wpopi_step_body_x_closed_after_mate_entry. x = wpo_beta_quotient_wpopi_step_body_x_closed_after_mate_entry * S ((S (wpo_mate_position_wpopi_step_body_x_closed_after)) * x1) + (wpo_mate_wpopi_step_body_x_closed_after))))) /\ (forall wpo_position_wpopi_step_body_x_nonendpoint_after wpo_value_wpopi_step_body_x_nonendpoint_after. (exists wpo_gap_wpopi_step_body_x_nonendpoint_after_position_bound. wpo_gap_wpopi_step_body_x_nonendpoint_after_position_bound + S (wpo_position_wpopi_step_body_x_nonendpoint_after) = S (S (m + m))) -> (((exists wpo_beta_height_wpopi_step_body_x_nonendpoint_after_entry. wpo_beta_height_wpopi_step_body_x_nonendpoint_after_entry + S (wpo_value_wpopi_step_body_x_nonendpoint_after) = S ((S (wpo_position_wpopi_step_body_x_nonendpoint_after)) * x1)) /\ exists wpo_beta_quotient_wpopi_step_body_x_nonendpoint_after_entry. x = wpo_beta_quotient_wpopi_step_body_x_nonendpoint_after_entry * S ((S (wpo_position_wpopi_step_body_x_nonendpoint_after)) * x1) + (wpo_value_wpopi_step_body_x_nonendpoint_after))) -> (~(wpo_value_wpopi_step_body_x_nonendpoint_after = 0) /\ ~((S wpo_value_wpopi_step_body_x_nonendpoint_after) = n))))))))))))))) /\ ((forall fom_index_wpopi_bounded_after_x. (exists fom_gap_wpopi_bounded_after_x_index_bound. fom_gap_wpopi_bounded_after_x_index_bound + S (fom_index_wpopi_bounded_after_x) = S (S (m + m))) -> exists fom_value_wpopi_bounded_after_x. ((((exists fom_beta_height_wpopi_bounded_after_x_entry. fom_beta_height_wpopi_bounded_after_x_entry + S (fom_value_wpopi_bounded_after_x) = S ((S (fom_index_wpopi_bounded_after_x)) * x1)) /\ exists fom_beta_quotient_wpopi_bounded_after_x_entry. x = fom_beta_quotient_wpopi_bounded_after_x_entry * S ((S (fom_index_wpopi_bounded_after_x)) * x1) + (fom_value_wpopi_bounded_after_x))) /\ (exists fom_gap_wpopi_bounded_after_x_value_bound. fom_gap_wpopi_bounded_after_x_value_bound + S (fom_value_wpopi_bounded_after_x) = n))) /\ (forall wpo_injective_left_wpopi_injective_after_x wpo_injective_right_wpopi_injective_after_x wpo_injective_value_wpopi_injective_after_x. (exists wpo_gap_wpopi_injective_after_x_left_bound. wpo_gap_wpopi_injective_after_x_left_bound + S (wpo_injective_left_wpopi_injective_after_x) = S (S (m + m))) -> (exists wpo_gap_wpopi_injective_after_x_right_bound. wpo_gap_wpopi_injective_after_x_right_bound + S (wpo_injective_right_wpopi_injective_after_x) = S (S (m + m))) -> (((exists wpo_beta_height_wpopi_injective_after_x_left_entry. wpo_beta_height_wpopi_injective_after_x_left_entry + S (wpo_injective_value_wpopi_injective_after_x) = S ((S (wpo_injective_left_wpopi_injective_after_x)) * x1)) /\ exists wpo_beta_quotient_wpopi_injective_after_x_left_entry. x = wpo_beta_quotient_wpopi_injective_after_x_left_entry * S ((S (wpo_injective_left_wpopi_injective_after_x)) * x1) + (wpo_injective_value_wpopi_injective_after_x))) -> (((exists wpo_beta_height_wpopi_injective_after_x_right_entry. wpo_beta_height_wpopi_injective_after_x_right_entry + S (wpo_injective_value_wpopi_injective_after_x) = S ((S (wpo_injective_right_wpopi_injective_after_x)) * x1)) /\ exists wpo_beta_quotient_wpopi_injective_after_x_right_entry. x = wpo_beta_quotient_wpopi_injective_after_x_right_entry * S ((S (wpo_injective_right_wpopi_injective_after_x)) * x1) + (wpo_injective_value_wpopi_injective_after_x))) -> wpo_injective_left_wpopi_injective_after_x = wpo_injective_right_wpopi_injective_after_x)))
  43. 0043exact hstep_witness_witness_witness_witness
  44. 0044cases hcombined
  45. 0045cases hcombined_right
  46. 0046cases hcombined_left
  47. 0047cases hcombined_left_right
  48. 0048cases hcombined_left_right_right
  49. 0049cases hcombined_left_right_right_right
  50. 0050cases hcombined_left_right_right_right_right
  51. 0051cases hcombined_left_right_right_right_right_right
  52. 0052cases hcombined_left_right_right_right_right_right_right
  53. 0053cases hcombined_left_right_right_right_right_right_right_right
  54. 0054cases hcombined_left_right_right_right_right_right_right_right_right
  55. 0055cases hcombined_left_right_right_right_right_right_right_right_right_right
  56. 0056cases hcombined_left_right_right_right_right_right_right_right_right_right_right
  57. 0057have hnew_history : ∀ wpop_pair_wpopi_new_history_x. Lt(wpop_pair_wpopi_new_history_x,S m) → ∃ y. ∃ z. BetaAt(x,x1,wpop_pair_wpopi_new_history_x + wpop_pair_wpopi_new_history_x,y) ∧ (BetaAt(x,x1,S (wpop_pair_wpopi_new_history_x + wpop_pair_wpopi_new_history_x),z)BetaAt(u,v,y,z))
    Exact native replay linehave hnew_history : forall wpop_pair_wpopi_new_history_x. (exists wpo_gap_wpopi_new_history_x_pair_bound. wpo_gap_wpopi_new_history_x_pair_bound + S (wpop_pair_wpopi_new_history_x) = S m) -> exists wpop_left_wpopi_new_history_x wpop_right_wpopi_new_history_x. ((((exists wpo_beta_height_wpopi_new_history_x_left_entry. wpo_beta_height_wpopi_new_history_x_left_entry + S (wpop_left_wpopi_new_history_x) = S ((S (wpop_pair_wpopi_new_history_x + wpop_pair_wpopi_new_history_x)) * x1)) /\ exists wpo_beta_quotient_wpopi_new_history_x_left_entry. x = wpo_beta_quotient_wpopi_new_history_x_left_entry * S ((S (wpop_pair_wpopi_new_history_x + wpop_pair_wpopi_new_history_x)) * x1) + (wpop_left_wpopi_new_history_x))) /\ ((((exists wpo_beta_height_wpopi_new_history_x_right_entry. wpo_beta_height_wpopi_new_history_x_right_entry + S (wpop_right_wpopi_new_history_x) = S ((S (S (wpop_pair_wpopi_new_history_x + wpop_pair_wpopi_new_history_x))) * x1)) /\ exists wpo_beta_quotient_wpopi_new_history_x_right_entry. x = wpo_beta_quotient_wpopi_new_history_x_right_entry * S ((S (S (wpop_pair_wpopi_new_history_x + wpop_pair_wpopi_new_history_x))) * x1) + (wpop_right_wpopi_new_history_x))) /\ (((exists wpo_beta_height_wpopi_new_history_x_inverse_entry. wpo_beta_height_wpopi_new_history_x_inverse_entry + S (wpop_right_wpopi_new_history_x) = S ((S (wpop_left_wpopi_new_history_x)) * v)) /\ exists wpo_beta_quotient_wpopi_new_history_x_inverse_entry. u = wpo_beta_quotient_wpopi_new_history_x_inverse_entry * S ((S (wpop_left_wpopi_new_history_x)) * v) + (wpop_right_wpopi_new_history_x)))))
  58. 0058specialize paired_inverse_witness_append u
  59. 0059specialize paired_inverse_witness_append v
  60. 0060specialize paired_inverse_witness_append b
  61. 0061specialize paired_inverse_witness_append c
  62. 0062specialize paired_inverse_witness_append x
  63. 0063specialize paired_inverse_witness_append x1
  64. 0064specialize paired_inverse_witness_append m
  65. 0065specialize paired_inverse_witness_append x2
  66. 0066specialize paired_inverse_witness_append x3
  67. 0067apply paired_inverse_witness_append
  68. 0068exact hhistory
  69. 0069exact hcombined_left_left
  70. 0070exact hcombined_left_right_right_right_right_left
  71. 0071exists x
  72. 0072exists x1
  73. 0073split
  74. 0074split
  75. 0075exact hcombined_left_right_right_right_right_right_right_right_right_right_right_left
  76. 0076split
  77. 0077exact hcombined_right_left
  78. 0078split
  79. 0079exact hcombined_left_right_right_right_right_right_right_right_right_right_right_right
  80. 0080exact hcombined_right_right
  81. 0081exact hnew_history