GI002D

gaussian_product_integer_congruence

The actual Gaussian multiplication preserves equality of represented integers in both operands.

Alpha v34 checked-use · first admitted v28 · independently kernel and Lean verified; not Stable

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.

The natural-code carrier consists of genuine pairs of the existing signed integers; no new primitive arithmetic is trusted. The theorem constructs quotient, remainder, and actual norm witnesses. Gaussian gcd, unique factorization, and prime classification are separate targets.

Exact theorem in conservative defined notation

∀ a. ∀ b. ∀ c. ∀ d. ∀ e. ∀ f. ∀ g. ∀ h. ∀ i. ∀ j. ∀ k. ∀ l. ∀ m. ∀ n. ∀ o. ∀ p. a + f = e + b ∧ c + h = g + d → i + n = m + j ∧ k + p = o + l → a · i + b · j + (c · l + d · k) + (e · n + f · m + (g · o + h · p)) = e · m + f · n + (g · p + h · o) + (a · j + b · i + (c · k + d · l)) ∧ a · k + b · l + (c · i + d · j) + (e · p + f · o + (g · n + h · m)) = e · o + f · p + (g · m + h · n) + (a · l + b · k + (c · j + d · i))

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

none

Actual proof prerequisites

Original expanded first-order statement
forall a b c d e f g h i j k l m n o p. (((((a) + (f)) = ((e) + (b))) /\ (((c) + (h)) = ((g) + (d))))) -> (((((i) + (n)) = ((m) + (j))) /\ (((k) + (p)) = ((o) + (l))))) -> (((((((((((a) * (i))) + (((b) * (j))))) + (((((c) * (l))) + (((d) * (k))))))) + (((((((e) * (n))) + (((f) * (m))))) + (((((g) * (o))) + (((h) * (p)))))))) = ((((((((e) * (m))) + (((f) * (n))))) + (((((g) * (p))) + (((h) * (o))))))) + (((((((a) * (j))) + (((b) * (i))))) + (((((c) * (k))) + (((d) * (l))))))))) /\ (((((((((a) * (k))) + (((b) * (l))))) + (((((c) * (i))) + (((d) * (j))))))) + (((((((e) * (p))) + (((f) * (o))))) + (((((g) * (n))) + (((h) * (m)))))))) = ((((((((e) * (o))) + (((f) * (p))))) + (((((g) * (m))) + (((h) * (n))))))) + (((((((a) * (l))) + (((b) * (k))))) + (((((c) * (j))) + (((d) * (i)))))))))))

Complete tactic proof in conservative notation

All 88 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.

Read the argument

Proof checkpoints

88 script commands · 10 reading checkpoints · 0 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.

01Fix variables and assumptionsL1–10

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

  1. L1
    intro a
  2. L2
    intro b
  3. L3
    intro c
  4. L4
    intro d
  5. L5
    intro e
  6. L6
    intro f
  7. L7
    intro g
  8. L8
    intro h
  9. L9
    intro i
  10. L10
    intro j
02Fix variables and assumptionsL11–18

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

  1. L11
    intro k
  2. L12
    intro l
  3. L13
    intro m
  4. L14
    intro n
  5. L15
    intro o
  6. L16
    intro p
  7. L17
    intro hfirst
  8. L18
    intro hsecond
03Separate the logical casesL19–21

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

  1. L19
    cases hfirst
  2. L20
    cases hsecond
  3. L21
    split
04Use earlier factsL22–31

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

  1. L22
    specialize integer_span_pair_add_congruence ((((a) * (i))) + (((b) * (j))))
  2. L23
    specialize integer_span_pair_add_congruence ((((a) * (j))) + (((b) * (i))))
  3. L24
    specialize integer_span_pair_add_congruence ((((c) * (l))) + (((d) * (k))))
  4. L25
    specialize integer_span_pair_add_congruence ((((c) * (k))) + (((d) * (l))))
  5. L26
    specialize integer_span_pair_add_congruence ((((e) * (m))) + (((f) * (n))))
  6. L27
    specialize integer_span_pair_add_congruence ((((e) * (n))) + (((f) * (m))))
  7. L28
    specialize integer_span_pair_add_congruence ((((g) * (p))) + (((h) * (o))))
  8. L29
    specialize integer_span_pair_add_congruence ((((g) * (o))) + (((h) * (p))))
  9. L30
    apply integer_span_pair_add_congruence
  10. L31
    specialize matrix_integer_pair_product_balance a
05Use earlier factsL32–41

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

  1. L32
    specialize matrix_integer_pair_product_balance b
  2. L33
    specialize matrix_integer_pair_product_balance e
  3. L34
    specialize matrix_integer_pair_product_balance f
  4. L35
    specialize matrix_integer_pair_product_balance i
  5. L36
    specialize matrix_integer_pair_product_balance j
  6. L37
    specialize matrix_integer_pair_product_balance m
  7. L38
    specialize matrix_integer_pair_product_balance n
  8. L39
    apply matrix_integer_pair_product_balance
  9. L40
    exact hfirst_left
  10. L41
    exact hsecond_left
06Use earlier factsL42–51

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

  1. L42
    specialize matrix_integer_pair_negation_balance ((((c) * (k))) + (((d) * (l))))
  2. L43
    specialize matrix_integer_pair_negation_balance ((((c) * (l))) + (((d) * (k))))
  3. L44
    specialize matrix_integer_pair_negation_balance ((((g) * (o))) + (((h) * (p))))
  4. L45
    specialize matrix_integer_pair_negation_balance ((((g) * (p))) + (((h) * (o))))
  5. L46
    apply matrix_integer_pair_negation_balance
  6. L47
    specialize matrix_integer_pair_product_balance c
  7. L48
    specialize matrix_integer_pair_product_balance d
  8. L49
    specialize matrix_integer_pair_product_balance g
  9. L50
    specialize matrix_integer_pair_product_balance h
  10. L51
    specialize matrix_integer_pair_product_balance k
07Use earlier factsL52–61

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

  1. L52
    specialize matrix_integer_pair_product_balance l
  2. L53
    specialize matrix_integer_pair_product_balance o
  3. L54
    specialize matrix_integer_pair_product_balance p
  4. L55
    apply matrix_integer_pair_product_balance
  5. L56
    exact hfirst_right
  6. L57
    exact hsecond_right
  7. L58
    specialize integer_span_pair_add_congruence ((((a) * (k))) + (((b) * (l))))
  8. L59
    specialize integer_span_pair_add_congruence ((((a) * (l))) + (((b) * (k))))
  9. L60
    specialize integer_span_pair_add_congruence ((((c) * (i))) + (((d) * (j))))
  10. L61
    specialize integer_span_pair_add_congruence ((((c) * (j))) + (((d) * (i))))
08Use earlier factsL62–71

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

  1. L62
    specialize integer_span_pair_add_congruence ((((e) * (o))) + (((f) * (p))))
  2. L63
    specialize integer_span_pair_add_congruence ((((e) * (p))) + (((f) * (o))))
  3. L64
    specialize integer_span_pair_add_congruence ((((g) * (m))) + (((h) * (n))))
  4. L65
    specialize integer_span_pair_add_congruence ((((g) * (n))) + (((h) * (m))))
  5. L66
    apply integer_span_pair_add_congruence
  6. L67
    specialize matrix_integer_pair_product_balance a
  7. L68
    specialize matrix_integer_pair_product_balance b
  8. L69
    specialize matrix_integer_pair_product_balance e
  9. L70
    specialize matrix_integer_pair_product_balance f
  10. L71
    specialize matrix_integer_pair_product_balance k
09Use earlier factsL72–81

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

  1. L72
    specialize matrix_integer_pair_product_balance l
  2. L73
    specialize matrix_integer_pair_product_balance o
  3. L74
    specialize matrix_integer_pair_product_balance p
  4. L75
    apply matrix_integer_pair_product_balance
  5. L76
    exact hfirst_left
  6. L77
    exact hsecond_right
  7. L78
    specialize matrix_integer_pair_product_balance c
  8. L79
    specialize matrix_integer_pair_product_balance d
  9. L80
    specialize matrix_integer_pair_product_balance g
  10. L81
    specialize matrix_integer_pair_product_balance h
10Use earlier factsL82–88

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

  1. L82
    specialize matrix_integer_pair_product_balance i
  2. L83
    specialize matrix_integer_pair_product_balance j
  3. L84
    specialize matrix_integer_pair_product_balance m
  4. L85
    specialize matrix_integer_pair_product_balance n
  5. L86
    apply matrix_integer_pair_product_balance
  6. L87
    exact hfirst_right
  7. L88
    exact hsecond_left

Library-wide reading audit

Original defined command ledger · 88 lines
  1. 0001intro a
  2. 0002intro b
  3. 0003intro c
  4. 0004intro d
  5. 0005intro e
  6. 0006intro f
  7. 0007intro g
  8. 0008intro h
  9. 0009intro i
  10. 0010intro j
  11. 0011intro k
  12. 0012intro l
  13. 0013intro m
  14. 0014intro n
  15. 0015intro o
  16. 0016intro p
  17. 0017intro hfirst
  18. 0018intro hsecond
  19. 0019cases hfirst
  20. 0020cases hsecond
  21. 0021split
  22. 0022specialize integer_span_pair_add_congruence ((((a) * (i))) + (((b) * (j))))
  23. 0023specialize integer_span_pair_add_congruence ((((a) * (j))) + (((b) * (i))))
  24. 0024specialize integer_span_pair_add_congruence ((((c) * (l))) + (((d) * (k))))
  25. 0025specialize integer_span_pair_add_congruence ((((c) * (k))) + (((d) * (l))))
  26. 0026specialize integer_span_pair_add_congruence ((((e) * (m))) + (((f) * (n))))
  27. 0027specialize integer_span_pair_add_congruence ((((e) * (n))) + (((f) * (m))))
  28. 0028specialize integer_span_pair_add_congruence ((((g) * (p))) + (((h) * (o))))
  29. 0029specialize integer_span_pair_add_congruence ((((g) * (o))) + (((h) * (p))))
  30. 0030apply integer_span_pair_add_congruence
  31. 0031specialize matrix_integer_pair_product_balance a
  32. 0032specialize matrix_integer_pair_product_balance b
  33. 0033specialize matrix_integer_pair_product_balance e
  34. 0034specialize matrix_integer_pair_product_balance f
  35. 0035specialize matrix_integer_pair_product_balance i
  36. 0036specialize matrix_integer_pair_product_balance j
  37. 0037specialize matrix_integer_pair_product_balance m
  38. 0038specialize matrix_integer_pair_product_balance n
  39. 0039apply matrix_integer_pair_product_balance
  40. 0040exact hfirst_left
  41. 0041exact hsecond_left
  42. 0042specialize matrix_integer_pair_negation_balance ((((c) * (k))) + (((d) * (l))))
  43. 0043specialize matrix_integer_pair_negation_balance ((((c) * (l))) + (((d) * (k))))
  44. 0044specialize matrix_integer_pair_negation_balance ((((g) * (o))) + (((h) * (p))))
  45. 0045specialize matrix_integer_pair_negation_balance ((((g) * (p))) + (((h) * (o))))
  46. 0046apply matrix_integer_pair_negation_balance
  47. 0047specialize matrix_integer_pair_product_balance c
  48. 0048specialize matrix_integer_pair_product_balance d
  49. 0049specialize matrix_integer_pair_product_balance g
  50. 0050specialize matrix_integer_pair_product_balance h
  51. 0051specialize matrix_integer_pair_product_balance k
  52. 0052specialize matrix_integer_pair_product_balance l
  53. 0053specialize matrix_integer_pair_product_balance o
  54. 0054specialize matrix_integer_pair_product_balance p
  55. 0055apply matrix_integer_pair_product_balance
  56. 0056exact hfirst_right
  57. 0057exact hsecond_right
  58. 0058specialize integer_span_pair_add_congruence ((((a) * (k))) + (((b) * (l))))
  59. 0059specialize integer_span_pair_add_congruence ((((a) * (l))) + (((b) * (k))))
  60. 0060specialize integer_span_pair_add_congruence ((((c) * (i))) + (((d) * (j))))
  61. 0061specialize integer_span_pair_add_congruence ((((c) * (j))) + (((d) * (i))))
  62. 0062specialize integer_span_pair_add_congruence ((((e) * (o))) + (((f) * (p))))
  63. 0063specialize integer_span_pair_add_congruence ((((e) * (p))) + (((f) * (o))))
  64. 0064specialize integer_span_pair_add_congruence ((((g) * (m))) + (((h) * (n))))
  65. 0065specialize integer_span_pair_add_congruence ((((g) * (n))) + (((h) * (m))))
  66. 0066apply integer_span_pair_add_congruence
  67. 0067specialize matrix_integer_pair_product_balance a
  68. 0068specialize matrix_integer_pair_product_balance b
  69. 0069specialize matrix_integer_pair_product_balance e
  70. 0070specialize matrix_integer_pair_product_balance f
  71. 0071specialize matrix_integer_pair_product_balance k
  72. 0072specialize matrix_integer_pair_product_balance l
  73. 0073specialize matrix_integer_pair_product_balance o
  74. 0074specialize matrix_integer_pair_product_balance p
  75. 0075apply matrix_integer_pair_product_balance
  76. 0076exact hfirst_left
  77. 0077exact hsecond_right
  78. 0078specialize matrix_integer_pair_product_balance c
  79. 0079specialize matrix_integer_pair_product_balance d
  80. 0080specialize matrix_integer_pair_product_balance g
  81. 0081specialize matrix_integer_pair_product_balance h
  82. 0082specialize matrix_integer_pair_product_balance i
  83. 0083specialize matrix_integer_pair_product_balance j
  84. 0084specialize matrix_integer_pair_product_balance m
  85. 0085specialize matrix_integer_pair_product_balance n
  86. 0086apply matrix_integer_pair_product_balance
  87. 0087exact hfirst_right
  88. 0088exact hsecond_left