Skip to content

Commit 96cba35

Browse files
added example file HeytingAlgebraOfSubobjects.g
needs Toposes v2021.11-19
1 parent 06be5eb commit 96cba35

File tree

6 files changed

+120
-2
lines changed

6 files changed

+120
-2
lines changed

PackageInfo.g

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ SetPackageInfo( rec(
1010

1111
PackageName := "FinSetsForCAP",
1212
Subtitle := "The elementary topos of (skeletal) finite sets",
13-
Version := "2021.11-15",
13+
Version := "2021.11-16",
1414

1515
Date := Concatenation( "01/", ~.Version{[ 6, 7 ]}, "/", ~.Version{[ 1 .. 4 ]} ),
1616
License := "GPL-2.0-or-later",
@@ -100,7 +100,7 @@ Dependencies := rec(
100100
NeededOtherPackages := [
101101
[ "GAPDoc", ">= 1.5" ],
102102
[ "CAP", ">= 2021.05-02" ],
103-
[ "Toposes", ">= 2021.11-13" ],
103+
[ "Toposes", ">= 2021.11-19" ],
104104
],
105105
SuggestedOtherPackages := [ ],
106106
ExternalConditions := [ ],

doc/Doc.autodoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757

5858
@Subsection Subobject Classifier
5959
@InsertChunk SubobjectClassifier
60+
@InsertChunk HeytingAlgebraOfSubobjects
6061

6162
@Chapter The category of skeletal finite sets
6263

@@ -122,3 +123,4 @@
122123

123124
@Subsection Skeletal Subobject Classifier
124125
@InsertChunk SkeletalSubobjectClassifier
126+
@InsertChunk SkeletalHeytingAlgebraOfSubobjects
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
#! @Chunk HeytingAlgebraOfSubobjects
2+
3+
LoadPackage( "FinSetsForCAP" );
4+
5+
# Below we see the Heyting algebra structure
6+
# on the set of subobjects (= monos up to mutual dominance)
7+
8+
#! @Example
9+
M := FinSet( [ 1 .. 7 ] );
10+
#! <An object in FinSets>
11+
N := FinSet( [ 2, 3, 5 ] );
12+
#! <An object in FinSets>
13+
iotaN := EmbeddingOfFinSets( N, M );
14+
#! <A monomorphism in FinSets>
15+
NC := PseudoComplementSubobject( iotaN );
16+
#! <An object in FinSets>
17+
Display( NC );
18+
#! [ [ 1, "*" ], [ 4, "*" ], [ 6, "*" ], [ 7, "*" ] ]
19+
tauN := EmbeddingOfPseudoComplementSubobject( iotaN );
20+
#! <A monomorphism in FinSets>
21+
Nc := ImageObject( tauN );
22+
#! <An object in FinSets>
23+
Display( Nc );
24+
#! [ 1, 4, 6, 7 ]
25+
L := FinSet( [ 2, 4, 5, 7 ] );
26+
#! <An object in FinSets>
27+
iotaL := EmbeddingOfFinSets( L, M );
28+
#! <A monomorphism in FinSets>
29+
NIL := IntersectionSubobject( iotaN, iotaL );
30+
#! <An object in FinSets>
31+
Display( NIL );
32+
#! [ [ 2, 2 ], [ 5, 5 ] ]
33+
iotaNiL := EmbeddingOfIntersectionSubobject( iotaN, iotaL );
34+
#! <A monomorphism in FinSets>
35+
NiL := ImageObject( iotaNiL );
36+
#! <An object in FinSets>
37+
Display( NiL );
38+
#! [ 2, 5 ]
39+
NUL := UnionSubobject( iotaN, iotaL );
40+
#! <An object in FinSets>
41+
Display( NUL );
42+
#! [ 2, 3, 5, 4, 7 ]
43+
iotaNuL := EmbeddingOfUnionSubobject( iotaN, iotaL );
44+
#! <A monomorphism in FinSets>
45+
NuL := ImageObject( iotaNuL );
46+
#! <An object in FinSets>
47+
Display( NuL );
48+
#! [ 2, 3, 5, 4, 7 ]
49+
NPL := RelativePseudoComplementSuboject( iotaN, iotaL );
50+
#! <An object in FinSets>
51+
Display( NPL );
52+
#! [ [ 1, "*" ], [ 2, "*" ], [ 4, "*" ], [ 5, "*" ], [ 6, "*" ], [ 7, "*" ] ]
53+
iotaNpL := EmbeddingOfRelativePseudoComplementSuboject( iotaN, iotaL );
54+
#! <A monomorphism in FinSets>
55+
NpL := ImageObject( iotaNpL );
56+
#! <An object in FinSets>
57+
Display( NpL );
58+
#! [ 1, 2, 4, 5, 6, 7 ]
59+
#! @EndExample
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#! @Chunk SkeletalHeytingAlgebraOfSubobjects
2+
3+
LoadPackage( "FinSetsForCAP" );
4+
5+
# Below we see the Heyting algebra structure
6+
# on the set of subobjects (= monos up to mutual dominance)
7+
8+
#! @Example
9+
M := FinSet( 7 );
10+
#! <An object in SkeletalFinSets>
11+
N := FinSet( 3 );
12+
#! <An object in SkeletalFinSets>
13+
iotaN := MapOfFinSets( N, [ 2, 3, 5 ], M );
14+
#! <A morphism in SkeletalFinSets>
15+
NC := PseudoComplementSubobject( iotaN );
16+
#! <An object in SkeletalFinSets>
17+
Display( NC );
18+
#! 4
19+
tauN := EmbeddingOfPseudoComplementSubobject( iotaN );
20+
#! <A monomorphism in SkeletalFinSets>
21+
Display( tauN );
22+
#! [ 4, [ 1, 4, 6, 7 ], 7 ]
23+
L := FinSet( 4 );
24+
#! <An object in SkeletalFinSets>
25+
iotaL := MapOfFinSets( L, [ 2, 4, 5, 7 ], M );
26+
#! <A morphism in SkeletalFinSets>
27+
NIL := IntersectionSubobject( iotaN, iotaL );
28+
#! <An object in SkeletalFinSets>
29+
Display( NIL );
30+
#! 2
31+
iotaNiL := EmbeddingOfIntersectionSubobject( iotaN, iotaL );
32+
#! <A morphism in SkeletalFinSets>
33+
Display( iotaNiL );
34+
#! [ 2, [ 2, 5 ], 7 ]
35+
NUL := UnionSubobject( iotaN, iotaL );
36+
#! <An object in SkeletalFinSets>
37+
Display( NUL );
38+
#! 5
39+
iotaNuL := EmbeddingOfUnionSubobject( iotaN, iotaL );
40+
#! <A monomorphism in SkeletalFinSets>
41+
Display( iotaNuL );
42+
#! [ 5, [ 2, 3, 4, 5, 7 ], 7 ]
43+
NPL := RelativePseudoComplementSuboject( iotaN, iotaL );
44+
#! <An object in SkeletalFinSets>
45+
Display( NPL );
46+
#! 6
47+
iotaNpL := EmbeddingOfRelativePseudoComplementSuboject( iotaN, iotaL );
48+
#! <A monomorphism in SkeletalFinSets>
49+
Display( iotaNpL );
50+
#! [ 6, [ 1, 2, 4, 5, 6, 7 ], 7 ]
51+
#! @EndExample

gap/FinSetsForCAP.gi

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ InstallMethod( CategoryOfFinSets,
2525

2626
INSTALL_FUNCTIONS_FOR_FIN_SETS( FinSets );
2727

28+
AddTheoremFileToCategory( FinSets,
29+
Filename( DirectoriesPackageLibrary( "Toposes", "LogicForToposes" ), "PropositionsForToposes.tex" ) );
30+
2831
Finalize( FinSets );
2932

3033
return FinSets;

gap/SkeletalFinSetsForCAP.gi

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ InstallMethod( CategoryOfSkeletalFinSets,
2727

2828
INSTALL_FUNCTIONS_FOR_SKELETAL_FIN_SETS( cat );
2929

30+
AddTheoremFileToCategory( FinSets,
31+
Filename( DirectoriesPackageLibrary( "Toposes", "LogicForToposes" ), "PropositionsForToposes.tex" ) );
32+
3033
Finalize( cat );
3134

3235
return cat;

0 commit comments

Comments
 (0)