gap&gt; ps := ProjectiveSpace(12,11);
ProjectiveSpace(12, 11)
gap&gt; s1 := RandomSubspace(ps,8);
&lt;a proj. 8-space in ProjectiveSpace(12, 11)&gt;
gap&gt; s2 := RandomSubspace(s1,6);
&lt;a proj. 6-space in ProjectiveSpace(12, 11)&gt;
gap&gt; s3 := RandomSubspace(s2,4);
&lt;a proj. 4-space in ProjectiveSpace(12, 11)&gt;
gap&gt; s4 := Random(Solids(s3));
&lt;a solid in ProjectiveSpace(12, 11)&gt;
gap&gt; s5 := Random(Points(s4));
&lt;a point in ProjectiveSpace(12, 11)&gt;
gap&gt; flag := FlagOfIncidenceStructure(ps,[s1,s3,s2,s5,s4]);
&lt;a flag of ProjectiveSpace(12, 11)&gt;
gap&gt; ps := PG(4,5);
ProjectiveSpace(4, 5)
gap&gt; p := Random(Points(ps));
&lt;a point in ProjectiveSpace(4, 5)&gt;
gap&gt; l := Random(Lines(ps));
&lt;a line in ProjectiveSpace(4, 5)&gt;
gap&gt; v := Random(Solids(ps));
&lt;a solid in ProjectiveSpace(4, 5)&gt;
gap&gt; flag := FlagOfIncidenceStructure(ps,[v,l,p]);
Error, &lt;els&gt; does not determine a flag&gt; called from
&lt;function "unknown"&gt;( &lt;arguments&gt; )
 called from read-eval loop at line 19 of *stdin*
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
brk&gt; quit;
gap&gt; flag := FlagOfIncidenceStructure(ps,[]);
&lt;a flag of ProjectiveSpace(4, 5)&gt;
