Skip to content

Commit

Permalink
temporary fix of a vector space function
Browse files Browse the repository at this point in the history
When one creates a "row space" of vector objects then the base domain
of the generators must contain the given left acting domain,
otherwise not all scalar multiples of the vectors can be created.
Thus it may be necessary to replace the given generators by vectors
whose base domain is large enough.
(Alternatively, one could signal an error.)

As far as I understand, pull request gap-system#4797 had added/changed
some code in `lib/vspcrow.gi` that makes it possible to deal with
"row vector spaces" whose elements are in `IsVectorObj` (but not lists).

A lot of functionality for that is still missing,
the current change just makes one test pass that had not failed before
because of missing consistency checks.
  • Loading branch information
ThomasBreuer committed Jan 25, 2023
1 parent 195d621 commit c87cfcc
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion lib/vspcrow.gi
Original file line number Diff line number Diff line change
Expand Up @@ -161,16 +161,24 @@ InstallOtherMethod( LeftModuleByGenerators,
[ IsDivisionRing, IsList ],
# ensure it ranks above the generic method
function( F, mat )
local V,typ;
local V, typ, K, row;

# filter for vector objects, not compressed FF vectors
if not ForAll(mat,x->IsVectorObj(x) and not IsDataObjectRep(x)) then
TryNextMethod();
fi;
typ:=IsAttributeStoringRep and HasIsEmpty and IsFiniteDimensional;
if ForAll( mat, row -> IsSubset( F, BaseDomain(row) ) ) then
# Replace 'mat' by vector objects with base domain 'F'.
mat:= List( mat, v -> ChangedBaseDomain( v, F ) );
typ:=typ and IsGaussianRowSpace;
else
# Replace 'mat' by vector objects with base domain containing 'F'.
K:= F;
for row in mat do
K:= ClosureDivisionRing( K, BaseDomain( row ) );
od;
mat:= List( mat, v -> ChangedBaseDomain( v, K ) );
typ:=typ and IsVectorSpace and IsRowModule and IsNonGaussianRowSpace;
fi;

Expand Down

0 comments on commit c87cfcc

Please sign in to comment.