Homomorphisms

HomsToC(A) : AlgEtQ -> SeqEnum[Map]
    Precision: RngIntElt                Default: Precision(GetDefaultRealField())
Returns the sequence of homomorphisms from the algebra A to a complex field C. The precision of C is given by the optional parameter Precision. The default value is 30.

Example AlgEtQ_HomsToCExample (H42E2)

> _<x> := PolynomialRing(Integers());
> A := EtaleAlgebra(x^2+2);
> homs := HomsToC(A : Precision := 30);
> #homs;
2
Hom(A, B, img) : AlgEtQ, AlgEtQ, SeqEnum[AlgEtQElt] -> Map
    CheckMultiplicative: BoolElt        Default: false
    CheckUnital: BoolElt                Default: false
    ComputeInverse: BoolElt             Default: true
Given étale algebras A and B and a sequence img of elements of B with length equal to the absolute dimension of A, returns the Q-algebra homomorphism sending the AbsoluteBasis(A) to img. If ComputeInverse is true and the map is invertible, preimages are defined. If CheckMultiplicative (resp. CheckUnital) is true, multiplicativity (resp. unitality) is checked.
DiagonalEmbedding(K, V) : AlgEtQ, AlgEtQ -> Map
NaturalAction(K, V) : AlgEtQ, AlgEtQ -> Map
Let K=K1 x ... x Kn be a product of distinct number fields and V=K1s1 x ... x Knsn. Returns the natural component-wise diagonal embedding K to V.

Example AlgEtQ_HomAndDiagonal (H42E3)

> _<x> := PolynomialRing(Integers());
> A := EtaleAlgebra((x^2+2)*(x^2+3));
> B := EtaleAlgebra(Components(A));
> // Build a hom by mapping AbsoluteBasis(A) into B component-wise
> img := [ B!Components(AbsoluteBasis(A)[i]) : i in [1..AbsoluteDimension(A)] ];
> m := Hom(A,B,img : CheckMultiplicative := false, CheckUnital := false, ComputeInverse := true);
> // Diagonal embedding on a suitable power algebra
> V, embs, projs := DirectProduct([A,A]);
> d := DiagonalEmbedding(A,V);
> d(One(A));
<1, 1, 1, 1>
V2.29, 28 November 2025