# Polar Spaces More Generally

In V2.29 (September 2025), in order to support more functionality for polar spaces, a category `SpcPlr` has been added, and one can create a polar spaces also in this category.

## Creation of PolarSpaces

### `AmbientPolarSpace(J): AlgMatElt -> SpcPlr`

### `AmbientPolarSpace(J, a): AlgMatElt, FldAut -> SpcPlr`

Builds a polar space with respect to the matrix $J$ and the field automorphism $a$.

### `PolarSpace(L): LatNF -> SpcPlr`

### `PolarSpace(L): Lat -> SpcPlr`

### `AmbientSpace(L): LatNF -> SpcPlr`

The polar space associated to the lattice $L$.

### `ChangeRing(V, R): SpcPlr, Rng -> SpcPlr`

The polar space obtained from $V$ by base change to $R$.

## Properties of Polar Spaces

### `BaseField(V): SpcPlr -> Fld`

### `BaseRing(V): SpcPlr -> Fld`

### `CoefficientField(V): SpcPlr -> Fld`

### `CoefficientRing(V): SpcPlr -> Fld`

The field over which $V$ is defined.

### `VectorSpace(V): SpcPlr -> ModTupFld`

### `KSpace(V): SpcPlr -> ModTupFld`

The underlying vector space.

### `Dimension(V): SpcPlr -> RngIntElt`

The dimension of $V$.

### `InnerForm(V): SpcPlr -> AlgMatElt`

The inner form associated to $V$.

### `Involution(V): SpcPlr -> FldAut`

The involution with respect to which $V$ is hermitian or skew-hermitian.

### `SpaceType(V): SpcPlr -> MonStgElt`

The type of the polar space $V$, returned as a string.

### `Diagonal(V): SpcPlr -> AlgMatElt`

The coefficients of the diagonalized form.

## Predicates on Polar Spaces

### `IsDefinite(V): SpcPlr -> BoolElt`

Whether $V$ space is totally positive definite, or totally negative definite.
