###############################################################################
##
#W  gp2ind.gd                   GAP4 package `XMod'               Chris Wensley
##
##  Declaration file for functions of the XMOD package.
##  This file declares functions for induced crossed modules. 
## 
#H  @(#)Id: "xmod/gap/gp2ind.gd", v.2.11 2008/05/02 
##
#Y  Copyright (C) 2008, Chris Wensley,  
#Y  School of Computer Science, Bangor University, U.K. 
#Y
#Y  This program is free software; you can redistribute it and/or
#Y  modify it under the terms of the GNU General Public License
#Y  as published by the Free Software Foundation; either version 2
#Y  of the License, or (at your option) any later version.
#Y
#Y  This program is distributed in the hope that it will be useful,
#Y  but WITHOUT ANY WARRANTY; without even the implied warranty of
#Y  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
#Y  See the GNU General Public License for more details.
#Y
#Y  You should have received a copy of the GNU General Public License along 
#Y  with this program; if not, write to the Free Software Foundation, Inc., 
#Y  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 


###############################################################################
##  Layout of groups for induced crossed module calculations:
## 
##          Fin. Pres. Groups              Groups
##          =================           ============
##
##        FN=FM -------> FI            N=M -------> I
##            |          |              |           |
##            |          |              |           |
##            V          V              V           V
##           FP -------> FQ             P --------> Q
##
##############################################################################
##  Layout of groups for induced cat1-group calculations:
##
##                                          iota*
##         G ------------> I         PG ------------> PI
##         ||             ||         ||               || 
##         ||             ||         ||               ||  
##         th            t*h*        th              t*h* 
##         ||             ||         ||               || 
##         ||             ||         ||               || 
##         VV             VV         VV               VV 
##         R ------------> Q         PR ------------> PQ
##                                          iota
##
##############################################################################

#############################################################################
##
##  #A  InducedXModData( <IX> )
##
##  DeclareAttribute( "InducedXModData", Is2dDomain, "mutable" );

#############################################################################
##
#P  IsInducedXMod( <IX> )
##
DeclareProperty( "IsInducedXMod", IsXMod );

#############################################################################
##
#A  MorphismOfInducedXMod( <IX> )
##
DeclareAttribute( "MorphismOfInducedXMod", IsInducedXMod );

#############################################################################
##
#F  InducedXMod( <args> )
#O  InclusionInducedXModByCopower( <grp>, <hom>, <trans> )
#O  SurjectiveInducedXMod( <xmod>, <hom> )
##
DeclareGlobalFunction( "InducedXMod" );
DeclareOperation( "InclusionInducedXModByCopower", 
    [ IsXMod, IsGroupHomomorphism, IsList ] );
DeclareOperation( "SurjectiveInducedXMod", [ IsXMod, IsGroupHomomorphism ] );

##############################################################################
##
#F  InducedCat1( <args> )
#O  InclusionInducedCat1Data( <grp>, <hom>, <trans> )
#O  InducedCat1ByFreeProduct( [ <grp>, <hom> ] )  ???
##
DeclareGlobalFunction( "InducedCat1" );
DeclareOperation( "InclusionInducedCat1Data", 
    [ IsCat1, IsGroupHomomorphism, IsList ] );
DeclareOperation( "InducedCat1ByFreeProduct", [ IsList ] );

##############################################################################
##
#O  AllInducedXMods( <grp> )
#O  AllInducedCat1s( <grp> )
##
DeclareOperation( "AllInducedXMods", [ IsGroup ] );
DeclareOperation( "AllInducedCat1s", [ IsGroup ] );

##############################################################################
##
#E  gp2ind.gd . . . . . . . . . . . . . . . . . . . . . . . . . . .  ends here
