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. ∀ a. ∀ n. ∀ b. ∀ c. ∀ i. ∀ y. p = S n → Prime(p) → ScaledInversePrefix(p,a,n,b,c,n) → Lt(i,n) → BetaAt(b,c,i,y) → ∃ x. y = S x ∧ (Lt(x,n) ∧ BetaAt(b,c,x,S 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
6 occurrences
In local proof propositions
6 occurrences
Exact expanded native-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))))Proof neighborhood
Direct theorem prerequisites
PA009A scaled_inverse_prefix_mate_predecessor PA0099 scaled_inverse_prefix_entry_sound PA009B scaled_inverse_symmetric PA009D scaled_inverse_prefix_extensionalDirect 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
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 (4)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–12
03Establish hpredecessorL13–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply scaled inverse prefix mate predecessor.
- L13
have hpredecessor : ∃ j. y = S j ∧ Lt(j,n)Definitions: Lt(j,n)Original native command in the exact edition - L14
specialize scaled_inverse_prefix_mate_predecessor p - L15
specialize scaled_inverse_prefix_mate_predecessor a - L16
specialize scaled_inverse_prefix_mate_predecessor n - L17
specialize scaled_inverse_prefix_mate_predecessor b - L18
specialize scaled_inverse_prefix_mate_predecessor c - L19
specialize scaled_inverse_prefix_mate_predecessor i - L20
specialize scaled_inverse_prefix_mate_predecessor y - L21
apply scaled_inverse_prefix_mate_predecessor - L22
exact hpn
04Use earlier factsL23–25
05Separate the logical casesL26–27
06Establish hforward_relationL28–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply scaled inverse prefix entry sound.
- L28
have hforward_relation : ScaledInverseIndex(p,a,n,i,y)Definitions: ScaledInverseIndex(p,a,n,i,y)Original native command in the exact edition - L29
specialize scaled_inverse_prefix_entry_sound p - L30
specialize scaled_inverse_prefix_entry_sound a - L31
specialize scaled_inverse_prefix_entry_sound n - L32
specialize scaled_inverse_prefix_entry_sound b - L33
specialize scaled_inverse_prefix_entry_sound c - L34
specialize scaled_inverse_prefix_entry_sound n - L35
specialize scaled_inverse_prefix_entry_sound i - L36
specialize scaled_inverse_prefix_entry_sound y - L37
apply scaled_inverse_prefix_entry_sound
07Use earlier factsL38–40
08Separate the logical casesL41–41
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L41
cases hforward_relation
09Establish hforwardL42–46
Establish this local claim before using it. It is not an additional assumption.
- L42
have hforward : ScaledInverse(p,a,S i,S x)Definitions: ScaledInverse(p,a,S i,S x)Original native command in the exact edition - L43
rewrite hpredecessor_witness_left at hforward_relation_right - L44
rewrite hpredecessor_witness_left at hforward_relation_right - L45
rewrite hpredecessor_witness_left at hforward_relation_right - L46
exact hforward_relation_right
10Establish hreverseL47–53
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply scaled inverse symmetric.
- L47
have hreverse : ScaledInverse(p,a,S x,S i)Definitions: ScaledInverse(p,a,S x,S i)Original native command in the exact edition - L48
specialize scaled_inverse_symmetric p - L49
specialize scaled_inverse_symmetric a - L50
specialize scaled_inverse_symmetric (S i) - L51
specialize scaled_inverse_symmetric (S x) - L52
apply scaled_inverse_symmetric - L53
exact hforward
11Establish hreverse_relationL54–54
Establish this local claim before using it. It is not an additional assumption.
- L54
have hreverse_relation : ScaledInverseIndex(p,a,n,x,S i)Definitions: ScaledInverseIndex(p,a,n,x,S i)Original native command in the exact edition
12Separate the logical casesL55–55
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
split
13Use earlier factsL56–57
14Establish hbackL58–67
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply scaled inverse prefix extensional.
- L58
have hback : BetaAt(b,c,x,S i)Definitions: BetaAt(b,c,x,S i)Original native command in the exact edition - L59
specialize scaled_inverse_prefix_extensional p - L60
specialize scaled_inverse_prefix_extensional a - L61
specialize scaled_inverse_prefix_extensional n - L62
specialize scaled_inverse_prefix_extensional b - L63
specialize scaled_inverse_prefix_extensional c - L64
specialize scaled_inverse_prefix_extensional n - L65
specialize scaled_inverse_prefix_extensional x - L66
specialize scaled_inverse_prefix_extensional (S i) - L67
apply scaled_inverse_prefix_extensional
15Use earlier factsL68–71
16Construct an explicit witnessL72–72
Supply the displayed value, then prove that it has the required property.
- L72
exists x
17Separate the logical casesL73–73
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L73
split
18Use earlier factsL74–74
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L74
exact hpredecessor_witness_left
19Separate the logical casesL75–75
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L75
split
Original defined command ledger · 77 lines
- 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 : ∃ j. y = S j ∧ Lt(j,n)Exact native replay line
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 : ScaledInverseIndex(p,a,n,i,y)Exact native replay line
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 : ScaledInverse(p,a,S i,S x)Exact native replay line
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 : ScaledInverse(p,a,S x,S i)Exact native replay line
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 : ScaledInverseIndex(p,a,n,x,S i)Exact native replay line
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 : BetaAt(b,c,x,S i)Exact native replay line
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