Exact expanded PA statement
forall p n b c l. p = S n -> ((~(p = 1) /\ forall wip_prime_left_extend_prime wip_prime_right_extend_prime. p = wip_prime_left_extend_prime * wip_prime_right_extend_prime -> wip_prime_left_extend_prime = 1 \/ wip_prime_right_extend_prime = 1)) -> (exists wip_gap_extend_length. wip_gap_extend_length + S l = n) -> (forall wip_index_extend_before. (exists wip_gap_extend_before_prefix_bound. wip_gap_extend_before_prefix_bound + S wip_index_extend_before = l) -> exists wip_mate_extend_before. ((((exists wip_beta_height_extend_before_decoded. wip_beta_height_extend_before_decoded + S (wip_mate_extend_before) = S ((S (wip_index_extend_before)) * c)) /\ exists wip_beta_quotient_extend_before_decoded. b = wip_beta_quotient_extend_before_decoded * S ((S (wip_index_extend_before)) * c) + (wip_mate_extend_before))) /\ ((exists wip_gap_extend_before_inverse_index_bound. wip_gap_extend_before_inverse_index_bound + S wip_index_extend_before = n) /\ ((exists wip_gap_extend_before_inverse_mate_bound. wip_gap_extend_before_inverse_mate_bound + S wip_mate_extend_before = n) /\ (exists wip_mod_left_extend_before_inverse_mod wip_mod_right_extend_before_inverse_mod. ((S wip_index_extend_before) * S wip_mate_extend_before) + p * wip_mod_left_extend_before_inverse_mod = 1 + p * wip_mod_right_extend_before_inverse_mod))))) -> exists z d. (forall wip_index_extend_after. (exists wip_gap_extend_after_prefix_bound. wip_gap_extend_after_prefix_bound + S wip_index_extend_after = S l) -> exists wip_mate_extend_after. ((((exists wip_beta_height_extend_after_decoded. wip_beta_height_extend_after_decoded + S (wip_mate_extend_after) = S ((S (wip_index_extend_after)) * d)) /\ exists wip_beta_quotient_extend_after_decoded. z = wip_beta_quotient_extend_after_decoded * S ((S (wip_index_extend_after)) * d) + (wip_mate_extend_after))) /\ ((exists wip_gap_extend_after_inverse_index_bound. wip_gap_extend_after_inverse_index_bound + S wip_index_extend_after = n) /\ ((exists wip_gap_extend_after_inverse_mate_bound. wip_gap_extend_after_inverse_mate_bound + S wip_mate_extend_after = n) /\ (exists wip_mod_left_extend_after_inverse_mod wip_mod_right_extend_after_inverse_mod. ((S wip_index_extend_after) * S wip_mate_extend_after) + p * wip_mod_left_extend_after_inverse_mod = 1 + p * wip_mod_right_extend_after_inverse_mod)))))Structural proof guide
Generated structural guide
Append one bounded zero-based inverse index to an inverse prefix.
Use the direct prerequisites prime_inverse_index_exists, beta_prefix_extend, finite_lt_succ_eq_or_lt as previously established PA formulas.
The proof proceeds by case analysis (7), intermediate claims (4), equality transport (4).
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.
- 0001
intro p - 0002
intro n - 0003
intro b - 0004
intro c - 0005
intro l - 0006
intro hpn - 0007
intro hp - 0008
intro hln - 0009
intro hprefix - 0010
have hnew : exists j. ((exists wip_gap_extend_new_inverse_index_bound. wip_gap_extend_new_inverse_index_bound + S l = n) /\ ((exists wip_gap_extend_new_inverse_mate_bound. wip_gap_extend_new_inverse_mate_bound + S j = n) /\ (exists wip_mod_left_extend_new_inverse_mod wip_mod_right_extend_new_inverse_mod. ((S l) * S j) + p * wip_mod_left_extend_new_inverse_mod = 1 + p * wip_mod_right_extend_new_inverse_mod))) - 0011
specialize prime_inverse_index_exists p - 0012
specialize prime_inverse_index_exists n - 0013
specialize prime_inverse_index_exists l - 0014
apply prime_inverse_index_exists - 0015
exact hpn - 0016
exact hp - 0017
exact hln - 0018
cases hnew - 0019
specialize beta_prefix_extend l - 0020
specialize beta_prefix_extend b - 0021
specialize beta_prefix_extend c - 0022
specialize beta_prefix_extend x - 0023
cases beta_prefix_extend - 0024
cases beta_prefix_extend_witness - 0025
cases beta_prefix_extend_witness_witness - 0026
exists x1 - 0027
exists x2 - 0028
intro i - 0029
intro hi - 0030
have hsplit : i = l \/ exists h. h + S i = l - 0031
specialize finite_lt_succ_eq_or_lt l - 0032
specialize finite_lt_succ_eq_or_lt i - 0033
apply finite_lt_succ_eq_or_lt - 0034
exact hi - 0035
cases hsplit - 0036
exists x - 0037
split - 0038
rewrite hsplit_left - 0039
rewrite hsplit_left - 0040
have hnew_entry : ((exists wip_beta_height_extend_new_entry. wip_beta_height_extend_new_entry + S (x) = S ((S (l)) * x2)) /\ exists wip_beta_quotient_extend_new_entry. x1 = wip_beta_quotient_extend_new_entry * S ((S (l)) * x2) + (x)) - 0041
exact beta_prefix_extend_witness_witness_left - 0042
exact hnew_entry - 0043
rewrite hsplit_left - 0044
rewrite hsplit_left - 0045
exact hnew_witness - 0046
have hold : exists j. ((((exists wip_beta_height_extend_old_entry. wip_beta_height_extend_old_entry + S (j) = S ((S (i)) * c)) /\ exists wip_beta_quotient_extend_old_entry. b = wip_beta_quotient_extend_old_entry * S ((S (i)) * c) + (j))) /\ ((exists wip_gap_extend_old_inverse_index_bound. wip_gap_extend_old_inverse_index_bound + S i = n) /\ ((exists wip_gap_extend_old_inverse_mate_bound. wip_gap_extend_old_inverse_mate_bound + S j = n) /\ (exists wip_mod_left_extend_old_inverse_mod wip_mod_right_extend_old_inverse_mod. ((S i) * S j) + p * wip_mod_left_extend_old_inverse_mod = 1 + p * wip_mod_right_extend_old_inverse_mod)))) - 0047
specialize hprefix i - 0048
apply hprefix - 0049
exact hsplit_right - 0050
cases hold - 0051
cases hold_witness - 0052
exists x3 - 0053
split - 0054
specialize beta_prefix_extend_witness_witness_right i - 0055
specialize beta_prefix_extend_witness_witness_right x3 - 0056
apply beta_prefix_extend_witness_witness_right - 0057
exact hsplit_right - 0058
exact hold_witness_left - 0059
exact hold_witness_right