PA004E

mod_eq_mul

Stable checked-use theorem · independently closed

Balanced natural congruence respects multiplication.

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.

Exact expanded PA statement

forall m a b c d. (exists u v. a + m * u = b + m * v) -> (exists r s. c + m * r = d + m * s) -> exists x y. (a * c) + m * x = (b * d) + m * y

Structural proof guide

Generated structural guide

Balanced natural congruence respects multiplication.

Use the direct prerequisites mod_eq_mul_right, mod_eq_mul_left, mod_eq_trans as previously established PA formulas.

The proof proceeds by 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 Stable checked-use theorem is independently kernel-checked when replayed.

Read the argument

Proof checkpoints

28 script commands · 4 reading checkpoints · 2 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.

Named ingredients (3)
01Fix variables and assumptionsL1–7

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

  1. L1
    intro m
  2. L2
    intro a
  3. L3
    intro b
  4. L4
    intro c
  5. L5
    intro d
  6. L6
    intro hab
  7. L7
    intro hcd
02Establish hacbcL8–14

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

  1. L8
    have hacbc : exists r s. (a * c) + m * r = (b * c) + m * s
  2. L9
    specialize mod_eq_mul_right m
  3. L10
    specialize mod_eq_mul_right a
  4. L11
    specialize mod_eq_mul_right b
  5. L12
    specialize mod_eq_mul_right c
  6. L13
    apply mod_eq_mul_right
  7. L14
    exact hab
03Establish hbcbdL15–24

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

  1. L15
    have hbcbd : exists r s. (b * c) + m * r = (b * d) + m * s
  2. L16
    specialize mod_eq_mul_left m
  3. L17
    specialize mod_eq_mul_left c
  4. L18
    specialize mod_eq_mul_left d
  5. L19
    specialize mod_eq_mul_left b
  6. L20
    apply mod_eq_mul_left
  7. L21
    exact hcd
  8. L22
    specialize mod_eq_trans m
  9. L23
    specialize mod_eq_trans (a * c)
  10. L24
    specialize mod_eq_trans (b * c)
04Use earlier factsL25–28

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

  1. L25
    specialize mod_eq_trans (b * d)
  2. L26
    apply mod_eq_trans
  3. L27
    exact hacbc
  4. L28
    exact hbcbd

Library-wide reading audit

Original exact command ledger · 28 lines
  1. 0001intro m
  2. 0002intro a
  3. 0003intro b
  4. 0004intro c
  5. 0005intro d
  6. 0006intro hab
  7. 0007intro hcd
  8. 0008have hacbc : exists r s. (a * c) + m * r = (b * c) + m * s
  9. 0009specialize mod_eq_mul_right m
  10. 0010specialize mod_eq_mul_right a
  11. 0011specialize mod_eq_mul_right b
  12. 0012specialize mod_eq_mul_right c
  13. 0013apply mod_eq_mul_right
  14. 0014exact hab
  15. 0015have hbcbd : exists r s. (b * c) + m * r = (b * d) + m * s
  16. 0016specialize mod_eq_mul_left m
  17. 0017specialize mod_eq_mul_left c
  18. 0018specialize mod_eq_mul_left d
  19. 0019specialize mod_eq_mul_left b
  20. 0020apply mod_eq_mul_left
  21. 0021exact hcd
  22. 0022specialize mod_eq_trans m
  23. 0023specialize mod_eq_trans (a * c)
  24. 0024specialize mod_eq_trans (b * c)
  25. 0025specialize mod_eq_trans (b * d)
  26. 0026apply mod_eq_trans
  27. 0027exact hacbc
  28. 0028exact hbcbd