Linear algebra emerges when a context deals with values that can be added and (in one sense or another) scaled, yielding values of the same kind (thus likewise amenable to addition and scaling).

A minimal formalisation of addition
suffices to induce a basic form of
scaling: repeated addition always
implies a representation of the positive naturals
among automorphisms of the addition. A
suitable embedding of the addition's operands in its automorphisms can serve as
a multiplication on those operands, forming a
ringlet. In any case, the automorphisms form a ringlet under
their pointwise addition, using
composition as multiplication

; and the action of the automorphisms on the
addition is distinctly multiplicative. Selecting a commutative sub-ringlet of
the automorphisms to construe as scalings, typically represented as a
homomorphic image of some ringlet of scalars

, lets us
form a module out of our addition. For ringlets with
particularly nice properties, the module may be called a linear or vector space
and its homomorphisms linear maps. I'll refer to values of the module
as scalable values

for the present.

Given a specific scalable value a, the mapping on scalable values that just
adds a to its input, add(a) = (: b+a ←b :), is described
as translation

by a (or through a); and the mapping on
scalars that maps each to its result of scaling a, (: x.a ←x :), is known
as a's ray

. The crucial properties of the addition and
scaling are:

- Addition and multiplication must be Abelian combiners.
- Abelian (a.k.a. commutative) just means you can swap the order of operands; a+b = b+a whenever either is meaningful; and a.b = b.a likewise. A combiner is just a binary operator that's associative and closed. A binary operator combines values two at a time. Being closed just means that combining two operands gives an operand; if we know how to multiply or add a and b, then a +b or a.b are also values we know how to multiply or add (in an appropriate sense). Associativity means that (a.b).c = a.(b.c) whenever both are meaningful, likewise (a+b)+c = a+(b+c); consequently, we can meaningfully talk about a.b.c or a+b+c without needing parentheses to indicate the order in which the additions or multiplicaions are to be performed. Taken together, these imply that we can define sums (of several scalable values or of several scalars) and products (of several scalars and at most one scalable value) without reference to the order in which we add or multiply the values.
- Scaling must distribute over addition
- With a, b as scalars and x, y as scaleable values, we require (a+b).x =
(a.x)+(b.x) and a.(x+y) = (a.x)+(a.y). In consequence of this, taken together
with the dropping of parentheses made possible by associativity, it is usual to
omit the parentheses around products, writing a.(x+y) = a.x +a.y and similar;
when several values and scalings are combined with no interposed parentheses,
all multiplication is
done first

, then the addition; alternatively, this may be expressed as multiplicationbinding more tightly than

addition. - Addition and non-zero scaling must be cancellable
- i.e. each translation is monic, as is each non-zero scaling and the ray
of each non-zero scalable value. Whenever both a.e and c.e are meaningful, a.e
= c.e must imply
either a = c or e is an additive identity

. Likewise, whenever a+e and c+e are meaningful, a+e = c+e must imply a = c. Cancellability makes it possible to augment the scalings with ratios and the scalable values and scalings with differences so as to make the scalable values into an additive group, the scalings also into an additive group and the non-zero scalings into a multiplicative group. More orthodox treatments take at least some of these augmentations for granted and, when they take all, refer to the scalable values asvectors

.

The actual scalings in use may be restricted to whole numbers or they may form a continuum such as the real numbers; there may (as arises among the complex numbers) be some scalars whose squares are additive inverses for 1, or there may be none such (as for reals and naturals). For the sake of generality, I shall thus refer to the collection of scalars in use simply as {scalars}.

Context may deal with more than one collection of scalable values; within
each such collection, all of the above holds; if the ringlets of scalings in use
by some such collections are isomorphic, we can represent the scalings as
multiplication by a common set of scalars; this gives structure to the
relationships between the disparate collections of scalable values. Given one
collection, U, whose members may be scaled by {scalars} and added to one
another, and a second collection V, whose members may likewise be scaled and
added to one another, I describe a relation (V:r:U) as **linear**
– formally: {scalars}-linear

or linear over {scalars}

– precisely if:

- for every scalar c, whenever r relates u to v, it also relates c.u to c.v; and
- whenever r relates u to v and w to y, it also relates u+w to v+y.

Using the notation for mappings, these can be summarised by r(u+a.w) =
r(u) +a.r(w) for every u, w in U and scalar a; a linear mapping is also known as
a linear map. When a collection (construed as the identity mapping on its
members) is linear, these conditions simply say that adding members or scaling a
member always yields a member; I describe such a collection as a linear
space

; when, furthermore, it is an additive group (as may be achieved by the
augmentation mentioned above) it is known as a vector space

and its
members as vectors. The collections of left and right values of a linear
relation are necessarily always linear spaces; and {scalars} itself is, by
specification, always a {scalars}-linear space. The collection of linear maps
from a linear space U to {scalars} is also necessarily a linear space; it is
known as the **dual** of U, dual(U) = {linear maps ({scalars}:
|U)}.

Linear maps from a module to itself are linear automorphisms; as ever, these form a ringlet; and the module can be construed as a module over the centre of this ringlet without changing its behaviour as a module. We may start with a commutative ringlet embedded in the automorphisms of an addition, to make the addition a module over the ringlet, and later find the module's ringlet of linear automorphisms has a centre bigger than the image of the original ringlet. It then makes sense to treat members of the centre as scalings also, implicitly extending the original ringlet. Conversely, we may have an addition among whose automorphisms there is some particular ringlet that is of interest to us (e.g. its members correspond to physically realisable transformations of some system described by the values being added); we can then find all the automorphisms of the addition that commute with all of these and make our addition a module over the ringlet of those.

If our ringlet has a conjugation, we can introduce a partner of linearity, called antlinearity: a mapping between modules over the ringlet is conjugate-linear if it is an automorphism of the underlying additions while conjugating scaling. A conjugate-linear map from the module to its dual then provides a way of combining two of our scalable values to produce a number, as does a linear map from the module to its dual; these serve as a way to multiply scalable values, to give a number; when they have suitable symmetries, they are known as hermitian and quadratic forms. These, in turn, let us take the square of a scalable value; in the hermitian case (conjugate-linear into the dual) the resulting number can always be real even if the ringlet isn't all real; and, when every non-zero scalable value has a positive square, in this sense, we can use it to define a sense of distance.

Given a relation r whose left values lie in one module and right values lie
another (possibly the same one) over the same ringlet of scalars,
the **span** of r (over a given ringlet, or the R-span if R is that
ringlet; typically R is implicit from context) is the relation obtained from it
by imposing linearity; formally

- R-span = (: (: sum(s.g) ← sum(s.f) ; n is natural, ({scalars}:s|n), (:g|n) and (r:f|n) are lists and r&on;f subsumes g :) ←(V:r:U) ; U, V are R-modules :)

i.e. whenever f and g are equal-length lists of r's right and left
values, respectively, and r relates each g(i) to the matching f(i), we can
select an arbitrary list, of the same length, of scalars, apply each scaling to
the matching enties in f and g, sum the results and span(r) will relate the
scaled-g sum to the scaled-f sum. (Note that this only involves finite sums;
this leads to some complications if there are any infinite linearly independent mappings.) This can be characterised as
the linear completion

of r. When r is simply a collection, its span is
just the set of values one can obtain by scaling and summing r's members.

Given a mapping to a linear space, we can take the span of its collection of
outputs (i.e. left values); if no proper sub-relation of the mapping has, as the
span of *its* collection of outputs, the same linear space then the
mapping is described as **linearly independent**; this necessarily
implies that the mapping is also monic. A linearly independent mapping is known
as a **basis** of the span of its collection of outputs. When a
mapping (:b|n) is linearly independent, with V = span(|b:), a mapping (dual(V):
p |n) is described as a dual basis

of b precisely if: for each i in n,
p(i,b(i)) = 1 and, for each *other* j in n, j ≠ i, p(i,b(j)) = 0. In
such a case, any v in V can be written as sum(: (p(i)·v).b(i) ←i :n)
and the span of any mapping (:f|b) is (: sum(: (p(i)·v).f(b(i)) ←i
:n) ←v |V).