#абстрактная алгебра #cs

Мы уже прошли две большие части abstract algebra: groups и rings. Теперь переходим к fields. Но чтобы нормально говорить про fields глубже, особенно про:

extension fields
finite fields
F_(p^n)

нужен язык vector spaces.

На первый взгляд vector spaces — это тема из linear algebra. Но здесь они нужны не ради геометрии со стрелочками, а как инструмент для понимания fields.

Главная идея будет такая:

большое field можно рассматривать как vector space над меньшим field.

Например, complex numbers:

C

можно рассматривать как vector space over:

R

потому что каждый complex number имеет вид:

a + bi

где:

a, b ∈ R

То есть C устроено как “двумерное пространство” над R.

Позже такая же идея появится для finite fields:

F_(p^n)

как vector space dimension n over:

F_p

Vector space

Пусть F — field.

A vector space over F — это set V, где есть две операции:

vector addition

и:

scalar multiplication

Elements of V называются:

vectors

Elements of field F называются:

scalars

То есть vectors живут в V, а scalars живут в F.

Что должно выполняться

V должно быть Abelian group under addition.

То есть vectors можно складывать:

u + v

и при этом работают обычные свойства:

u + v = v + u
(u + v) + w = u + (v + w)

есть zero vector:

0

и у каждого vector есть additive inverse:

-v

Но кроме addition есть ещё scalar multiplication.

Если:

a ∈ F

и:

v ∈ V

то можно умножить scalar на vector:

av ∈ V

Axioms of scalar multiplication

Для всех scalars:

a, b ∈ F

и всех vectors:

u, v ∈ V

должны выполняться свойства:

a(v + u) = av + au

Scalar multiplication distributes over vector addition.

То есть scalar можно “разнести” по сумме vectors.


(a + b)v = av + bv

Addition scalars тоже distributes over vector.

То есть если scalar сам является суммой, его можно разнести.


a(bv) = (ab)v

Если сначала умножить vector на b, а потом на a, это то же самое, что умножить vector на product scalars ab.


1v = v

Unity field действует на vector как identity.

Простая интуиция

Vector space — это место, где можно:

  1. складывать vectors;
  2. умножать vectors на scalars;
  3. делать это совместимо с arithmetic field F.

То есть vector space — это не обязательно “стрелочки на плоскости”.

Vector может быть:

tuple
matrix
polynomial
complex number
field element

Главное, чтобы addition и scalar multiplication работали правильно.

Example: R^n over R

Классический пример:

R^n = {(a1, a2, ..., an) | ai ∈ R}

Это vector space over:

R

Elements выглядят как tuples:

(a1, a2, ..., an)

Addition делается coordinatewise:

(a1, a2, ..., an) + (b1, b2, ..., bn)
=
(a1 + b1, a2 + b2, ..., an + bn)

Scalar multiplication тоже coordinatewise:

c(a1, a2, ..., an)
=
(ca1, ca2, ..., can)

Например, в R^3:

(1, 2, 3) + (4, 5, 6) = (5, 7, 9)

и:

2(1, 2, 3) = (2, 4, 6)

Example: matrices as vector space

Рассмотрим:

M_2(Q)

Это set всех 2 × 2 matrices with entries from Q.

Элемент выглядит так:

[a1  a2]
[a3  a4]

где:

a1, a2, a3, a4 ∈ Q

Это vector space over:

Q

Addition делается entrywise:

[a1  a2] + [b1  b2] = [a1 + b1   a2 + b2]
[a3  a4]   [b3  b4]   [a3 + b3   a4 + b4]

Scalar multiplication тоже entrywise:

c [a1  a2] = [ca1  ca2]
  [a3  a4]   [ca3  ca4]

Здесь matrices — это vectors, а rational numbers — scalars.

Важно: matrix multiplication здесь не нужна для vector space structure. Нам достаточно matrix addition и scalar multiplication.

Example: Z_p[x] over Z_p

Пусть p — prime.

Тогда:

Z_p

is a field.

Polynomial ring:

Z_p[x]

можно рассматривать как vector space over:

Z_p

Vectors здесь — polynomials:

a_nx^n + ... + a_1x + a_0

Scalars — elements of:

Z_p

То есть:

0, 1, ..., p - 1

Addition polynomials — обычное polynomial addition modulo p.

Scalar multiplication — умножение всех coefficients на scalar modulo p.

Например, в Z_3[x]:

2(x^2 + 2x + 1)
=
2x^2 + 4x + 2
=
2x^2 + x + 2

because:

4 ≡ 1 (mod 3)

Example: C as vector space over R

Complex numbers:

C = {a + bi | a, b ∈ R}

form a vector space over:

R

Vectors здесь — complex numbers. Scalars — real numbers.

Addition обычное:

(a + bi) + (c + di)
=
(a + c) + (b + d)i

Scalar multiplication тоже обычное:

r(a + bi)
=
ra + rbi

где:

r ∈ R

Например:

2(3 + 5i) = 6 + 10i

Главная идея:

over R, every complex number is a linear combination of 1 and i.

То есть:

a + bi = a · 1 + b · i

Это потом станет моделью для extension fields.

Field as vector space over subfield

Самый важный пример для нас:

Пусть E — field, а F — subfield of E. Тогда E можно рассматривать как vector space over F. Почему?

Elements of E будут vectors. Elements of F будут scalars. Addition берётся из field E. Scalar multiplication тоже берётся из multiplication in E.

То есть если:

a ∈ F

и:

v ∈ E

то произведение:

av

already defined in E.

Почему это важно

Это главный мост к extension fields.

Если:

F ⊆ E

то можно спрашивать:

какая dimension у E как vector space over F?

Например:

C

is vector space over:

R

with basis:

1, i

и dimension:

2

Позже мы будем писать это так:

[C : R] = 2

Для finite fields будет аналогично:

[F_(p^n) : F_p] = n

То есть field with p^n elements is n-dimensional vector space over F_p.

Subspace

Теперь аналог subgroup и subring.

Пусть V — vector space over field F.

Subset:

U ⊆ V

называется subspace / подпространством, если U itself is a vector space over F under the same operations.

То есть U должно быть stable under:

addition
scalar multiplication

Если взять two vectors from U, их сумма должна остаться in U. Если взять vector from U и scalar from F, результат тоже должен остаться in U.

Example: polynomials of degree at most 2

Рассмотрим vector space всех real polynomials:

R[x]

over:

R

Теперь возьмём subset polynomials degree at most 2:

U = {a2x^2 + a1x + a0 | a0, a1, a2 ∈ R}

Это subspace.

Почему?

Если сложить два polynomials degree at most 2, результат всё ещё имеет degree at most 2.

Например:

(2x^2 + x + 1) + (5x^2 - 3)
=
7x^2 + x - 2

Всё ещё degree at most 2.

Если умножить такой polynomial на scalar:

3(2x^2 + x + 1)
=
6x^2 + 3x + 3

результат тоже degree at most 2. Значит subset closed under addition and scalar multiplication. Поэтому это subspace.

Linear combination

Пусть:

v1, v2, ..., vn ∈ V

A linear combination / линейная комбинация этих vectors — это expression вида:

a1v1 + a2v2 + ... + anvn

где coefficients:

a1, a2, ..., an ∈ F

То есть мы берём vectors, умножаем их на scalars, а потом складываем.

Простой пример в R^2

Возьмём vectors:

v1 = (1, 0)

и:

v2 = (0, 1)

Тогда:

3v1 + 5v2

равно:

3(1, 0) + 5(0, 1)
=
(3, 0) + (0, 5)
=
(3, 5)

То есть vector:

(3, 5)

is a linear combination of v1 and v2.

Span

Пусть:

v1, v2, ..., vn ∈ V

Set всех linear combinations:

a1v1 + a2v2 + ... + anvn

называется span этих vectors.

Обозначение:

<v1, v2, ..., vn>

или иногда:

span(v1, v2, ..., vn)

То есть:

<v1, v2, ..., vn>
=
{a1v1 + a2v2 + ... + anvn | a1, a2, ..., an ∈ F}

Это subspace of V.

Что значит “vectors span V

Если:

<v1, v2, ..., vn> = V

то говорят, что vectors:

v1, v2, ..., vn

span V.

То есть каждый vector in V можно собрать as linear combination of these vectors.

Например, в R^2 vectors:

(1, 0)

и:

(0, 1)

span all of R^2, потому что любой vector:

(a, b)

можно записать как:

a(1, 0) + b(0, 1)

Почему span важен для fields

Когда мы рассматриваем extension field E over subfield F, мы часто хотим понять:

можно ли выразить every element of E через несколько special elements?

Например, в C over R:

C = <1, i>

because every complex number:

a + bi

can be written as:

a · 1 + b · i

Позже для quotient fields вида:

F[x] / <p(x)>

где deg p = n, elements будут выражаться через:

1, α, α^2, ..., α^(n-1)

То есть:

F(α) = <1, α, α^2, ..., α^(n-1)>

as vector space over F.

Вот зачем нам vector spaces.

Linear independence

Теперь вводим одну из главных идей vector spaces:

linear independence

или:

linear dependence

Интуитивно:

vectors linearly independent, если ни один из них не является лишним.

То есть нельзя собрать один vector из остальных через linear combination.

Linearly dependent vectors

Пусть:

v1, v2, ..., vn

are vectors in vector space V over field F.

Они называются linearly dependent / линейно зависимыми, если существуют scalars:

a1, a2, ..., an ∈ F

not all zero, такие что:

a1v1 + a2v2 + ... + anvn = 0

Ключевая часть:

not all zero

Потому что trivial combination всегда даёт zero:

0v1 + 0v2 + ... + 0vn = 0

Это ничего не доказывает.

Linearly dependent means: есть nontrivial linear combination, которая даёт zero vector.

Linearly independent vectors

Vectors называются linearly independent / линейно независимыми, если такой nontrivial combination нет.

То есть equality:

a1v1 + a2v2 + ... + anvn = 0

возможна только в trivial case:

a1 = a2 = ... = an = 0

Главная мысль:

linearly independent vectors не содержат лишнего vector, который можно выразить через остальные.

Пример в R^3

Рассмотрим vectors:

v1 = (1, 0, 0)
v2 = (1, 0, 1)
v3 = (1, 1, 1)

Проверим, являются ли они linearly independent over R.

Допустим:

a(1, 0, 0) + b(1, 0, 1) + c(1, 1, 1) = (0, 0, 0)

Складываем coordinatewise:

(a + b + c, c, b + c) = (0, 0, 0)

Значит:

a + b + c = 0
c = 0
b + c = 0

Из второго equation:

c = 0

Тогда из третьего:

b + 0 = 0

то есть:

b = 0

Тогда из первого:

a + 0 + 0 = 0

то есть:

a = 0

Получили only trivial solution:

a = b = c = 0

Значит vectors linearly independent.

Basis

Теперь самое важное practical понятие.

Basis / базис vector space V over field F — это subset B, который выполняет два условия:

  1. B linearly independent;
  2. every element of V is a linear combination of elements of B.

То есть basis одновременно:

spans V

и:

has no redundant vectors

Почему basis важен

Basis даёт coordinate system для vector space.

Если B — basis, то every vector in V can be written as linear combination of basis vectors.

Причём representation unique.

То есть если:

B = {v1, v2, ..., vn}

то каждый vector v ∈ V можно записать как:

v = a1v1 + a2v2 + ... + anvn

и coefficients:

a1, a2, ..., an

определены uniquely.

Example: standard basis in R^2

В R^2 standard basis:

e1 = (1, 0)
e2 = (0, 1)

Любой vector:

(a, b)

можно записать как:

(a, b) = a(1, 0) + b(0, 1)

То есть:

{(1, 0), (0, 1)}

spans R^2.

И эти vectors linearly independent, потому что:

a(1, 0) + b(0, 1) = (0, 0)

means:

(a, b) = (0, 0)

so:

a = 0
b = 0

Значит это basis.

Example: matrix vector space

Рассмотрим vector space:

V = { [a     a + b]
      [a + b   b] | a, b ∈ R }

Это set matrices специального вида.

Claim: следующий set является basis for V over R:

B =
{
  [1  1]
  [1  0],

  [0  1]
  [1  1]
}

Обозначим:

M1 = [1  1]
     [1  0]

и:

M2 = [0  1]
     [1  1]

Проверяем linear independence

Допустим:

aM1 + bM2 = 0

То есть:

a [1  1] + b [0  1] = [0  0]
  [1  0]     [1  1]   [0  0]

Получаем:

[a      a + b] = [0  0]
[a + b  b    ]   [0  0]

Значит:

a = 0

и:

b = 0

So only trivial linear combination gives zero.

Therefore:

M1, M2

are linearly independent.

Проверяем span

Every element of V имеет вид:

[a      a + b]
[a + b  b    ]

Но его можно записать так:

[a      a + b] = a [1  1] + b [0  1]
[a + b  b    ]     [1  0]     [1  1]

То есть every matrix in V is a linear combination of M1 and M2.

Значит:

B = {M1, M2}

spans V.

И так как B одновременно spans V и linearly independent, это basis.

Invariance of basis size

Теперь main theorem этой части:

если vector space имеет two finite bases, then these bases have same number of elements.

То есть если:

{u1, u2, ..., um}

и:

{w1, w2, ..., wn}

оба являются bases of V over F, то:

m = n

Это называется:

invariance of basis size

Почему это важно

Без этой theorem слово “dimension” не имело бы смысла.

Мы хотим сказать:

R^2 has dimension 2

потому что у него basis из двух elements.

Но если бы у одного и того же vector space мог быть basis из двух vectors и другой basis из пяти vectors, dimension была бы ambiguous.

Theorem говорит: такого не бывает.

All bases of a finite-dimensional vector space have the same size.

Dimension

Dimension / размерность vector space — это number of elements in a basis.

Если vector space has basis with n elements, then:

dim V = n

или, если нужно указать field:

dim_F V = n

Examples

Для:

R^2

standard basis:

(1, 0), (0, 1)

has 2 elements.

Значит:

dim_R R^2 = 2

Для:

R^3

standard basis:

(1, 0, 0), (0, 1, 0), (0, 0, 1)

has 3 elements.

Значит:

dim_R R^3 = 3

Для complex numbers over real numbers:

C

basis over R:

{1, i}

because every complex number has form:

a + bi = a · 1 + b · i

Значит:

dim_R C = 2

Dimension of the zero vector space

Trivial vector space:

{0}

has dimension:

0

Почему?

В нём нет nonzero directions.

Его basis считается empty set:

Это может выглядеть странно, но логика такая:

  • empty set linearly independent;
  • span of empty set gives only zero vector.

Therefore:

dim {0} = 0

Finite-dimensional and infinite-dimensional

Vector space называется finite-dimensional / конечномерным, если у него есть finite basis.

Например:

R^2
R^3
C over R
M_2(Q) over Q

are finite-dimensional.

Vector space называется infinite-dimensional / бесконечномерным, если finite basis does not exist.

Например:

R[x]

over R is infinite-dimensional.

Почему?

Basis можно взять:

1, x, x^2, x^3, ...

Чтобы получить all polynomials, нужны powers of x arbitrarily high degree.

No finite list of polynomials can span all of R[x].

Почему dimension важна для fields

Для нас самая важная notation будет:

[E : F]

Это degree of field extension.

Но по смыслу:

[E : F] = dim_F E

То есть это dimension of E as vector space over F.

Например:

[C : R] = 2

because:

C = <1, i>

over R.

Позже для finite fields:

[F_(p^n) : F_p] = n

То есть finite field with p^n elements is n-dimensional vector space over its prime field F_p.