Exact expanded PA statement
forall p n b c i j. p = S n -> (forall wip_index_involutive_prefix. (exists wip_gap_involutive_prefix_prefix_bound. wip_gap_involutive_prefix_prefix_bound + S wip_index_involutive_prefix = n) -> exists wip_mate_involutive_prefix. ((((exists wip_beta_height_involutive_prefix_decoded. wip_beta_height_involutive_prefix_decoded + S (wip_mate_involutive_prefix) = S ((S (wip_index_involutive_prefix)) * c)) /\ exists wip_beta_quotient_involutive_prefix_decoded. b = wip_beta_quotient_involutive_prefix_decoded * S ((S (wip_index_involutive_prefix)) * c) + (wip_mate_involutive_prefix))) /\ ((exists wip_gap_involutive_prefix_inverse_index_bound. wip_gap_involutive_prefix_inverse_index_bound + S wip_index_involutive_prefix = n) /\ ((exists wip_gap_involutive_prefix_inverse_mate_bound. wip_gap_involutive_prefix_inverse_mate_bound + S wip_mate_involutive_prefix = n) /\ (exists wip_mod_left_involutive_prefix_inverse_mod wip_mod_right_involutive_prefix_inverse_mod. ((S wip_index_involutive_prefix) * S wip_mate_involutive_prefix) + p * wip_mod_left_involutive_prefix_inverse_mod = 1 + p * wip_mod_right_involutive_prefix_inverse_mod))))) -> (exists wip_gap_involutive_index_bound. wip_gap_involutive_index_bound + S i = n) -> (((exists wip_beta_height_involutive_source. wip_beta_height_involutive_source + S (j) = S ((S (i)) * c)) /\ exists wip_beta_quotient_involutive_source. b = wip_beta_quotient_involutive_source * S ((S (i)) * c) + (j))) -> ((exists wip_gap_involutive_mate_bound. wip_gap_involutive_mate_bound + S j = n) /\ (((exists wip_beta_height_involutive_back. wip_beta_height_involutive_back + S (i) = S ((S (j)) * c)) /\ exists wip_beta_quotient_involutive_back. b = wip_beta_quotient_involutive_back * S ((S (j)) * c) + (i))))Structural proof guide
Generated structural guide
Decoding an inverse mate and decoding again returns the source index.
Use the direct prerequisites inverse_prefix_entry_sound, inverse_index_symmetric, inverse_prefix_extensional as previously established PA formulas.
The proof proceeds by case analysis (2), intermediate claims (2).
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 i - 0006
intro j - 0007
intro hpn - 0008
intro hprefix - 0009
intro hi - 0010
intro hat - 0011
have hforward : (exists wip_gap_involutive_forward_index_bound. wip_gap_involutive_forward_index_bound + S i = n) /\ ((exists wip_gap_involutive_forward_mate_bound. wip_gap_involutive_forward_mate_bound + S j = n) /\ (exists wip_mod_left_involutive_forward_mod wip_mod_right_involutive_forward_mod. ((S i) * S j) + p * wip_mod_left_involutive_forward_mod = 1 + p * wip_mod_right_involutive_forward_mod)) - 0012
specialize inverse_prefix_entry_sound p - 0013
specialize inverse_prefix_entry_sound n - 0014
specialize inverse_prefix_entry_sound b - 0015
specialize inverse_prefix_entry_sound c - 0016
specialize inverse_prefix_entry_sound n - 0017
specialize inverse_prefix_entry_sound i - 0018
specialize inverse_prefix_entry_sound j - 0019
apply inverse_prefix_entry_sound - 0020
exact hprefix - 0021
exact hi - 0022
exact hat - 0023
have hreverse : (exists wip_gap_involutive_reverse_index_bound. wip_gap_involutive_reverse_index_bound + S j = n) /\ ((exists wip_gap_involutive_reverse_mate_bound. wip_gap_involutive_reverse_mate_bound + S i = n) /\ (exists wip_mod_left_involutive_reverse_mod wip_mod_right_involutive_reverse_mod. ((S j) * S i) + p * wip_mod_left_involutive_reverse_mod = 1 + p * wip_mod_right_involutive_reverse_mod)) - 0024
specialize inverse_index_symmetric p - 0025
specialize inverse_index_symmetric n - 0026
specialize inverse_index_symmetric i - 0027
specialize inverse_index_symmetric j - 0028
apply inverse_index_symmetric - 0029
exact hforward - 0030
cases hforward - 0031
cases hforward_right - 0032
split - 0033
exact hforward_right_left - 0034
specialize inverse_prefix_extensional p - 0035
specialize inverse_prefix_extensional n - 0036
specialize inverse_prefix_extensional b - 0037
specialize inverse_prefix_extensional c - 0038
specialize inverse_prefix_extensional n - 0039
specialize inverse_prefix_extensional j - 0040
specialize inverse_prefix_extensional i - 0041
apply inverse_prefix_extensional - 0042
exact hpn - 0043
exact hprefix - 0044
exact hforward_right_left - 0045
exact hreverse