# Vector Spaces

- [Introduction](introduction.md)

  - [Vector Space Categories](introduction.md#vector-space-categories)

  - [The Construction of a Vector Space](introduction.md#the-construction-of-a-vector-space)

- [Creation of Vector Spaces and Arithmetic with Vectors](creation-arithmetic.md)

  - [Construction of a Vector Space](creation-arithmetic.md#construction-of-a-vector-space)

    - [`VectorSpace(K, n): Fld, RngIntElt → ModTupFld`](creation-arithmetic.md#function-vectorspace-fld-rngintelt)

    - [`KSpace(K, n): Fld, RngIntElt → ModTupFld`](creation-arithmetic.md#function-kspace-fld-rngintelt)

    - [`KModule(K, n): Fld, RngIntElt → ModFld`](creation-arithmetic.md#function-kmodule-fld-rngintelt)

    - [`KMatrixSpace(K, m, n): Fld, RngIntElt, RngIntElt → ModMatFld`](creation-arithmetic.md#function-kmatrixspace-fld-rngintelt-rngintelt)

    - [`Hom(V, W): ModTupFld, ModTupFld → ModMatFld`](creation-arithmetic.md#function-hom-modtupfld-modtupfld)

    - [`Example: Create Q6`](creation-arithmetic.md#example-ex-d5b27e)

    - [`Example: Create K35`](creation-arithmetic.md#example-ex-4fca7f)

  - [Construction of a Vector Space with Inner Product Matrix](creation-arithmetic.md#construction-of-a-vector-space-with-inner-product-matrix)

    - [`VectorSpace(K, n, F): Fld, RngIntElt, Mtrx → ModTupFld`](creation-arithmetic.md#function-vectorspace-fld-rngintelt-mtrx)

    - [`KSpace(K, n, F): Fld, RngIntElt, Mtrx → ModTupFld`](creation-arithmetic.md#function-kspace-fld-rngintelt-mtrx)

  - [Construction of a Vector](creation-arithmetic.md#construction-of-a-vector)

    - [`elt<V | L>: ModTupFld, List → ModTupFldElt`](creation-arithmetic.md#constructor-constructor-elt-modtupfld-list-modtupfldelt)

    - [`V ! Q: ModTupFld, [RngElt] → ModTupFldElt`](creation-arithmetic.md#operation-op-modtupfld-rngelt)

    - [`CharacteristicVector(V, S): ModTupFld, { RngElt } → ModTupFldElt`](creation-arithmetic.md#function-characteristicvector-modtupfld-rngelt)

    - [`V ! 0: ModTupFld, RngIntElt → ModTupFldElt`](creation-arithmetic.md#operation-op-modtupfld-rngintelt)

    - [`Zero(V): ModTupFld → ModTupFldElt`](creation-arithmetic.md#function-zero-modtupfld)

    - [`Random(V): ModTupFld → ModTupFldElt`](creation-arithmetic.md#function-random-modtupfld)

    - [`Example: Vectors`](creation-arithmetic.md#example-ex-df9b72)

    - [`Example: Matrices`](creation-arithmetic.md#example-ex-d17116)

  - [Deconstruction of a Vector](creation-arithmetic.md#deconstruction-of-a-vector)

    - [`ElementToSequence(u): ModTupFldElt → [RngElt]`](creation-arithmetic.md#function-elementtosequence-modtupfldelt)

    - [`Eltseq(u): ModTupFldElt → [RngElt]`](creation-arithmetic.md#function-eltseq-modtupfldelt)

  - [Arithmetic with Vectors](creation-arithmetic.md#arithmetic-with-vectors)

    - [`u + v: ModTupFldElt, ModTupFldElt → ModTupFldElt`](creation-arithmetic.md#operation-op-plus-modtupfldelt-modtupfldelt)

    - [`- u: ModTupFldElt → ModTupFldElt`](creation-arithmetic.md#operation-operation-modtupfldelt-modtupfldelt)

    - [`u - v: ModTupFldElt, ModTupFldElt → ModTupFldElt`](creation-arithmetic.md#operation-op-minus-modtupfldelt-modtupfldelt)

    - [`x * u: FldElt, ModTupFldElt → ModTupFldElt`](creation-arithmetic.md#operation-op-times-fldelt-modtupfldelt)

    - [`u * x: ModTupFldElt, FldElt → ModTupFldElt`](creation-arithmetic.md#operation-op-times-modtupfldelt-fldelt)

    - [`u / x: ModTupFldElt, FldElt → ModTupFldElt`](creation-arithmetic.md#operation-op-div-modtupfldelt-fldelt)

    - [`NumberOfColumns(u): ModTupFldElt → RngIntElt`](creation-arithmetic.md#function-numberofcolumns-modtupfldelt)

    - [`Ncols(u): ModTupFldElt → RngIntElt`](creation-arithmetic.md#function-ncols-modtupfldelt)

    - [`Depth(u): ModTupRngElt → RngIntElt`](creation-arithmetic.md#function-depth-modtuprngelt)

    - [`(u, v): ModTupFldElt, ModTupFldElt → FldElt`](creation-arithmetic.md#literal-literal-u-v-modtupfldelt-modtupfldelt-fldelt)

    - [`InnerProduct(u, v): ModTupFldElt, ModTupFldElt → FldElt`](creation-arithmetic.md#function-innerproduct-modtupfldelt-modtupfldelt)

    - [`IsZero(u): ModElt → BoolElt`](creation-arithmetic.md#function-iszero-modelt)

    - [`Norm(u): ModTupFldElt → FldElt`](creation-arithmetic.md#function-norm-modtupfldelt)

    - [`Normalise(u): ModTupFldElt → ModTupFldElt`](creation-arithmetic.md#function-normalise-modtupfldelt)

    - [`Normalize(u): ModTupFldElt → ModTupFldElt`](creation-arithmetic.md#function-normalize-modtupfldelt)

    - [`Rotate(u, k): ModTupFldElt, RngIntElt → ModTupFldElt`](creation-arithmetic.md#function-rotate-modtupfldelt-rngintelt)

    - [`Rotate(~u, k): ModTupFldElt, RngIntElt`](creation-arithmetic.md#function-rotate-modtupfldelt-rngintelt-ref)

    - [`NumberOfRows(u): ModTupFldElt → RngIntElt`](creation-arithmetic.md#function-numberofrows-modtupfldelt)

    - [`Nrows(u): ModTupFldElt → RngIntElt`](creation-arithmetic.md#function-nrows-modtupfldelt)

    - [`Support(u): ModTupFldElt → { RngElt }`](creation-arithmetic.md#function-support-modtupfldelt)

    - [`TensorProduct(u, v): ModTupFldElt, ModTupFldElt → FldElt`](creation-arithmetic.md#function-tensorproduct-modtupfldelt-modtupfldelt)

    - [`Trace(u, F): ModTupFldElt, Fld → ModTupFldElt`](creation-arithmetic.md#function-trace-modtupfldelt-fld)

    - [`Trace(u): ModTupFldElt → ModTupFldElt`](creation-arithmetic.md#function-trace-modtupfldelt)

    - [`Weight(u): ModTupFldElt → RngIntElt`](creation-arithmetic.md#function-weight-modtupfldelt)

    - [`Example: Arithmetic`](creation-arithmetic.md#example-ex-ca5d9a)

    - [`Example: Inner Product`](creation-arithmetic.md#example-ex-e5eb13)

  - [Indexing Vectors and Matrices](creation-arithmetic.md#indexing-vectors-and-matrices)

    - [`u[i]: ModTupFldElt, RngIntElt → RngElt`](creation-arithmetic.md#literal-literal-u-i-modtupfldelt-rngintelt-rngelt)

    - [`u[i]: ModTupFldElt, RngIntElt → ModTupFldElt`](creation-arithmetic.md#indexed-indexed-u-modtupfldelt-rngintelt-modtupfldelt)

    - [`u[i, j]: ModTupFldElt, RngIntElt, RngIntElt → ModTupFldElt`](creation-arithmetic.md#indexed-indexed-u-modtupfldelt-rngintelt-rngintelt-modtupfldelt)

    - [`u[i] := x: ModTupFldElt, RngIntElt, RngElt → ModTupFldElt`](creation-arithmetic.md#literal-literal-u-i-x-modtupfldelt-rngintelt-rngelt-modtupfldelt)

    - [`u[i] := x: ModTupFldElt, RngIntElt, ModTupFldElt → ModTupFldElt`](creation-arithmetic.md#literal-literal-u-i-x-modtupfldelt-rngintelt-modtupfldelt-modtupfldelt)

    - [`u[i, j] := x: ModTupFldElt, RngIntElt, RngIntElt, ModTupFldElt → ModTupFldElt`](creation-arithmetic.md#literal-literal-u-i-j-x-modtupfldelt-rngintelt-rngintelt-modtupfldelt-modtupfldelt)

    - [`Example: Indexing`](creation-arithmetic.md#example-ex-876f3e)

- [Subspaces, Quotient Spaces and Homomorphisms](subspace-quotient-homomorphism.md)

  - [Construction of Subspaces](subspace-quotient-homomorphism.md#construction-of-subspaces)

    - [`sub<V | L>: ModTupFld, List → ModTupFld`](subspace-quotient-homomorphism.md#constructor-constructor-sub-modtupfld-list-modtupfld)

    - [`Morphism(U, V): ModTupFld, ModTupFld → RModMatElt`](subspace-quotient-homomorphism.md#function-morphism-modtupfld-modtupfld)

    - [`Example: Subspace1`](subspace-quotient-homomorphism.md#example-ex-466045)

    - [`Example: Subspace2`](subspace-quotient-homomorphism.md#example-ex-1f57d1)

  - [Construction of Quotient Vector Spaces](subspace-quotient-homomorphism.md#construction-of-quotient-vector-spaces)

    - [`quo<V | L>: ModTupFld, List → ModTupFld, Map`](subspace-quotient-homomorphism.md#constructor-constructor-quo-modtupfld-list-modtupfld-map)

    - [`V / U: ModTupFld, ModTupFld → ModTupFld, Map`](subspace-quotient-homomorphism.md#operation-op-div-modtupfld-modtupfld)

    - [`Example: Quotients1`](subspace-quotient-homomorphism.md#example-ex-4d668d)

    - [`Example: Quotients2`](subspace-quotient-homomorphism.md#example-ex-e0a05b)

    - [`Example: Quotients3`](subspace-quotient-homomorphism.md#example-ex-aceeb2)

- [Changing the Coefficient Field](modification-coefficient-field.md)

  - [`ExtendField(V, L): ModTupFld, Fld → ModTupFld, MapHom`](modification-coefficient-field.md#function-extendfield-modtupfld-fld)

  - [`RestrictField(V, L): ModTupFld, Fld → ModTupFld, MapHom`](modification-coefficient-field.md#function-restrictfield-modtupfld-fld)

  - [`VectorSpace(V, F): ModTupFld, Fld → ModTupFld, Map`](modification-coefficient-field.md#function-vectorspace-modtupfld-fld)

  - [`KSpace(V, F): ModTupFld, Fld → ModTupFld, Map`](modification-coefficient-field.md#function-kspace-modtupfld-fld)

  - [`KMatrixSpace(V, F): ModTupFld, Fld → ModTupFld, Map`](modification-coefficient-field.md#function-kmatrixspace-modtupfld-fld)

  - [`KModule(V, F): ModTupFld, Fld → ModTupFld, Map`](modification-coefficient-field.md#function-kmodule-modtupfld-fld)

- [Basic Operations](operation.md)

  - [Accessing Vector Space Invariants](operation.md#accessing-vector-space-invariants)

    - [`V . i: ModTupFld, RngIntElt → ModTupFldElt`](operation.md#operation-operation-modtupfld-rngintelt-modtupfldelt)

    - [`CoefficientField(V): ModTupFld → Fld`](operation.md#function-coefficientfield-modtupfld)

    - [`BaseField(V): ModTupFld → Fld`](operation.md#function-basefield-modtupfld)

    - [`Degree(V): ModTupFld → RngIntElt`](operation.md#function-degree-modtupfld)

    - [`Degree(u): ModTupFldElt → RngIntElt`](operation.md#function-degree-modtupfldelt)

    - [`Dimension(V): ModTupFld → RngIntElt`](operation.md#function-dimension-modtupfld)

    - [`Generators(V): ModTupFld → { ModElt}`](operation.md#function-generators-modtupfld)

    - [`NumberOfGenerators(M): ModTupFld → RngIntElt`](operation.md#function-numberofgenerators-modtupfld)

    - [`Ngens(M): ModTupFld → RngIntElt`](operation.md#function-ngens-modtupfld)

    - [`OverDimension(V): ModTupFld → RngIntElt`](operation.md#function-overdimension-modtupfld)

    - [`OverDimension(u): ModTupFldElt → RngIntElt`](operation.md#function-overdimension-modtupfldelt)

    - [`Generic(V): ModFld → ModFld`](operation.md#function-generic-modfld)

    - [`Parent(V): ModFld → SetPow`](operation.md#function-parent-modfld)

  - [Membership and Equality](operation.md#membership-and-equality)

    - [`v in V: ModTupFldElt, ModTupFld → BoolElt`](operation.md#operation-op-in-modtupfldelt-modtupfld)

    - [`v notin V: ModTupFldElt, ModTupFld → BoolElt`](operation.md#operation-op-notin-modtupfldelt-modtupfld)

    - [`U subset V: ModTupFld, ModTupFld → BoolElt`](operation.md#operation-op-subset-modtupfld-modtupfld)

    - [`U notsubset V: ModTupFld, ModTupFld → BoolElt`](operation.md#operation-operation-notsubset-modtupfld-modtupfld-boolelt)

    - [`U eq V: ModTupFld, ModTupFld → BoolElt`](operation.md#operation-op-eq-modtupfld-modtupfld)

    - [`U ne V: ModTupFld, ModTupFld → BoolElt`](operation.md#operation-op-ne-modtupfld-modtupfld)

  - [Operations on Subspaces](operation.md#operations-on-subspaces)

    - [`U + V: ModTupFld, ModTupFld → ModTupFld`](operation.md#operation-op-plus-modtupfld-modtupfld)

    - [`U meet V: ModTupFld, ModTupFld → ModTupFld`](operation.md#operation-op-meet-modtupfld-modtupfld)

    - [`U meet:= V: ModTupFld, ModTupFld → ModTupFld`](operation.md#operation-operation-meet-modtupfld-modtupfld-modtupfld)

    - [`&meet S: [ ModTupFld ] → ModTupFld`](operation.md#operation-operation-meet-modtupfld-modtupfld)

    - [`TensorProduct(U, V): ModTupFld, ModTupFld → FldElt`](operation.md#function-tensorproduct-modtupfld-modtupfld)

    - [`Complement(V, U): ModTupFld, ModTupFld → ModTupFld`](operation.md#function-complement-modtupfld-modtupfld)

    - [`Transversal(V, U): ModTupFld, ModTupFld → { ModTupFldELt}`](operation.md#function-transversal-modtupfld-modtupfld)

- [Reducing Vectors Relative to a Subspace](reducing-vectors.md)

  - [`ReduceVector(W, v): ModTupRng, ModTupRngElt → ModTupRngElt`](reducing-vectors.md#function-reducevector-modtuprng-modtuprngelt)

  - [`ReduceVector(W, ~v): ModTupRng, ModTupRngElt`](reducing-vectors.md#function-reducevector-modtuprng-modtuprngelt-2)

  - [`DecomposeVector(U, v): ModTupRng, ModTupRngElt → ModTupRngElt, ModTupRngElt`](reducing-vectors.md#function-decomposevector-modtuprng-modtuprngelt)

- [Bases](basis.md)

  - [`VectorSpaceWithBasis(Q): [ModTupFldElt] → ModTupFld`](basis.md#function-vectorspacewithbasis-modtupfldelt)

  - [`VectorSpaceWithBasis(a): AlgMatElt → ModTupFld`](basis.md#function-vectorspacewithbasis-algmatelt)

  - [`VectorSpaceWithBasis(a): ModMatFldElt → ModTupFld`](basis.md#function-vectorspacewithbasis-modmatfldelt)

  - [`KSpaceWithBasis(Q): [ModTupFldElt] → ModTupFld`](basis.md#function-kspacewithbasis-modtupfldelt)

  - [`KSpaceWithBasis(a): AlgMatElt → ModTupFld`](basis.md#function-kspacewithbasis-algmatelt)

  - [`KSpaceWithBasis(a): ModMatFldElt → ModTupFld`](basis.md#function-kspacewithbasis-modmatfldelt)

  - [`KModuleWithBasis(Q): [ModTupFldElt] → ModTupFld`](basis.md#function-kmodulewithbasis-modtupfldelt)

  - [`Basis(V): ModTupFld → [ModTupFldElt]`](basis.md#function-basis-modtupfld)

  - [`BasisElement(V, i): ModTupFld, RngIntElt → ModTupFldElt`](basis.md#function-basiselement-modtupfld-rngintelt)

  - [`BasisMatrix(V): ModTupFld → ModMatElt`](basis.md#function-basismatrix-modtupfld)

  - [`Coordinates(V, v): ModTupFld, ModTupFldElt → [FldElt]`](basis.md#function-coordinates-modtupfld-modtupfldelt)

  - [`Dimension(V): ModTupFld → RngIntElt`](basis.md#function-dimension-modtupfld-2)

  - [`ExtendBasis(Q, U): [ModTupFldElt], ModTupFld → [ModTupFldElt]`](basis.md#function-extendbasis-modtupfldelt-modtupfld)

  - [`ExtendBasis(U, V): ModTupFld, ModTupFld → [ModTupFldElt]`](basis.md#function-extendbasis-modtupfld-modtupfld)

  - [`IsIndependent(S): { ModTupFldElt} → BoolElt`](basis.md#function-isindependent-modtupfldelt)

  - [`IsIndependent(Q): [ ModTupFldElt ] → BoolElt`](basis.md#function-isindependent-modtupfldelt-2)

  - [`Example: Basis`](basis.md#example-ex-a4fb0c)

- [Operations with Linear Transformations](linear-transformation.md)

  - [`v * a: ModTupFldElt, ModMatFldElt → ModTupFldElt`](linear-transformation.md#operation-op-times-modtupfldelt-modmatfldelt)

  - [`a(v): ModMatFldElt, ModTupFldElt → ModTupFldElt`](linear-transformation.md#literal-a-modmatfldelt-modtupfldelt)

  - [`a * b: ModMatRngElt, ModMatRngElt → ModMatRngElt`](linear-transformation.md#operation-op-times-modmatrngelt-modmatrngelt)

  - [`Domain(a): ModMatRngElt → ModTupRng`](linear-transformation.md#function-domain-modmatrngelt)

  - [`Codomain(a): ModMatRngElt → ModTupRng`](linear-transformation.md#function-codomain-modmatrngelt)

  - [`Image(a): ModMatRngElt → ModTupRng, Map, Map`](linear-transformation.md#function-image-modmatrngelt)

  - [`Rank(a): ModMatRngElt → RngIntElt`](linear-transformation.md#function-rank-modmatrngelt)

  - [`Kernel(a): ModMatRngElt → ModTupFld, Map`](linear-transformation.md#function-kernel-modmatrngelt)

  - [`NullSpace(a): ModMatRngElt → ModTupFld, Map`](linear-transformation.md#function-nullspace-modmatrngelt)

  - [`Cokernel(a): ModMatRngElt → ModTupFld, Map`](linear-transformation.md#function-cokernel-modmatrngelt)

  - [`Example: Linear Trans`](linear-transformation.md#example-ex-135cf0)
