# Polar Spaces

- [Introduction](Introduction.md)

- [Reflexive Forms](reflexive-forms.md)

  - [Quadratic Forms](reflexive-forms.md#quadratic-forms)

- [Inner Products](innerprod.md)

  - [`Example: generalform`](innerprod.md#example-ex-2f3d6e)

  - [`EnsureUpperTriangular(A): AlgMatElt → AlgMatElt`](innerprod.md#function-ensureuppertriangular-algmatelt)

  - [`DotProduct(u, v): ModTupFldElt, ModTupFldElt → FldElt`](innerprod.md#function-dotproduct-modtupfldelt-modtupfldelt)

  - [`DotProductMatrix(S): SeqEnum[ModTupFldElt] → AlgMatElt`](innerprod.md#function-dotproductmatrix-seqenum-modtupfldelt)

  - [`GramMatrix(V): ModTupRng → AlgMatElt`](innerprod.md#function-grammatrix-modtuprng)

  - [`InnerProductMatrix(V): ModTupRng → AlgMatElt`](innerprod.md#function-innerproductmatrix-modtuprng)

  - [`Example: grammatrix`](innerprod.md#example-ex-9d71da)

  - [`Example: innerprod`](innerprod.md#example-ex-af15e4)

  - [Orthogonality](innerprod.md#orthogonality)

    - [`OrthogonalComplement(V, X : parameters): ModTupFld, ModTupFld → ModTupFld`](innerprod.md#function-orthogonalcomplement-modtupfld-modtupfld)

    - [`Radical(V : parameters): ModTupFld → ModTupFld`](innerprod.md#function-radical-modtupfld)

    - [`IsNondegenerate(V): ModTupFld → BoolElt`](innerprod.md#function-isnondegenerate-modtupfld)

    - [`IsDegenerate(V): ModTupFld → BoolElt`](innerprod.md#function-isdegenerate-modtupfld)

    - [`SingularRadical(V): ModTupFld → ModTupFld`](innerprod.md#function-singularradical-modtupfld)

    - [`IsNonsingular(V): ModTupFld → BoolElt`](innerprod.md#function-isnonsingular-modtupfld)

- [Isotropic and Singular Vectors and Subspaces](structure.md)

  - [`HasIsotropicVector(V): ModTupFld → BoolElt, ModTupFldElt`](structure.md#function-hasisotropicvector-modtupfld)

  - [`HasSingularVector(V): ModTupFld → BoolElt, ModTupFldElt`](structure.md#function-hassingularvector-modtupfld)

  - [`IsTotallyIsotropic(V): ModTupFld → BoolElt`](structure.md#function-istotallyisotropic-modtupfld)

  - [`IsTotallySingular(V): ModTupFld → BoolElt`](structure.md#function-istotallysingular-modtupfld)

  - [`MaximalTotallyIsotropicSubspace(V): ModTupFld → ModTupFld`](structure.md#function-maximaltotallyisotropicsubspace-modtupfld)

  - [`MaximalTotallySingularSubspace(V): ModTupFld → ModTupFld`](structure.md#function-maximaltotallysingularsubspace-modtupfld)

  - [`WittIndex(V): ModTupFld → RngIntElt`](structure.md#function-wittindex-modtupfld)

  - [`HyperbolicPair(V, u): ModTupFld, ModTupFldElt → ModTupFldElt`](structure.md#function-hyperbolicpair-modtupfld-modtupfldelt)

  - [`Example: pseudoalt`](structure.md#example-ex-ced2e7)

  - [`Example: quadsplit`](structure.md#example-ex-b0692a)

  - [`HyperbolicSplitting(V): ModTupFld → Tup`](structure.md#function-hyperbolicsplitting-modtupfld)

  - [`Example: hypsplit`](structure.md#example-ex-7e8c7f)

  - [`Example: extradical`](structure.md#example-ex-621e11)

  - [`SymplecticBasis(V,U,W): ModTupFld, ModTupFld, ModTupFld → [ModTupFldElt]`](structure.md#function-symplecticbasis-modtupfld-modtupfld-modtupfld)

  - [`WittDecomposition(V): ModTupFld → SeqEnum[ModTupFld]`](structure.md#function-wittdecomposition-modtupfld)

  - [`WittDecomposition(M, a): AlgMatElt[FldFin], FldAut → AlgMatElt[FldFin], AlgMatElt[FldFin]`](structure.md#function-wittdecomposition-algmatelt-fldfin-fldaut)

  - [`MetabolicSpace(V): ModTupFld → ModTupFld`](structure.md#function-metabolicspace-modtupfld)

- [The Standard Forms](standard.md)

  - [`StandardAlternatingForm(n,R): RngIntElt, Rng → AlgMatElt`](standard.md#function-standardalternatingform-rngintelt-rng)

  - [`StandardAlternatingForm(n,q): RngIntElt, RngIntElt → AlgMatElt`](standard.md#function-standardalternatingform-rngintelt-rngintelt)

  - [`Example: alternatingform`](standard.md#example-ex-3c60cd)

  - [`StandardPseudoAlternatingForm(n,K): RngIntElt, Fld → AlgMatElt`](standard.md#function-standardpseudoalternatingform-rngintelt-fld)

  - [`StandardPseudoAlternatingForm(n,q): RngIntElt, RngIntElt → AlgMatElt`](standard.md#function-standardpseudoalternatingform-rngintelt-rngintelt)

  - [`StandardHermitianForm(n,K): RngIntElt, Fld → AlgMatElt, Map`](standard.md#function-standardhermitianform-rngintelt-fld)

  - [`StandardHermitianForm(n,q): RngIntElt, RngIntElt → AlgMatElt, Map`](standard.md#function-standardhermitianform-rngintelt-rngintelt)

  - [`StandardQuadraticForm(n, K : parameters): RngIntElt, Fld → AlgMatElt`](standard.md#function-standardquadraticform-rngintelt-fld)

  - [`StandardQuadraticForm(n, q : parameters): RngIntElt, RngIntElt → AlgMatElt`](standard.md#function-standardquadraticform-rngintelt-rngintelt)

  - [`Example: minusform`](standard.md#example-ex-78f890)

  - [`Example: revisedminus`](standard.md#example-ex-29b8f5)

  - [`StandardSymmetricForm(n, K): RngIntElt, Fld → AlgMatElt`](standard.md#function-standardsymmetricform-rngintelt-fld)

  - [`StandardSymmetricForm(n, q : parameters): RngIntElt, RngIntElt → AlgMatElt`](standard.md#function-standardsymmetricform-rngintelt-rngintelt)

- [Constructing Polar Spaces](constructions.md)

  - [`PolarSpace(F, a): AlgMatElt[FldFin], FldAut → ModTupFld[FldFin]`](constructions.md#function-polarspace-algmatelt-fldfin-fldaut)

  - [`TrivialPolarSpace(F, n): FldFin, RngIntElt → ModTupFld[FldFin]`](constructions.md#function-trivialpolarspace-fldfin-rngintelt)

  - [`IsPolarSpace(V): ModTupFld → BoolElt`](constructions.md#function-ispolarspace-modtupfld)

  - [`PolarSpaceType(V): ModTupFld → MonStgElt`](constructions.md#function-polarspacetype-modtupfld)

  - [`Example: polarspace`](constructions.md#example-ex-1d3f36)

  - [Isotropic Subspaces](constructions.md#isotropic-subspaces)

    - [`FirstIsotropicSubspace(V, k): ModTupFld[FldFin], RngIntElt → ModTupFld[FldFin]`](constructions.md#function-firstisotropicsubspace-modtupfld-fldfin-rngintelt)

    - [`NextIsotropicSubspace(V, k): ModTupFld[FldFin], RngIntElt → ModTupFld[FldFin]`](constructions.md#function-nextisotropicsubspace-modtupfld-fldfin-rngintelt)

    - [`AllIsotropicSubspaces(V, k): ModTupFld[FldFin], RngIntElt → [ ModTupFld[FldFin] ]`](constructions.md#function-allisotropicsubspaces-modtupfld-fldfin-rngintelt)

    - [`NumberOfIsotropicSubspaces(V, k): ModTupFld[FldFin], RngIntElt → RngIntElt`](constructions.md#function-numberofisotropicsubspaces-modtupfld-fldfin-rngintelt)

  - [Symplectic Spaces](constructions.md#symplectic-spaces)

    - [`SymplecticSpace(J): AlgMatElt → ModTupRng`](constructions.md#function-symplecticspace-algmatelt)

    - [`IsSymplecticSpace(W): ModTupFld → BoolElt`](constructions.md#function-issymplecticspace-modtupfld)

    - [`IsPseudoSymplecticSpace(W): ModTupFld → BoolElt`](constructions.md#function-ispseudosymplecticspace-modtupfld)

    - [`DirectSum(V,W): ModTupRng, ModTupRng → ModTupRng, Map, Map`](constructions.md#function-directsum-modtuprng-modtuprng)

  - [Unitary Spaces](constructions.md#unitary-spaces)

    - [`UnitarySpace(J, sigma): AlgMatElt, Map → ModTupFld`](constructions.md#function-unitaryspace-algmatelt-map)

    - [`IsUnitarySpace(W): ModTupFld → BoolElt, RngIntElt`](constructions.md#function-isunitaryspace-modtupfld)

    - [`Example: unitaryform`](constructions.md#example-ex-b9c1f1)

    - [`ConjugateTranspose(M, sigma): Mtrx, Map → Mtrx`](constructions.md#function-conjugatetranspose-mtrx-map)

  - [Quadratic Spaces](constructions.md#quadratic-spaces)

    - [`QuadraticSpace(Q): AlgMatElt → ModTupRng`](constructions.md#function-quadraticspace-algmatelt)

    - [`QuadraticSpace(f): RngMPolElt → ModTupRng`](constructions.md#function-quadraticspace-rngmpolelt)

    - [`SymmetricToQuadraticForm(J): AlgMatElt → AlgMatElt`](constructions.md#function-symmetrictoquadraticform-algmatelt)

    - [`QuadraticFormMatrix(V): ModTupRng → ModAlgElt`](constructions.md#function-quadraticformmatrix-modtuprng)

    - [`QuadraticNorm(v): ModTupFldElt → FldElt`](constructions.md#function-quadraticnorm-modtupfldelt)

    - [`QuadraticFormPolynomial(V): ModTupRng → RngPolElt`](constructions.md#function-quadraticformpolynomial-modtuprng)

    - [`QuadraticFormPolynomial(Q): AlgMatElt → RngPolElt`](constructions.md#function-quadraticformpolynomial-algmatelt)

    - [`Example: polyquad`](constructions.md#example-ex-474785)

    - [`OrthogonalSum(V, W): ModTupFld, ModTupFld → ModTupFld, Map, Map`](constructions.md#function-orthogonalsum-modtupfld-modtupfld)

    - [`OrthogonalTensorProduct(V, W): ModTupFld, ModTupFld → ModTupFld`](constructions.md#function-orthogonaltensorproduct-modtupfld-modtupfld)

    - [`TotallySingularComplement(V, U, W): ModTupFld, ModTupFld, ModTupFld → ModTupFld`](constructions.md#function-totallysingularcomplement-modtupfld-modtupfld-modtupfld)

    - [`Discriminant(V): ModTupFld → RngIntElt`](constructions.md#function-discriminant-modtupfld)

    - [`ArfInvariant(V): ModTupFld → RngIntElt`](constructions.md#function-arfinvariant-modtupfld)

    - [`DicksonInvariant(V, f): ModTupFld, Mtrx → RngIntElt`](constructions.md#function-dicksoninvariant-modtupfld-mtrx)

    - [`SpinorNorm(V, f): ModTupFld, Mtrx → RngIntElt`](constructions.md#function-spinornorm-modtupfld-mtrx)

    - [`SpinorNorm(Q, g): AlgMatElt[Fld], AlgMatElt[Fld] → FldElt`](constructions.md#function-spinornorm-algmatelt-fld-algmatelt-fld)

    - [`Example: Spinor General`](constructions.md#example-ex-ff51ba)

    - [`CharacterQQModSquares(d, r): RngIntElt, FldRatElt → RngIntElt`](constructions.md#function-characterqqmodsquares-rngintelt-fldratelt)

    - [`SpinorNormRho(d, g, Q): RngIntElt, GrpMatElt, AlgMatElt → RngIntElt`](constructions.md#function-spinornormrho-rngintelt-grpmatelt-algmatelt)

    - [`HyperbolicBasis(U, B, W): ModTupFld, SeqEnum, ModTupFld → SeqEnum`](constructions.md#function-hyperbolicbasis-modtupfld-seqenum-modtupfld)

    - [`OrthogonalReflection(a): ModTupFldElt → AlgMatElt`](constructions.md#function-orthogonalreflection-modtupfldelt)

    - [`RootSequence(V, f): ModTupFld, Mtrx → SeqEnum`](constructions.md#function-rootsequence-modtupfld-mtrx)

    - [`ReflectionFactors(V, f): ModTupFld, Mtrx → SeqEnum`](constructions.md#function-reflectionfactors-modtupfld-mtrx)

    - [`SiegelTransformation(u, v): ModTupFldElt, ModTupFldElt → AlgMatElt`](constructions.md#function-siegeltransformation-modtupfldelt-modtupfldelt)

    - [`Example: siegel`](constructions.md#example-ex-717e94)

- [Isometries and Similarities](isom-sim.md)

  - [Isometries](isom-sim.md#isometries)

    - [`IsIsometry(U, V, f): ModTupFld, ModTupFld, Map → BoolElt`](isom-sim.md#function-isisometry-modtupfld-modtupfld-map)

    - [`IsIsometry(f): Map → BoolElt`](isom-sim.md#function-isisometry-map)

    - [`IsIsometry(V, g): ModTupFld, Mtrx → BoolElt`](isom-sim.md#function-isisometry-modtupfld-mtrx)

    - [`IsIsometric(V, W): ModTupFld, ModTupFld → BoolElt, Map`](isom-sim.md#function-isisometric-modtupfld-modtupfld)

    - [`Example: isometric`](isom-sim.md#example-ex-9909e6)

    - [`Example: transform`](isom-sim.md#example-ex-5a3a59)

    - [`Example: transformalt`](isom-sim.md#example-ex-6727c3)

    - [`CommonComplement(V, U, W): ModTupFld, ModTupFld, ModTupFld → ModTupFld`](isom-sim.md#function-commoncomplement-modtupfld-modtupfld-modtupfld)

    - [`ExtendIsometry(V, U, f): ModTupFld, ModTupFld, Map → Map`](isom-sim.md#function-extendisometry-modtupfld-modtupfld-map)

    - [`IsometryGroup(V): ModTupFld → GrpMat`](isom-sim.md#function-isometrygroup-modtupfld)

    - [`Example: isometrygroup`](isom-sim.md#example-ex-833a77)

    - [`Example: conjisom`](isom-sim.md#example-ex-86d774)

  - [Similarities](isom-sim.md#similarities)

    - [`IsSimilarity(U, V, f): ModTupFld, ModTupFld, Map → BoolElt, FldElt`](isom-sim.md#function-issimilarity-modtupfld-modtupfld-map)

    - [`IsSimilarity(f): Map → BoolElt, FldElt`](isom-sim.md#function-issimilarity-map)

    - [`IsSimilarity(V, g): ModTupFld, Mtrx → BoolElt, FldElt`](isom-sim.md#function-issimilarity-modtupfld-mtrx)

    - [`IsSimilar(V, W): ModTupFld, ModTupFld → BoolElt, Map`](isom-sim.md#function-issimilar-modtupfld-modtupfld)

    - [`Example: simherm`](isom-sim.md#example-ex-86e68e)

    - [`SimilarityGroup(V): ModTupFld → GrpMat`](isom-sim.md#function-similaritygroup-modtupfld)

  - [Gram-Schmidt Normalisation](isom-sim.md#gram-schmidt-normalisation)

    - [`GramSchmidtPair(J): AlgMatElt → AlgMatElt, AlgMatElt`](isom-sim.md#function-gramschmidtpair-algmatelt)

    - [`Example: hermitiangs`](isom-sim.md#example-ex-97668f)

    - [`Example: skewgs`](isom-sim.md#example-ex-7c8257)

- [Classical Groups](classical.md)

  - [`Example: fixaltform`](classical.md#example-ex-1225d3)

  - [`Example: fixhermform`](classical.md#example-ex-e06cca)

- [Lie Algebras and Bilinear Forms](liealg.md)

  - [`DerivationAlgebra(J): AlgMatElt → AlgLie`](liealg.md#function-derivationalgebra-algmatelt)

  - [`Example: lie C3`](liealg.md#example-ex-3caa04)

  - [`Example: lie G2`](liealg.md#example-ex-196405)

  - [`HeisenbergAlgebra(J): AlgMatElt → AlgLie`](liealg.md#function-heisenbergalgebra-algmatelt)

  - [`Example: heisenberg`](liealg.md#example-ex-aa6842)

- [Wall Forms](wallform.md)

  - [`WallForm(V, f): ModTupFld, Mtrx → ModTupFld, Map`](wallform.md#function-wallform-modtupfld-mtrx)

  - [`WallIsometry(V, I, mu): ModTupFld, ModTupFld, Map → Mtrx`](wallform.md#function-wallisometry-modtupfld-modtupfld-map)

  - [`WallDecomposition(V, f): ModTupFld, Mtrx → Mtrx, Mtrx`](wallform.md#function-walldecomposition-modtupfld-mtrx)

  - [`SemiOrthogonalBasis(V): ModTupFld → SeqEnum`](wallform.md#function-semiorthogonalbasis-modtupfld)

  - [`GeneralisedWallForm(V, f): ModTupFld, Mtrx → ModTupFld, Map`](wallform.md#function-generalisedwallform-modtupfld-mtrx)

- [Invariant Forms](invform.md)

  - [`InvariantBilinearForms(G): GrpMat → SeqEnum[AlgMatElt], SeqEnum[AlgMatElt]`](invform.md#function-invariantbilinearforms-grpmat)

  - [`Example: reducible`](invform.md#example-ex-246b09)

  - [`Example: nonabs`](invform.md#example-ex-8559f1)

  - [`InvariantQuadraticForms(G): GrpMat → SeqEnum[AlgMatElt]`](invform.md#function-invariantquadraticforms-grpmat)

  - [`Example: invquadform`](invform.md#example-ex-e24e49)

  - [`SemilinearDual(M, mu): ModGrp, Map → ModGrp`](invform.md#function-semilineardual-modgrp-map)

  - [`InvariantSesquilinearForms(G): GrpMat → SeqEnum[AlgMatElt]`](invform.md#function-invariantsesquilinearforms-grpmat)

  - [`Example: sesquiforms`](invform.md#example-ex-17b876)

  - [`Example: hermandalt`](invform.md#example-ex-9dd62c)

  - [`InvariantFormBases(G): GrpMat → SeqEnum[AlgMatElt], SeqEnum[AlgMatElt], SeqEnum[AlgMatElt], SeqEnum[AlgMatElt]`](invform.md#function-invariantformbases-grpmat)

  - [Semi-invariant Forms](invform.md#semi-invariant-forms)

    - [`TwistedDual(M, lambda): ModGrp, Map → ModGrp`](invform.md#function-twisteddual-modgrp-map)

    - [`SemiInvariantBilinearForms(G): GrpMat → SeqEnum`](invform.md#function-semiinvariantbilinearforms-grpmat)

    - [`SemiInvariantQuadraticForms(G): GrpMat → SeqEnum`](invform.md#function-semiinvariantquadraticforms-grpmat)

    - [`TwistedSemilinearDual(M, lambda, mu): ModGrp, Map, Map → ModGrp`](invform.md#function-twistedsemilineardual-modgrp-map-map)

    - [`SemiInvariantSesquilinearForms(G): GrpMat → SeqEnum`](invform.md#function-semiinvariantsesquilinearforms-grpmat)

    - [`Example: semiinv`](invform.md#example-ex-f6ba6b)

- [Polar Spaces More Generally](SpcPlr.md)

  - [Creation of PolarSpaces](SpcPlr.md#creation-of-polarspaces)

    - [`AmbientPolarSpace(J): AlgMatElt → SpcPlr`](SpcPlr.md#function-ambientpolarspace-algmatelt)

    - [`AmbientPolarSpace(J, a): AlgMatElt, FldAut → SpcPlr`](SpcPlr.md#function-ambientpolarspace-algmatelt-fldaut)

    - [`PolarSpace(L): LatNF → SpcPlr`](SpcPlr.md#function-polarspace-latnf)

    - [`PolarSpace(L): Lat → SpcPlr`](SpcPlr.md#function-polarspace-lat)

    - [`AmbientSpace(L): LatNF → SpcPlr`](SpcPlr.md#function-ambientspace-latnf)

    - [`ChangeRing(V, R): SpcPlr, Rng → SpcPlr`](SpcPlr.md#function-changering-spcplr-rng)

  - [Properties of Polar Spaces](SpcPlr.md#properties-of-polar-spaces)

    - [`BaseField(V): SpcPlr → Fld`](SpcPlr.md#function-basefield-spcplr)

    - [`BaseRing(V): SpcPlr → Fld`](SpcPlr.md#function-basering-spcplr)

    - [`CoefficientField(V): SpcPlr → Fld`](SpcPlr.md#function-coefficientfield-spcplr)

    - [`CoefficientRing(V): SpcPlr → Fld`](SpcPlr.md#function-coefficientring-spcplr)

    - [`VectorSpace(V): SpcPlr → ModTupFld`](SpcPlr.md#function-vectorspace-spcplr)

    - [`KSpace(V): SpcPlr → ModTupFld`](SpcPlr.md#function-kspace-spcplr)

    - [`Dimension(V): SpcPlr → RngIntElt`](SpcPlr.md#function-dimension-spcplr)

    - [`InnerForm(V): SpcPlr → AlgMatElt`](SpcPlr.md#function-innerform-spcplr)

    - [`Involution(V): SpcPlr → FldAut`](SpcPlr.md#function-involution-spcplr)

    - [`SpaceType(V): SpcPlr → MonStgElt`](SpcPlr.md#function-spacetype-spcplr)

    - [`Diagonal(V): SpcPlr → AlgMatElt`](SpcPlr.md#function-diagonal-spcplr)

  - [Predicates on Polar Spaces](SpcPlr.md#predicates-on-polar-spaces)

    - [`IsDefinite(V): SpcPlr → BoolElt`](SpcPlr.md#function-isdefinite-spcplr)
