PA00AL · theorem

bounded_inverse_index_unique

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

A bounded inverse index is unique.

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. ∀ i. ∀ j. ∀ k. p = S n → InverseIndex(p,n,i,j)InverseIndex(p,n,i,k) → j = k

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

2 occurrences

In local proof propositions

2 occurrences

Exact expanded native-PA statement
forall p n i j k. p = S n -> (((exists wip_strict_gap_index_unique_left_left_bound. wip_strict_gap_index_unique_left_left_bound + S i = n) /\ ((exists wip_strict_gap_index_unique_left_right_bound. wip_strict_gap_index_unique_left_right_bound + S j = n) /\ (exists wip_mod_left_index_unique_left_inverse wip_mod_right_index_unique_left_inverse. (S i) * S j + p * wip_mod_left_index_unique_left_inverse = 1 + p * wip_mod_right_index_unique_left_inverse)))) -> (((exists wip_strict_gap_index_unique_right_left_bound. wip_strict_gap_index_unique_right_left_bound + S i = n) /\ ((exists wip_strict_gap_index_unique_right_right_bound. wip_strict_gap_index_unique_right_right_bound + S k = n) /\ (exists wip_mod_left_index_unique_right_inverse wip_mod_right_index_unique_right_inverse. (S i) * S k + p * wip_mod_left_index_unique_right_inverse = 1 + p * wip_mod_right_index_unique_right_inverse)))) -> j = k

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

38 script commands · 6 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 (3)
01Fix variables and assumptionsL1–8

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

  1. L1
    intro p
  2. L2
    intro n
  3. L3
    intro i
  4. L4
    intro j
  5. L5
    intro k
  6. L6
    intro hpn
  7. L7
    intro hij
  8. L8
    intro hik
02Separate the logical casesL9–12

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

  1. L9
    cases hij
  2. L10
    cases hij_right
  3. L11
    cases hik
  4. L12
    cases hik_right
03Establish hjpL13–18

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply succ le succ.

  1. L13
  2. L14
    rewrite hpn
  3. L15
    specialize succ_le_succ (S j)
  4. L16
    specialize succ_le_succ n
  5. L17
    apply succ_le_succ
  6. L18
    exact hij_right_left
04Establish hkpL19–24

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply succ le succ.

  1. L19
  2. L20
    rewrite hpn
  3. L21
    specialize succ_le_succ (S k)
  4. L22
    specialize succ_le_succ n
  5. L23
    apply succ_le_succ
  6. L24
    exact hik_right_left
05Establish hsuccL25–34

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply bounded mod inverse unique.

  1. L25
    have hsucc : S j = S k
  2. L26
    specialize bounded_mod_inverse_unique p
  3. L27
    specialize bounded_mod_inverse_unique (S i)
  4. L28
    specialize bounded_mod_inverse_unique (S j)
  5. L29
    specialize bounded_mod_inverse_unique (S k)
  6. L30
    apply bounded_mod_inverse_unique
  7. L31
    exact hjp
  8. L32
    exact hkp
  9. L33
    exact hij_right_right
  10. L34
    exact hik_right_right
06Use earlier factsL35–38

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

  1. L35
    specialize succ_injective j
  2. L36
    specialize succ_injective k
  3. L37
    apply succ_injective
  4. L38
    exact hsucc

Library-wide reading audit

Original defined command ledger · 38 lines
  1. 0001intro p
  2. 0002intro n
  3. 0003intro i
  4. 0004intro j
  5. 0005intro k
  6. 0006intro hpn
  7. 0007intro hij
  8. 0008intro hik
  9. 0009cases hij
  10. 0010cases hij_right
  11. 0011cases hik
  12. 0012cases hik_right
  13. 0013have hjp : Lt(S j,p)
    Exact native replay linehave hjp : exists wip_successor_gap_index_unique_j_bound. wip_successor_gap_index_unique_j_bound + S (S j) = p
  14. 0014rewrite hpn
  15. 0015specialize succ_le_succ (S j)
  16. 0016specialize succ_le_succ n
  17. 0017apply succ_le_succ
  18. 0018exact hij_right_left
  19. 0019have hkp : Lt(S k,p)
    Exact native replay linehave hkp : exists wip_successor_gap_index_unique_k_bound. wip_successor_gap_index_unique_k_bound + S (S k) = p
  20. 0020rewrite hpn
  21. 0021specialize succ_le_succ (S k)
  22. 0022specialize succ_le_succ n
  23. 0023apply succ_le_succ
  24. 0024exact hik_right_left
  25. 0025have hsucc : S j = S k
  26. 0026specialize bounded_mod_inverse_unique p
  27. 0027specialize bounded_mod_inverse_unique (S i)
  28. 0028specialize bounded_mod_inverse_unique (S j)
  29. 0029specialize bounded_mod_inverse_unique (S k)
  30. 0030apply bounded_mod_inverse_unique
  31. 0031exact hjp
  32. 0032exact hkp
  33. 0033exact hij_right_right
  34. 0034exact hik_right_right
  35. 0035specialize succ_injective j
  36. 0036specialize succ_injective k
  37. 0037apply succ_injective
  38. 0038exact hsucc