PA009B · theorem

scaled_inverse_symmetric

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

The scaled-inverse relation is symmetric.

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. ∀ x. ∀ y. ScaledInverse(p,a,x,y)ScaledInverse(p,a,y,x)

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

none

0 occurrences

Exact expanded native-PA statement
forall p a x y. ((((~(x = 0) /\ (exists esi_strict_gap_symmetric_source_left_bound. esi_strict_gap_symmetric_source_left_bound + S x = p))) /\ (((~(y = 0) /\ (exists esi_strict_gap_symmetric_source_right_bound. esi_strict_gap_symmetric_source_right_bound + S y = p))) /\ (exists esi_mod_left_symmetric_source_mod esi_mod_right_symmetric_source_mod. (x * y) + p * esi_mod_left_symmetric_source_mod = (a) + p * esi_mod_right_symmetric_source_mod)))) -> ((((~(y = 0) /\ (exists esi_strict_gap_symmetric_target_left_bound. esi_strict_gap_symmetric_target_left_bound + S y = p))) /\ (((~(x = 0) /\ (exists esi_strict_gap_symmetric_target_right_bound. esi_strict_gap_symmetric_target_right_bound + S x = p))) /\ (exists esi_mod_left_symmetric_target_mod esi_mod_right_symmetric_target_mod. (y * x) + p * esi_mod_left_symmetric_target_mod = (a) + p * esi_mod_right_symmetric_target_mod))))

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

21 script commands · 6 reading checkpoints · 1 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 (1)
01Fix variables and assumptionsL1–5

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

  1. L1
    intro p
  2. L2
    intro a
  3. L3
    intro x
  4. L4
    intro y
  5. L5
    intro hxy
02Separate the logical casesL6–11

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

  1. L6
    cases hxy
  2. L7
    cases hxy_left
  3. L8
    cases hxy_right
  4. L9
    cases hxy_right_left
  5. L10
    split
  6. L11
    split
03Use earlier factsL12–13

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

  1. L12
    exact hxy_right_left_left
  2. L13
    exact hxy_right_left_right
04Separate the logical casesL14–15

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

  1. L14
    split
  2. L15
    split
05Use earlier factsL16–17

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

  1. L16
    exact hxy_left_left
  2. L17
    exact hxy_left_right
06Establish hcommL18–21

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

  1. L18
    have hcomm : x * y = y * x
  2. L19
    apply mul_comm
  3. L20
    rewrite hcomm at hxy_right_right
  4. L21
    exact hxy_right_right

Library-wide reading audit

Original defined command ledger · 21 lines
  1. 0001intro p
  2. 0002intro a
  3. 0003intro x
  4. 0004intro y
  5. 0005intro hxy
  6. 0006cases hxy
  7. 0007cases hxy_left
  8. 0008cases hxy_right
  9. 0009cases hxy_right_left
  10. 0010split
  11. 0011split
  12. 0012exact hxy_right_left_left
  13. 0013exact hxy_right_left_right
  14. 0014split
  15. 0015split
  16. 0016exact hxy_left_left
  17. 0017exact hxy_left_right
  18. 0018have hcomm : x * y = y * x
  19. 0019apply mul_comm
  20. 0020rewrite hcomm at hxy_right_right
  21. 0021exact hxy_right_right