Exact expanded PA statement
forall p a n b c i y. p = S n -> ((~(p = 1) /\ forall esi_prime_left_esipe_involutive_prime esi_prime_right_esipe_involutive_prime. p = esi_prime_left_esipe_involutive_prime * esi_prime_right_esipe_involutive_prime -> esi_prime_left_esipe_involutive_prime = 1 \/ esi_prime_right_esipe_involutive_prime = 1)) -> (forall esip_index_involutive_prefix. (exists esip_gap_involutive_prefix_prefix_bound. esip_gap_involutive_prefix_prefix_bound + S (esip_index_involutive_prefix) = n) -> exists esip_mate_involutive_prefix. ((((exists ff_h_esip_involutive_prefix_entry. ff_h_esip_involutive_prefix_entry + S (esip_mate_involutive_prefix) = S ((S (esip_index_involutive_prefix)) * c)) /\ exists ff_q_esip_involutive_prefix_entry. b = ff_q_esip_involutive_prefix_entry * S ((S (esip_index_involutive_prefix)) * c) + (esip_mate_involutive_prefix))) /\ ((exists esip_gap_involutive_prefix_relation_index_bound. esip_gap_involutive_prefix_relation_index_bound + S (esip_index_involutive_prefix) = n) /\ ((((~((S esip_index_involutive_prefix) = 0) /\ (exists esip_gap_involutive_prefix_relation_scaled_left_bound. esip_gap_involutive_prefix_relation_scaled_left_bound + S (S esip_index_involutive_prefix) = p))) /\ (((~(esip_mate_involutive_prefix = 0) /\ (exists esip_gap_involutive_prefix_relation_scaled_right_bound. esip_gap_involutive_prefix_relation_scaled_right_bound + S (esip_mate_involutive_prefix) = p))) /\ (exists esi_mod_left_involutive_prefix_relation_scaled_mod esi_mod_right_involutive_prefix_relation_scaled_mod. ((S esip_index_involutive_prefix) * esip_mate_involutive_prefix) + p * esi_mod_left_involutive_prefix_relation_scaled_mod = (a) + p * esi_mod_right_involutive_prefix_relation_scaled_mod))))))) -> (exists esip_gap_involutive_bound. esip_gap_involutive_bound + S (i) = n) -> (((exists ff_h_esipe_involutive_at. ff_h_esipe_involutive_at + S (y) = S ((S (i)) * c)) /\ exists ff_q_esipe_involutive_at. b = ff_q_esipe_involutive_at * S ((S (i)) * c) + (y))) -> exists j. y = S j /\ ((exists esip_gap_involutive_mate_bound. esip_gap_involutive_mate_bound + S (j) = n) /\ (((exists ff_h_esipe_involutive_back. ff_h_esipe_involutive_back + S (S i) = S ((S (j)) * c)) /\ exists ff_q_esipe_involutive_back. b = ff_q_esipe_involutive_back * S ((S (j)) * c) + (S i))))Structural proof guide
Generated structural guide
Decoding a scaled-inverse mate and decoding its predecessor returns the source residue.
Use the direct prerequisites scaled_inverse_prefix_mate_predecessor, scaled_inverse_prefix_entry_sound, scaled_inverse_symmetric, scaled_inverse_prefix_extensional as previously established PA formulas.
The proof proceeds by case analysis (3), intermediate claims (6), equality transport (3).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA009A scaled_inverse_prefix_mate_predecessor PA0099 scaled_inverse_prefix_entry_sound PA009B scaled_inverse_symmetric PA009D scaled_inverse_prefix_extensionalDirect 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 a - 0003
intro n - 0004
intro b - 0005
intro c - 0006
intro i - 0007
intro y - 0008
intro hpn - 0009
intro hp - 0010
intro hprefix - 0011
intro hi - 0012
intro hat - 0013
have hpredecessor : exists j. y = S j /\ (exists esip_gap_involutive_mate_bound. esip_gap_involutive_mate_bound + S (j) = n) - 0014
specialize scaled_inverse_prefix_mate_predecessor p - 0015
specialize scaled_inverse_prefix_mate_predecessor a - 0016
specialize scaled_inverse_prefix_mate_predecessor n - 0017
specialize scaled_inverse_prefix_mate_predecessor b - 0018
specialize scaled_inverse_prefix_mate_predecessor c - 0019
specialize scaled_inverse_prefix_mate_predecessor i - 0020
specialize scaled_inverse_prefix_mate_predecessor y - 0021
apply scaled_inverse_prefix_mate_predecessor - 0022
exact hpn - 0023
exact hprefix - 0024
exact hi - 0025
exact hat - 0026
cases hpredecessor - 0027
cases hpredecessor_witness - 0028
have hforward_relation : (exists esip_gap_involutive_forward_relation_index_bound. esip_gap_involutive_forward_relation_index_bound + S (i) = n) /\ ((((~((S i) = 0) /\ (exists esip_gap_involutive_forward_relation_scaled_left_bound. esip_gap_involutive_forward_relation_scaled_left_bound + S (S i) = p))) /\ (((~(y = 0) /\ (exists esip_gap_involutive_forward_relation_scaled_right_bound. esip_gap_involutive_forward_relation_scaled_right_bound + S (y) = p))) /\ (exists esi_mod_left_involutive_forward_relation_scaled_mod esi_mod_right_involutive_forward_relation_scaled_mod. ((S i) * y) + p * esi_mod_left_involutive_forward_relation_scaled_mod = (a) + p * esi_mod_right_involutive_forward_relation_scaled_mod)))) - 0029
specialize scaled_inverse_prefix_entry_sound p - 0030
specialize scaled_inverse_prefix_entry_sound a - 0031
specialize scaled_inverse_prefix_entry_sound n - 0032
specialize scaled_inverse_prefix_entry_sound b - 0033
specialize scaled_inverse_prefix_entry_sound c - 0034
specialize scaled_inverse_prefix_entry_sound n - 0035
specialize scaled_inverse_prefix_entry_sound i - 0036
specialize scaled_inverse_prefix_entry_sound y - 0037
apply scaled_inverse_prefix_entry_sound - 0038
exact hprefix - 0039
exact hi - 0040
exact hat - 0041
cases hforward_relation - 0042
have hforward : (((~((S i) = 0) /\ (exists esip_gap_involutive_forward_scaled_left_bound. esip_gap_involutive_forward_scaled_left_bound + S (S i) = p))) /\ (((~(S x = 0) /\ (exists esip_gap_involutive_forward_scaled_right_bound. esip_gap_involutive_forward_scaled_right_bound + S (S x) = p))) /\ (exists esi_mod_left_involutive_forward_scaled_mod esi_mod_right_involutive_forward_scaled_mod. ((S i) * S x) + p * esi_mod_left_involutive_forward_scaled_mod = (a) + p * esi_mod_right_involutive_forward_scaled_mod))) - 0043
rewrite hpredecessor_witness_left at hforward_relation_right - 0044
rewrite hpredecessor_witness_left at hforward_relation_right - 0045
rewrite hpredecessor_witness_left at hforward_relation_right - 0046
exact hforward_relation_right - 0047
have hreverse : (((~((S x) = 0) /\ (exists esip_gap_involutive_reverse_scaled_left_bound. esip_gap_involutive_reverse_scaled_left_bound + S (S x) = p))) /\ (((~(S i = 0) /\ (exists esip_gap_involutive_reverse_scaled_right_bound. esip_gap_involutive_reverse_scaled_right_bound + S (S i) = p))) /\ (exists esi_mod_left_involutive_reverse_scaled_mod esi_mod_right_involutive_reverse_scaled_mod. ((S x) * S i) + p * esi_mod_left_involutive_reverse_scaled_mod = (a) + p * esi_mod_right_involutive_reverse_scaled_mod))) - 0048
specialize scaled_inverse_symmetric p - 0049
specialize scaled_inverse_symmetric a - 0050
specialize scaled_inverse_symmetric (S i) - 0051
specialize scaled_inverse_symmetric (S x) - 0052
apply scaled_inverse_symmetric - 0053
exact hforward - 0054
have hreverse_relation : (exists esip_gap_involutive_reverse_relation_index_bound. esip_gap_involutive_reverse_relation_index_bound + S (x) = n) /\ ((((~((S x) = 0) /\ (exists esip_gap_involutive_reverse_relation_scaled_left_bound. esip_gap_involutive_reverse_relation_scaled_left_bound + S (S x) = p))) /\ (((~(S i = 0) /\ (exists esip_gap_involutive_reverse_relation_scaled_right_bound. esip_gap_involutive_reverse_relation_scaled_right_bound + S (S i) = p))) /\ (exists esi_mod_left_involutive_reverse_relation_scaled_mod esi_mod_right_involutive_reverse_relation_scaled_mod. ((S x) * S i) + p * esi_mod_left_involutive_reverse_relation_scaled_mod = (a) + p * esi_mod_right_involutive_reverse_relation_scaled_mod)))) - 0055
split - 0056
exact hpredecessor_witness_right - 0057
exact hreverse - 0058
have hback : ((exists ff_h_esipe_involutive_back. ff_h_esipe_involutive_back + S (S i) = S ((S (x)) * c)) /\ exists ff_q_esipe_involutive_back. b = ff_q_esipe_involutive_back * S ((S (x)) * c) + (S i)) - 0059
specialize scaled_inverse_prefix_extensional p - 0060
specialize scaled_inverse_prefix_extensional a - 0061
specialize scaled_inverse_prefix_extensional n - 0062
specialize scaled_inverse_prefix_extensional b - 0063
specialize scaled_inverse_prefix_extensional c - 0064
specialize scaled_inverse_prefix_extensional n - 0065
specialize scaled_inverse_prefix_extensional x - 0066
specialize scaled_inverse_prefix_extensional (S i) - 0067
apply scaled_inverse_prefix_extensional - 0068
exact hp - 0069
exact hprefix - 0070
exact hpredecessor_witness_right - 0071
exact hreverse_relation - 0072
exists x - 0073
split - 0074
exact hpredecessor_witness_left - 0075
split - 0076
exact hpredecessor_witness_right - 0077
exact hback