Абелева группа

Абелева группа (или коммутативная группа) — это алгебраическая структура, которая объединяет свойства группы и коммутативности. Разберем эти понятия по отдельности, а затем объединим их.

а) Группа

Группа — это множество \(G\), на котором определена бинарная операция \(\cdot\) (обычно называемая умножением или сложением), удовлетворяющая следующим свойствам:

б) Коммутативность

Операция \(\cdot\) называется коммутативной, если для любых \(a, b \in G\) выполняется: \(a \cdot b = b \cdot a.\)

Таким образом, абелева группа — это группа, в которой операция \(\cdot\) коммутативна. То есть:

Примеры абелевых групп

Зачем нужны абелевы группы?

Абелевы группы играют важную роль в математике и её приложениях:

Таким образом, абелевы группы — это важный объект изучения, позволяющий анализировать системы с коммутативными, ассоциативными операциями, нейтральным и обратными элементами.

Формальное определение

AbGroup[A] - "абелева группа", группа, которая является коммутативной.

Помимо законов группы:

должен соблюдаться закон:

Код

trait AbGroup[A] extends Group[A], CMonoid[A]

Целые числа Z являются абелевой группой по сложению

given AbGroup[Int] with
  val empty                        = 0
  def combine(x: Int, y: Int): Int = x + y
  extension (a: Int)
    def inverse: Int = -a

Законы

Законы наследуются от группы и коммутативного моноида.

Схема

classDiagram
    class Semigroup~A~{
        +combine(x: A, y: A) A
    } 
    class Monoid~A~{
        +empty() A
    }
    Semigroup <|-- Monoid
    class CommutativeSemigroup~A~
    Semigroup <|-- CommutativeSemigroup  
    class Group~A~{
      +inverse(x: A) A
    }  
    Monoid <|-- Group 
    class CommutativeMonoid~A~
    Monoid <|-- CommutativeMonoid
    CommutativeSemigroup <|-- CommutativeMonoid
    class AbelianGroup~A~
    Group <|-- AbelianGroup
    CommutativeMonoid <|-- AbelianGroup

Реализация в библиотеках

Реализация в Spire

import spire.algebra.AbGroup

AbGroup[Int].inverse(1) // -1

Ссылки: