PA004E · theorem

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.

Statement with defined notation

∀ m. ∀ a. ∀ b. ∀ c. ∀ d. ModEq(m,a,b)ModEq(m,c,d)ModEq(m,a · c,b · d)

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

3 occurrences

In local proof propositions

2 occurrences

Exact expanded native-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

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

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.

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–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 : ModEq(m,a · c,b · c)Definitions: ModEq(m,a · c,b · c)Original native command in the exact edition
  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 : ModEq(m,b · c,b · d)Definitions: ModEq(m,b · c,b · d)Original native command in the exact edition
  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 defined 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 : ModEq(m,a · c,b · c)
    Exact native replay linehave 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 : ModEq(m,b · c,b · d)
    Exact native replay linehave 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