gap&gt; pg2 := PG(2,5);
ProjectiveSpace(2, 5)
gap&gt; pg3 := PG(3,5);
ProjectiveSpace(3, 5)
gap&gt; hyp := VectorSpaceToElement(pg3,[[1,2,4,0],[0,3,2,0],[1,1,0,1]]*Z(5)^0);
&lt;a plane in ProjectiveSpace(3, 5)&gt;
gap&gt; em := NaturalEmbeddingBySubspace( pg2, pg3, hyp );
&lt;geometry morphism from &lt;All elements of ProjectiveSpace(2, 
5)&gt; to &lt;All elements of ProjectiveSpace(3, 5)&gt;&gt;
gap&gt; l := Random(Lines(pg2));
&lt;a line in ProjectiveSpace(2, 5)&gt;
gap&gt; l^em;
&lt;a line in ProjectiveSpace(3, 5)&gt;
gap&gt; p := Random(Points(hyp));
&lt;a point in ProjectiveSpace(3, 5)&gt;
gap&gt; PreImageElm(em,p);
&lt;a point in ProjectiveSpace(2, 5)&gt;
gap&gt; mat := [[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]*Z(3);
[ [ 0*Z(3), 0*Z(3), 0*Z(3), Z(3) ], [ 0*Z(3), 0*Z(3), Z(3), 0*Z(3) ], 
  [ 0*Z(3), Z(3)^0, 0*Z(3), 0*Z(3) ], [ Z(3)^0, 0*Z(3), 0*Z(3), 0*Z(3) ] ]
gap&gt; form := BilinearFormByMatrix(mat,GF(3));
&lt; bilinear form &gt;
gap&gt; w3 := PolarSpace(form);
&lt;polar space in ProjectiveSpace(3,GF(3)): -x1*y4-x2*y3+x3*y2+x4*y1=0 &gt;
gap&gt; w5 := SymplecticSpace(5, 3);
W(5, 3)
gap&gt; pg := AmbientSpace( w5 );
ProjectiveSpace(5, 3)
gap&gt; solid := VectorSpaceToElement(pg,[[1,0,0,0,0,0],[0,1,0,0,0,0],
&gt; [0,0,1,0,0,0],[0,0,0,1,0,0]]*Z(3)^0);
&lt;a solid in ProjectiveSpace(5, 3)&gt;
gap&gt; TypeOfSubspace(w5,solid);
"symplectic"
gap&gt; em := NaturalEmbeddingBySubspace( w3, w5, solid );
&lt;geometry morphism from &lt;Elements of &lt;polar space in ProjectiveSpace(
3,GF(3)): -x1*y4-x2*y3+x3*y2+x4*y1=0 &gt;&gt; to &lt;Elements of W(5, 3)&gt;&gt;
gap&gt; points := Points( w3 );
&lt;points of W(3, 3): -x1*y4-x2*y3+x3*y2+x4*y1=0&gt;
gap&gt; points2 := ImagesSet(em, AsSet(points));;
#I  Computing collineation group of canonical polar space...
gap&gt; ForAll(points2, x -&gt; x in solid);
true
