InstallMethodForCompilerForCAP( ModelingMorphism,
[ CategoryFilter( D ), MorphismFilter( D ) ],
function ( cat, mor )
return ModelingTowerMorphismConstructor( cat, ModelingObject( cat, Source( mor ) ), MorphismDatum( cat, mor ), ModelingObject( cat, Range( mor ) ) );
end );
InstallMethodForCompilerForCAP( ReinterpretationOfMorphism,
[ CategoryFilter( D ), ObjectFilter( D ), MorphismFilter( C ), ObjectFilter( D ) ],
function ( cat, source, mor, range )
return MorphismConstructor( cat, source, ModelingTowerMorphismDatum( cat, mor ), range );
end );
if"MorphismsOfExternalHom" in list_of_operations_to_install then
AddMorphismsOfExternalHom( D, function( cat, a, b )
return List( MorphismsOfExternalHom( ModelingCategory( cat ), ModelingObject( cat, a ), ModelingObject( cat, b ) ),
mor -> ReinterpretationOfMorphism( cat, a, mor, b ) );
if"BasisOfExternalHom" in list_of_operations_to_install then
AddBasisOfExternalHom( D, function( cat, a, b )
return List( BasisOfExternalHom( ModelingCategory( cat ), ModelingObject( cat, a ), ModelingObject( cat, b ) ),
mor -> ReinterpretationOfMorphism( cat, a, mor, b ) );
if HasRangeCategoryOfHomomorphismStructure( C ) then
HC := RangeCategoryOfHomomorphismStructure( C );
if IsIdenticalObj( C, HC ) then
# The range of the homomorphism structure of C is C itself, # so the range of the homomorphism structure of D should be D itself. # This prevents infinite recursions.
HC := D;
fi;
SetRangeCategoryOfHomomorphismStructure( D, HC );
SetIsEquippedWithHomomorphismStructure( D, true );
fi;
if HasRangeCategoryOfHomomorphismStructure( C ) and not IsEmpty( Intersection( list_of_operations_to_install, operations_of_homomorphism_structure ) ) then
if IsIdenticalObj( D, HC ) then
# prepare for ExtendRangeOfHomomorphismStructureByFullEmbedding
object_function := function ( C, HC, object ) #% CAP_JIT_RESOLVE_FUNCTION
return ReinterpretationOfObject( HC, object );
end;
morphism_function := function ( C, HC, source, morphism, range ) #% CAP_JIT_RESOLVE_FUNCTION
return ReinterpretationOfMorphism( HC,
source,
morphism,
range
);
end;
object_function_inverse := function ( C, HC, object ) #% CAP_JIT_RESOLVE_FUNCTION
return ModelingObject( HC, object );
end;
morphism_function_inverse := function ( C, HC, source, morphism, range ) #% CAP_JIT_RESOLVE_FUNCTION
if"HomomorphismStructureOnMorphismsWithGivenObjects" in list_of_operations_to_install then
AddHomomorphismStructureOnMorphismsWithGivenObjects( D, function( cat, s, alpha, beta, r )
if"InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure" in list_of_operations_to_install then
AddInterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure( D, function( cat, alpha )
if"InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructureWithGivenObjects" in list_of_operations_to_install then
AddInterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructureWithGivenObjects( D, function( cat, s, alpha, r )
if"InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism" in list_of_operations_to_install then
AddInterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism( D, function( cat, a, b, iota )
return ReinterpretationOfMorphism( cat, a, InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphismExtendedByFullEmbedding( ModelingCategory( cat ), HC, ModelingObject( cat, a ), ModelingObject( cat, b ), iota ), b );
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.