Skip to content

Commit 4cc2850

Browse files
authored
Merge pull request #1199 from kamalsaleh/lift_using_hom_structure
Moved derivations of (Is)Lift(OrFail)(able)/(Is)Colift(OrFail)(able) from HigherHomologicalAlgebra to CAP
2 parents 09eaba2 + 9e2d51a commit 4cc2850

File tree

2 files changed

+149
-1
lines changed

2 files changed

+149
-1
lines changed

CAP/PackageInfo.g

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ SetPackageInfo( rec(
1010

1111
PackageName := "CAP",
1212
Subtitle := "Categories, Algorithms, Programming",
13-
Version := "2022.12-11",
13+
Version := "2022.12-12",
1414
Date := Concatenation( "01/", ~.Version{[ 6, 7 ]}, "/", ~.Version{[ 1 .. 4 ]} ),
1515
License := "GPL-2.0-or-later",
1616

CAP/gap/DerivedMethods.gi

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2593,6 +2593,154 @@ AddDerivationToCAP( IsomorphismFromDirectSumToCoproduct,
25932593

25942594
end : Description := "IsomorphismFromDirectSumToCoproduct as the inverse of IsomorphismFromCoproductToDirectSum" );
25952595

2596+
## B -β→ C ←α- A, ℓ•β = α ⇔ ν(ℓ)•H(A,β) = ν(α)
2597+
##
2598+
AddDerivationToCAP( Lift,
2599+
[ [ IdentityMorphism, 1 ],
2600+
[ InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure, 1 ],
2601+
[ HomomorphismStructureOnMorphisms, 1 ],
2602+
[ InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism, 1 ],
2603+
[ Lift, 1, RangeCategoryOfHomomorphismStructure ] ],
2604+
2605+
function( cat, alpha, beta )
2606+
local range_cat, a, b;
2607+
2608+
range_cat := RangeCategoryOfHomomorphismStructure( cat );
2609+
2610+
a := InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure( cat, alpha );
2611+
2612+
b := HomomorphismStructureOnMorphisms( cat, IdentityMorphism( Source( alpha ) ), beta );
2613+
2614+
return InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism( cat, Source( alpha ), Source( beta ), Lift( range_cat, a, b ) );
2615+
2616+
end : CategoryGetters := rec( range_cat := RangeCategoryOfHomomorphismStructure ),
2617+
Description := "Derive Lift using the homomorphism structure and Lift in the range of the homomorphism structure" );
2618+
2619+
##
2620+
AddDerivationToCAP( LiftOrFail,
2621+
[ [ IdentityMorphism, 1 ],
2622+
[ InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure, 1 ],
2623+
[ HomomorphismStructureOnMorphisms, 1 ],
2624+
[ InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism, 1 ],
2625+
[ LiftOrFail, 1, RangeCategoryOfHomomorphismStructure ] ],
2626+
2627+
function( cat, alpha, beta )
2628+
local range_cat, a, b, l;
2629+
2630+
range_cat := RangeCategoryOfHomomorphismStructure( cat );
2631+
2632+
a := InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure( cat, alpha );
2633+
2634+
b := HomomorphismStructureOnMorphisms( cat, IdentityMorphism( Source( alpha ) ), beta );
2635+
2636+
l := LiftOrFail( range_cat, a, b );
2637+
2638+
if l = fail then
2639+
2640+
return fail;
2641+
2642+
fi;
2643+
2644+
return InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism( cat, Source( alpha ), Source( beta ), l );
2645+
2646+
end : CategoryGetters := rec( range_cat := RangeCategoryOfHomomorphismStructure ),
2647+
Description := "Derive LiftOrFail using the homomorphism structure and LiftOrFail in the range of the homomorphism structure" );
2648+
2649+
##
2650+
AddDerivationToCAP( IsLiftable,
2651+
[ [ IdentityMorphism, 1 ],
2652+
[ InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure, 1 ],
2653+
[ HomomorphismStructureOnMorphisms, 1 ],
2654+
[ IsLiftable, 1, RangeCategoryOfHomomorphismStructure ] ],
2655+
2656+
function( cat, alpha, beta )
2657+
local range_cat, a, b;
2658+
2659+
range_cat := RangeCategoryOfHomomorphismStructure( cat );
2660+
2661+
a := InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure( cat, alpha );
2662+
2663+
b := HomomorphismStructureOnMorphisms( cat, IdentityMorphism( Source( alpha ) ), beta );
2664+
2665+
return IsLiftable( range_cat, a, b );
2666+
2667+
end : CategoryGetters := rec( range_cat := RangeCategoryOfHomomorphismStructure ),
2668+
Description := "Derive IsLiftable using the homomorphism structure and Liftable in the range of the homomorphism structure" );
2669+
2670+
## B ←β- C -α→ A, α•ℓ = β ⇔ ν(ℓ)•H(α,B) = ν(β)
2671+
##
2672+
AddDerivationToCAP( Colift,
2673+
[ [ IdentityMorphism, 1 ],
2674+
[ InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure, 1 ],
2675+
[ HomomorphismStructureOnMorphisms, 1 ],
2676+
[ InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism, 1 ],
2677+
[ Lift, 1, RangeCategoryOfHomomorphismStructure ] ],
2678+
2679+
function( cat, alpha, beta )
2680+
local range_cat, b, a;
2681+
2682+
range_cat := RangeCategoryOfHomomorphismStructure( cat );
2683+
2684+
b := InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure( cat, beta );
2685+
2686+
a := HomomorphismStructureOnMorphisms( cat, alpha, IdentityMorphism( Range( beta ) ) );
2687+
2688+
return InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism( cat, Range( alpha ), Range( beta ), Lift( range_cat, b, a ) );
2689+
2690+
end : CategoryGetters := rec( range_cat := RangeCategoryOfHomomorphismStructure ),
2691+
Description := "Derive Colift using the homomorphism structure and Lift in the range of the homomorphism structure" );
2692+
2693+
##
2694+
AddDerivationToCAP( ColiftOrFail,
2695+
[ [ IdentityMorphism, 1 ],
2696+
[ InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure, 1 ],
2697+
[ HomomorphismStructureOnMorphisms, 1 ],
2698+
[ InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism, 1 ],
2699+
[ LiftOrFail, 1, RangeCategoryOfHomomorphismStructure ] ],
2700+
2701+
function( cat, alpha, beta )
2702+
local range_cat, b, a, l;
2703+
2704+
range_cat := RangeCategoryOfHomomorphismStructure( cat );
2705+
2706+
b := InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure( cat, beta );
2707+
2708+
a := HomomorphismStructureOnMorphisms( cat, alpha, IdentityMorphism( Range( beta ) ) );
2709+
2710+
l := LiftOrFail( range_cat, b, a );
2711+
2712+
if l = fail then
2713+
2714+
return fail;
2715+
2716+
fi;
2717+
2718+
return InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism( cat, Range( alpha ), Range( beta ), l );
2719+
2720+
end : CategoryGetters := rec( range_cat := RangeCategoryOfHomomorphismStructure ),
2721+
Description := "Derive ColiftOrFail using the homomorphism structure and LiftOrFail in the range of the homomorphism structure" );
2722+
2723+
##
2724+
AddDerivationToCAP( IsColiftable,
2725+
[ [ IdentityMorphism, 1 ],
2726+
[ InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure, 1 ],
2727+
[ HomomorphismStructureOnMorphisms, 1 ],
2728+
[ IsLiftable, 1, RangeCategoryOfHomomorphismStructure ] ],
2729+
2730+
function( cat, alpha, beta )
2731+
local range_cat, b, a;
2732+
2733+
range_cat := RangeCategoryOfHomomorphismStructure( cat );
2734+
2735+
b := InterpretMorphismAsMorphismFromDistinguishedObjectToHomomorphismStructure( cat, beta );
2736+
2737+
a := HomomorphismStructureOnMorphisms( cat, alpha, IdentityMorphism( Range( beta ) ) );
2738+
2739+
return IsLiftable( range_cat, b, a );
2740+
2741+
end : CategoryGetters := rec( range_cat := RangeCategoryOfHomomorphismStructure ),
2742+
Description := "Derive IsColiftable using the homomorphism structure and IsLiftable in the range of the homomorphism structure" );
2743+
25962744
##
25972745
AddDerivationToCAP( Lift,
25982746
[ [ IdentityMorphism, 1 ],

0 commit comments

Comments
 (0)