Skip to content

Commit

Permalink
addressed some comments
Browse files Browse the repository at this point in the history
  • Loading branch information
ThomasBreuer committed Sep 6, 2022
1 parent 079157f commit 2b55cc5
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 6 deletions.
3 changes: 3 additions & 0 deletions doc/ref/grphomom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,9 @@ faithful action of <C>G</C> on a small set of vectors.
In such a case, one can prescribe this monomorphism via
<C>SetNiceMonomorphism( G, map )</C>,
provided that <C>map</C> stores that it is injective.
The latter can be achieved by calling <C>IsInjective( map )</C> or,
if one is sure that <C>map</C> is injective and one wants to avoid the
overhead of the test, by calling <C>SetIsInjective( map, true )</C>.

<#Include Label="IsHandledByNiceMonomorphism">
<#Include Label="NiceMonomorphism">
Expand Down
5 changes: 5 additions & 0 deletions doc/tut/group.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1216,6 +1216,11 @@ only if this map knows that it is injective.
In the above example, this is the case because the map is created as the
composition of two maps (a nice monomorphism and an isomorphism)
which know that they are injective.
In general, the injectivity flag of a map <C>map</C> gets set if one tests
the property by calling <C>IsInjective( map )</C>;
if one is sure that <C>map</C> is injective and wants to avoid the
potentially expensive test then one can set the flag by explicitly
calling <C>SetIsInjective( map, true )</C>.
<P/>
<E>Summary.</E> In this section we have seen how calculations in groups
can be carried out in isomorphic images in nicer groups. We have seen
Expand Down
9 changes: 3 additions & 6 deletions lib/grpnice.gi
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,8 @@
##
## We install a special setter method because we have to make sure that only
## injective maps get stored as nice monomorphisms.
## More precisely, we the stored map must know that it is injective,
## More precisely, the stored map must know that it is injective,
## otherwise computing its kernel may run into an infinite recursion.
## (The maps computed by 'NiceMonomorphism' have the 'IsInjective' flag,
## the test affects only those maps that shall be set by hand as
## nice monomorphisms.)
##
## Besides this, we want to tell every nice monomorphism that it is one.
##
Expand Down Expand Up @@ -114,8 +111,8 @@ InstallMethod( GroupByNiceMonomorphism,
function( nice, grp )
local fam, pre;

if not IsInjective( nice ) then
Error( "<nice> is not injective" );
if not ( HasIsInjective( nice ) and IsInjective( nice ) ) then
Error( "<nice> is not known to be injective" );
fi;
fam := FamilyObj( Source(nice) );
pre := Objectify(NewType(fam,IsGroup and IsAttributeStoringRep), rec());
Expand Down

0 comments on commit 2b55cc5

Please sign in to comment.