index


абелевы группы - не группы, а модули над ℤ

Н.Вавилов


  • G-модули
  • R-модули
  • прямое произведение
  • проективный модуль
  • прямая сумма
  • иньективный модуль
  • HomoR (U,V)
  • EndoR (V)
  • двойственный модуль
  • ортогональная прямая сумма

  • G-модули

    "правым модулем над группой G с операцией ∙" называется "структура M с операцией ⊡"

    для ∀ m ∈ M и ∀ g1,g2 ∈ G выполняется следующее:

        G × M → M
        (g , m) → g ⊡ m
    
        (g1 ∙ g2) ⊡ m  =  g1 ⊡ (g2 ⊡ m)
        1 ⊡ m = m

    а c левым модулем соответственно

        M × G → M
        (m , g) → m ⊡ g
    
        m ⊡ (g1 ∙ g2) = (m ⊡ g1) ⊡ g2
        m ⊡ 1 = m

    Th: любая абелева группа есть модуль над ℤ:

    пусть n — натуральное число, а x — элемент абелевой группы G с операцией ∙

    тогда n ⊡ x можно определить как x∙x∙... (n раз) и естественно это - элемент G

    а также (-n) ⊡ x можно определить как (n ⊡ x)⁻ и тоже естественно, что это - элемент G

    QED

    можно определить и по-другому. например так:


    листинг Хаскель
    import Test.HUnit
    
    data Parity = Odd | Even
      deriving (Show, Read, Eq)
    
    class Group a where
      neutral :: a
      plus    :: a -> a -> a
      inverse :: a -> a
    
    instance Group Parity where
      neutral        = Even
      plus Even Even = Even
      plus Even Odd  = Odd
      plus Odd Odd   = Even
      plus Odd Even  = Odd
      inverse Even   = Even
      inverse Odd    = Odd
    
    type Mod = Int
    
    left_mod_op :: Mod -> Parity -> Mod
    left_mod_op x Even = x
    left_mod_op x Odd | odd x = 0 | otherwise = x
    
    right_mod_op :: Parity -> Mod -> Mod
    right_mod_op Even x = x
    right_mod_op Odd x | odd x = 0 | otherwise = x
    
    test_left m g1 g2 =
      assertEqual "test"
        (m `left_mod_op` (g1 `plus` g2))
        ((m `left_mod_op` g1) `left_mod_op` g2)
    
    test_right m g1 g2 =
      assertEqual "test"
        ((g1 `plus` g2) `right_mod_op` m)
        (g2 `right_mod_op` (g1 `right_mod_op` m))
    
    main =
      runTestTT $ TestLabel "testing module Int over group Parity" $ TestList
      [ TestCase $ test_left 2 Odd Even
      , TestCase $ test_left (-2) Odd Even
      , TestCase $ test_left 3 Even Even
      , TestCase $ test_left 4 Odd Odd
      , TestCase $ test_left (-5) Even Odd
      , TestCase $ test_left (-4) Even Odd
      , TestCase $ test_left 0 Even Odd
      , TestCase $ test_right 2 Odd Even
      , TestCase $ test_right (-2) Odd Even
      , TestCase $ test_right 3 Even Even
      , TestCase $ test_right 4 Odd Odd
      , TestCase $ test_right (-5) Even Odd
      , TestCase $ test_right (-4) Even Odd
      , TestCase $ test_right 0 Even Odd
      ]

    конец листинга

    свободные абелевы группы

    пусть x₁,..,xₙ – элементы абелевой группы G. рассмотрим отображение ℤⁿ→G, сопоставляющее столбцу (m₁,..,mₙ) целых чисел линейную комбинацию

          Σ mi * xi ∈ G

    линейная комбинация называется тривиальной, если m₁=..=mₙ=0

    элементы x₁,..,xₙ называются линейно независимыми, если все нетривиальные линейные комбинации отличны от 0

    иными словами, элементы x₁,..,xₙ группы G линейно независимы, если отображение ℤⁿ→G для них инъективно

    абелева группа называется свободной, если в ней существует линейно-независимая система образующих, называемая "базисом группы"


    R-модули

    "модулем над кольцом R с операциями + и ∙" называется "структура M с операцией ⊡" так что для ∀m,m1,m2∈M и ∀ρ,ρ1,ρ2∈R выполняется следующее:

         R × M → M
         (ρ , m) → ρ ⊡ m
    
         (ρ1 + ρ2) ⊡ m = (ρ1 ⊡ m) + (ρ2 ⊡ m)
         ρ ⊡ (m1 + m2) = (ρ ⊡ m1) + (ρ ⊡ m2)
         (ρ1 ∙ ρ2) ⊡ m = ρ1 ⊡ (ρ2 ⊡ m)

    в случае некоммутативного кольца такие модули называются левыми. правыми модулями называют в этом случае:

         M × R → M
         (ρ , m) → ρ ⊡ m
    
         m ⊡ (ρ1 + ρ2) = (m ⊡ ρ1) + (m ⊡ ρ2)
         (m1 + m2) ⊡ ρ = (m1 ⊡ ρ) + (m2 ⊡ ρ)
         m ⊡ (ρ1 ∙ ρ2) = (m ⊡ ρ1) ⊡ ρ2 

    в случае коммутативного кольца R определения левого и правого модуля совпадают и их называют просто модулями

    обычно требуют дополнительно, чтобы выполнялось равенство

        1 ⊡ m = m
    модуль с этим свойством называется унитальным

    любое кольцо можно рассматривать как модуль над собой

    любой идеал кольца можно рассматривать как модуль над этим кольцом

    фактически, модуль - это структура, на которой задано "скалярное произведение"


    Николай Вавилов, СПбГУ


    листинг Haskell
    import Test.HUnit
    
    data Parity = Odd | Even deriving (Show, Read, Eq)
    
    class Ring a where
    
      neutral_plus  :: a
      plus          :: a -> a -> a
      inverse_plus  :: a -> a
    
      neutral_multi :: a
      mult          :: a -> a -> a
      inverse_multi :: a -> a
    
    instance Ring Parity where
    
      neutral_plus       = Even
      plus  Even Even    = Even
      plus  Even Odd     = Odd
      plus  Odd Odd      = Even
      plus  Odd Even     = Odd
      inverse_plus Even  = Even
      inverse_plus Odd   = Odd
    
      neutral_multi      = Odd
      mult  Even Even    = Even
      mult  Even Odd     = Even
      mult  Odd Odd      = Odd
      mult  Odd Even     = Even
      inverse_multi Even = Odd
      inverse_multi Odd  = Even
    
    type Mod = Int
    
    -- trivial right multiplication
    mod_right :: Mod -> Parity -> Mod
    mod_right x Even = 0
    mod_right x Odd  = 0
    
    -- trivial left multiplication
    mod_left :: Parity -> Mod -> Mod
    mod_left Even x = 0
    mod_left Odd  x = 0
    
    
    --   test suitie
    
    -- ρ ⊡ (m1 + m2) = (ρ ⊡ m1) + (ρ ⊡ m2)
    test_mod_left_distr_ring m1 m2 g =
      assertEqual "test distr ring"
      (g `mod_left` (m1 + m2))
      ((g `mod_left` m1) + (g `mod_left` m2))
    
    --  m ⊡ (ρ1 + ρ2)  = (m ⊡ ρ1) + (m ⊡ ρ2)
    test_mod_right_distr_mod m g1 g2 =
      assertEqual "test distr mod"
      (m `mod_right` (g1 `plus` g2))
      ((m `mod_right` g1) `mod_right` g2)
    
    -- m ⊡ (ρ1 ∙ ρ2) = (m ⊡ ρ1) ⊡ ρ2
    test_mod_right_ring_mult_distr m g1 g2 =
      assertEqual "test right mult distr "
      (m `mod_right` (g1 `mult` g2))
      ((m `mod_right` g1) `mod_right` g2)
    
    main =
     runTestTT $ TestLabel "testing module Int over ring Parity" $ TestList
      [ TestCase $ test_mod_right_distr_mod 2      Odd  Even
      , TestCase $ test_mod_right_distr_mod (-2)   Odd  Even
      , TestCase $ test_mod_right_distr_mod 3      Even Even
      , TestCase $ test_mod_right_distr_mod 4      Odd  Odd
      , TestCase $ test_mod_right_distr_mod (-5)   Even Odd
      , TestCase $ test_mod_right_distr_mod (-4)   Even Odd
      , TestCase $ test_mod_right_distr_mod 0      Even Odd
      , TestCase $ test_mod_left_distr_ring 2  3   Even
      , TestCase $ test_mod_left_distr_ring (-2) 4 Even
      , TestCase $ test_mod_left_distr_ring 3  7   Even
      , TestCase $ test_mod_left_distr_ring 4 5    Odd
      , TestCase $ test_mod_left_distr_ring (-5) 2 Odd
      , TestCase $ test_mod_left_distr_ring (-4) 8 Odd
      , TestCase $ test_mod_left_distr_ring 0  4   Odd
      , TestCase $ test_mod_right_ring_mult_distr (-2)   Odd  Even
      , TestCase $ test_mod_right_ring_mult_distr 3      Even Even
      , TestCase $ test_mod_right_ring_mult_distr 4      Odd  Odd
      , TestCase $ test_mod_right_ring_mult_distr (-5)   Even Odd
      ]  

    конец листинга

    свободный R-модуль

    свободный модуль — модуль над кольцом R, если он обладает базисом

    не в каждом модуле можно выбрать базис, и даже когда это возможно - в случае некоммутативного кольца модуль может иметь несколько базисов с различным числом элементов

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

    вообще говоря, "векторным пространством" называется модуль над телом (бывают левые и правые). в случае же полей - с категорной точки зрения лучше все же различать левые и правые векторные пространства - также, как мы различаем их в случае тела (когда мы просто вынуждены это делать). потому что левое векторное пространство образует двойственную категорию к правому векторному пространству и никогда не может быть ей изоморфно (оно может лишь случайно совпасть, но такой изоморфизм превратится в тыкву при замене базиса): поле коммутативно, но операторы не коммутативны

    если есть два свободных R-модуля M1 и M2, то существует единственное оторбражение φ:M1→M2, переводящее базис M1 в базис M2

    два свободных модуля над одним и тем же кольцом изоморфны тогда и только тогда, когда в них существуют базисы с одинаковым количеством элементов

    сурьекция переводит систему образующих модуля в систему образующих образа

    иньекция переводит линейно-независимую систему в линейно-независимую

    правый свободный R-модуль ранга n

    Rⁿ = { ( x₁
             .
             .
             xₙ ) | xₖ ∈ R }
    
    
    
           ( x₁       ( y₁        ( x₁ + y₁
             .          .            .
             .    +     .     =      .
             xₙ )       yₙ )        xₙ + yₙ )
    
    
           ( x₁                   ( x₁ * λ
             .      * λ        =     .
             .                       .
             xₙ )                   xₙ * λ )
    
    
    
           стандартный базис при размерности n=3:
    
                ( 1              ( 0             ( 0
         e₁ =     0       e₂ =     1       e₃ =    0
                  0 )              0 )             1 )

    правый модуль умножается на скаляр справа: Rⁿ * λ

    левый свободный R-модуль ранга n

    ₙR = { (x₁..xₙ) | xₖ ∈ R }
    
          (x₁..xₙ) + (y₁..yₙ) = (x₁ + y₁ .. xₙ + yₙ)
    
          λ * (x₁..xₙ) = (λ * x₁ .. λ * xₙ)
    
    
           стандартный базис при размерности n=3:
    
           ₁e = (1 0 0)   ₂e = (0 1 0)   ₃e = (0 0 1)

    левый модуль умножается на скаляр слева: λ * ₙR

    бимодуль

    если на структуре M заданы структуры левого R-модуля и правого S-модуля, то М называется бимодулем. при этом должно выполняться

           ∀ λ ∈ R, μ ∈ S, x ∈ M
           (λ * x) * μ = λ * (x * μ)


    прямая сумма

    прямая сумма и группы

    пусть F и G - две аддитивные абелевы группы. рассмотрим "покомпонентное сложение" на F×G

                     (f1 , g1)  +  (f2 , g2)    =    (f1 + f2 , g1 + g2)
    эта операция превращает F×G в группу

    в самом деле, это сложение ассоциативно, а его нейтральным элементом является

        e = (e , e)
    осталось заметить, что
        (h , g)⁻ = (h⁻ , g⁻)

    таким образом, F×G образует группу относительно сложения, называемую прямой суммой групп F и G:

        F ⊕ G 

    прямая сумма и кольца

    пусть R1, ..., Rs – кольца. обозначим через R1 ⊕...⊕ Rs, кольцо, которое как множество совпадает с прямым произведением

        R = R1 × .. × Rs
    с покомпонентными операциями сложения и умножения:
      (x1, .., xs) + (y1, .., ys) = (x1 + y1, .., xs + ys),
      (x1, .., xs) * (y1, .., ys) = (x1 * y1, .., xs * ys)

    прямая сумма и R-модули

    если свободного R-модуля у нас нет, но мы его строим:

               M₁ , .., Ms
    
               M₁ ⊕ .. ⊕ Ms = M₁×..×Ms = { (u₁,.,us) | ui ∈ Mi }

    если же свободный R-модуль уже есть:

               M₁, .., Ms ⊆ M
    
               если 1) M₁ + .. + Ms = M
                    2) ∀ i    Σ Mj  ∩  Mi = 0
                             j≠i
    
               то M ≅ M₁ ⊕ ... ⊕ Ms

    линейное пространство разлагается в прямую сумму непересекающихся подпространств, если любой его элемент однозначно представим в виде суммы, в которой первое слагаемое принадлежит первому подпространству, второе слагаемое принадлежит второму подпространству (каждое из которых называется при этом линейным дополнением к другому)

    трёхмерное линейное пространство является прямой суммой плоскости (двумерного подпространства) и любой прямой (одномерного подпространства), не лежащей в этой плоскости (и не параллельной ей), а также прямой суммой любых трёх не лежащих в одной плоскости непараллельных прямых

    трёхмерное линейное пространство является суммой двух несовпадающих плоскостей, но не является их прямой суммой, так как пересечение плоскостей даёт прямую и поэтому нулевой вектор может быть представлен бесконечным числом способов:

          0 = v1 + v2,    
    где v1 и v2 — противоположные векторы на этой прямой

    пространство разбивается в прямую сумму одномерных подпространств

    пространство полиномов степени не больше n (от фиксированного числа переменных) может быть представлено в виде прямой суммы

          M₀ ⊕ M₁ ⊕ ... ⊕ Mₙ    
    где Mi — подпространство однородных полиномов степени i. если в определении убрать условие однородности, то сумма перестанет быть прямой


    проективный модуль

    слагаемые прямых сумм свободных модулей называются "проективными модулями":

        P₁ ⊕ P₂ ⊕ ... ⊕ Pₙ = Kⁿ

    модуль P над кольцом R называется проективным, если
    для всякого гомоморфизма g: P → M
    и эпиморфизма f: N → M
    существует гомоморфизм h: P → N, такой что
    g = f ∘ h

    прямая сумма модулей проективна тогда и только тогда, когда проективно каждое слагаемое


    прямое произведение

    прямое произведение и группы

    пусть F и G две группы. рассмотрим покомпонентное умножение на F×G

                     (f1 , g1) ∙ (f2 , g2) = (f1 ∙ f2 , g1 ∙ g2)
    
    это умножение превращает F×G в группу

    в самом деле, это умножение ассоциативно, а его нейтральным элементом является

          e = (e , e)
    осталось заметить, что
          (h, g)⁻ = (h⁻, g⁻)

    таким образом, F×G образует группу относительно умножения, называемую прямым произведением групп F и G:

          F ⊗ G

    для случая конечных абелевых групп часто термины ‘прямое произведение’ и ‘прямая сумма’ используются как синонимы. в случае бесконечного числа факторов даже для абелевых групп следует различать прямое произведение и прямую сумму. как правило, они не только не изоморфны, но даже имеют разную мощность

    прямое произведение и кольца

    TODO

    прямое произведение и R-модули

    TODO


    иньективный модуль

    прямые множители свободных модулей называются иньективными модулями:

        Q₁ ⊗ Q₂ ⊗ ... ⊗ Qₙ = ⁿK

    модуль Q над кольцом R (ассоциативным с 1) называется инъективным, если
    для всякого гомоморфизма f: A → Q
    и мономорфизма g: A → B
    существует такой гомоморфизм h: B → Q, что
    f = h ∘ g

    прямое произведение модулей инъективно тогда и только тогда, когда инъективен каждый сомножитель


    HomoR(U,V)

    кольцо гомоморфизмов

    модуль линейных отображений

    пусть U, V - правые R-модули в коммутативном кольце R

               HomoR(U,V)  = { φ:U→V | ∀ u,u1,u2 ∈ U, ∀ λ ∈ R
                                         φ (u1 + u2) = (φ u1) + (φ u2)
                                         φ (u * λ) = (φ u) * λ
                                       }
    
               φ, ψ ∈ HomoR(U,V)
               (φ + ψ) u = (ψ u) + (ψ u)
                φ + ψ ∈ HomoR(U,V)

    такая операция задает на HomoR(U,V) структуру абелевой группы

    можно ли умножать отображения на скаляр? можно - при наличии бимодулей-аргументов

    для того, чтобы завести на Homo структуру модуля, надо иметь аргументом бимодуль

    пусть R и S - коммутативные кольца, λ ∈ R, α ∈ S

    задаем ...

    структуру правого S-модуля, если есть левый S-модуль, как первый аргумент:

              φ ∈ Homo(SUR, VR)S
              (φ * α) x = φ (α * x)

    структуру левого S-модуля, если есть левый S-модуль, как второй аргумент:

              φ ∈ SHomo(UR, SVR)
              (φ * α) x = α * (φ x)

    структуру правого R-модуля, если есть левый R-модуль, как первый аргумент:

              ψ ∈ Homo(SUR, SV)R
              (λ * ψ) x = ψ (x * λ)

    структуру левого R-модуля, если есть левый R-модуль, как второй аргумент:

              ψ ∈ RHomo(SU, SVR)
              (λ * ψ) x = (ψ x) * λ
    
             ψ ∈ Homo(RXS, RV)R
             x (α * ψ) = (x * α) ψ
    
             ψ ∈ RHomo(RX, RVS )
             x (ψ * α) =
    
             φ ∈ SHomo(RXS, RV)
             x (φ * λ) =
    
             φ ∈ SHomo(RX, RVS )
             x (λ * φ) =

    получившийся таким образом модуль Homo(U,V) контравариантен по первому аргументу (композиция переходит в обратную композицию, правое переходит в левое, а левое переходит в правое) и ковариантен по второму аргументу (композиция переходит в композицию, правое переходит в правое, левое переходит в левое)

    над коммутативными кольцами любой модуль ведет себя как бимодуль. можно ввести умножение на скаляры любым из четырех способов


    EndoR(V)

    кольцо эндоморфизмов

                φ   ψ
              U → V → W
    
              Homo(U,V) × Homo(V,W) → Homo(U,W)
              (φ , ψ) → ψ ∘ φ
    
    
              U = V = W
              φ,ψ ∈ HomoR(U,V) = EndoR(U) = Endo(U)      -- линейные операторы на U
              φ + ψ
              φ ∘ ψ
              λ * φ  , λ ∈ R
              (λ * φ) ∘ ψ = λ * (φ ∘ ψ) = φ ∘ (λ * ψ)

    относительно этих операций кольцо эндоморфизмов EndoR(U) образует R-алгебру с операцией "композиция морфизмов"

    замена базиса при Endo(U)

          u ∈ U,  dim(U) = n
          φ ∈ Endo(U)
    
          u = Σ ai * ei = Σ bi * fi, где
                                       e₁..eₙ - первый базис в U
                                       f₁..fₙ - второй базис в U
                                       g = [e ~~> f]   матрица замены базиса
          v = φ(u)
          v = Σ ci * ei = Σ di * fi
    
          cⁿ = Φ  * aⁿ
    
          dⁿ = Φ' * bⁿ
    
          Φ' = g⁻ * Φ * g

    т.о. при смене базиса матрица линейного оператора меняется на сопряженную, а у таких матриц много инвариантов: определители, следы, собственные значения


    двойственный модуль

    пусть R - коммутативное кольцо и U - правый R-модуль

    U* = Homo(U,R) называется двойственным к U модулем

    η ∈ U* называется ковектором (линейным функционалом на U)

    модуль, двойственный к свободному модулю сам является свободным модулем того же ранга:

           (Rⁿ)* = ⁿR        (ⁿR)* = Rⁿ
    
    правый является двойственным к левому и наоборот

    Th: при замене базиса базисы ковекторов преобразуются контравариантно по отношению к замене базисов векторов

    Proof:

          R - коммутативное кольцо, значит базис R есть 1
          пусть zₙ - базис в U
          пусть fₙ - базис в U*
    
          тогда базис в Homo(U,R) переводит одну компоненту базиса U в 1, а все осталные в 0:
          f*i(zj) = δij
          и значит
          fⁿ * zₙ = e
    
          заменим базис z на w : [z ~~> w] = g
          wₙ = zₙ * g
    
          тогда базис f изменится на h
    
              hⁿ * wₙ          =     e
              hⁿ * zₙ * g      =     e
          g * hⁿ * zₙ * g * g⁻ = g * e * g⁻
          g * hⁿ * zₙ          =     e
          g * hⁿ * zₙ          = fⁿ * zₙ
          g * hⁿ               = fⁿ
          hⁿ = g⁻ * fⁿ
    QED

    Th: при замене базиса базисы координаты ковекторов преобразуются ковариантно по отношению к замене базисов векторов

    Proof:

          пусть η ∈ U*
          η = aₙ * fⁿ
          при замене базиса
          η = bₙ * hⁿ
          bₙ * hⁿ = aₙ * fⁿ
          bₙ * g⁻ * fⁿ = aₙ * fⁿ
          bₙ * g⁻ = aₙ
          bₙ = aₙ * g
    QED

    U** = U, если U - свободный модуль конечного ранга

    пусть V - векторное пространство над полем K с базисом e₁..eₙ

    V* = Homo(V,K) есть двойственное пространство

    его элементами являются линейные функционалы ν:V→K и в нем есть базис e*₁..e*ₙ - это такие линейные функционалы, которые e*i (ej) = δij

    в конечномерном случае - зафиксировать изоморфизм V* ≅ V, это значит задать на V сильнейшую структуру - "невырожденное скалярное произведение":

        B : V × V → K

    зафиксируем u ∈ V и рассмотрим

          B (u , _) : V → K
                      v → B (u , v)
    
          B (u , _) ∈ V*
    
          B~ : V → V*
               u → B (u , _)
    
    
          ~ : L (V, V ; K) → Homo(V , V*)
              B → B~
    
    последнее оторбражение линейно, иньективно и являются гомоморфизмом (в конечномерном случае)

    Iso(V,V*) = невырожденные билинейные формы

    ортогональная прямая сумма

    (U , Bu) ⊞ (V , Bv) = (U ⊕ V , BU ⊕ V)

    BU ⊕ V = Bu (u₁ , u₂) + Bv (v₁ , v₂)

    каждый вектор U ортогонален каждому вектору V


    index