[Next] [Prev] [Right] [Left] [Up] [Index] [Root]
Operations on Points and Blocks

Operations on Points and Blocks

In incidence structures, particularly simple ones, blocks are basically sets. For this reason, the elementary set operations such as join, meet and subset have been made to work on blocks. However, blocks are not sets, and so the functions {tt Set} and Support below have been provided to convert a block to a set of points for other uses.

p in B : IncPt, IncBlk -> BoolElt
True if point p lies in block B, otherwise false.
p notin B : IncPt, IncBlk -> BoolElt
True if point p does not lie in block B, otherwise false.
S in B : { IncPt }, IncBlk -> BoolElt
Given a subset S of the point set of the incidence structure D and a block B of D, return true if the subset S of points lies in B, otherwise false.
S notin B : { IncPt }, IncBlk -> BoolElt
Given a subset S of the point set of the incidence structure D and a block B of D, return true if the subset S of points does not lie in B, otherwise false.
PointDegree(p) : IncPt -> RngIntElt
The number of blocks that contains the point p.
BlockDegree(B) : IncBlk -> RngIntElt
# B : IncBlk -> RngIntElt
The number of points contained in the block B.
Set(B) : IncBlk -> { IncPt }
The set of points contained in the block B.
Support(B) : IncBlk -> { Elt }
The set of underlying points contained in the block B (i.e. the elements of the set have their "real" types; they are no longer from the category IncPt).
IsBlock(S, D) : IncBlk, Inc -> BoolElt, IncBlk
IsBlock(S, D) : SetEnum, Inc -> BoolElt, IncBlk
True iff the set (or block) S represents a block of the incidence structure D. If true, also returns one such block.
Line(p, q) : IncPt, IncPt -> IncBlk
Block(p, q) : IncPt, IncPt -> IncBlk
A block containing the points p and q (if one exists). In linear spaces, such a block exists and is unique (assuming p and q are different).
IsParallelClass(B, C) : IncBlk, IncBlk -> BoolElt, { IncBlk }
True iff there exists a parallel class containing the blocks B and C; if true, also returns one such class.
ConnectionNumber(p, B) : IncPt, IncBlk -> RngIntElt
The connection number c(p, B); i.e. the number of blocks joining p to B.

Example Design_pts-blks-ops (H42E8)

The following examples uses some of the functions of the previous section.

> D, P, B := Design< 2, 7 | {3, 5, 6, 7}, {2, 4, 5, 6}, {1, 4, 6, 7},
>   {2, 3, 4, 7}, {1, 2, 5, 7}, {1, 2, 3, 6}, {1, 3, 4, 5} >;
> print D: Maximal;
2-(7, 4, 2) Design with 7 blocks
Points: {@ 1, 2, 3, 4, 5, 6, 7 @}
Blocks:
    {3, 5, 6, 7},
    {2, 4, 5, 6},
    {1, 4, 6, 7},
    {2, 3, 4, 7},
    {1, 2, 5, 7},
    {1, 2, 3, 6},
    {1, 3, 4, 5}
> print P.1 in B.1; 
false
> print P.1 in B.3;
true
> print {P| 1, 2} in B.5;
true
> print Block(P.1, P.2);
{1, 2, 5, 7}
> b := B.4;              
> print b;
{2, 3, 4, 7}
> print b meet {2, 8};
{ 2 }
> S := Set(b);
> print S, Universe(S);
{ 2, 3, 4, 7 }
The point-set of 2-(7, 4, 2) Design with 7 blocks
> Supp := Support(b);
> print Supp, Universe(Supp);
{ 2, 3, 4, 7 }
Integer Ring

[Next] [Prev] [Right] [Left] [Up] [Index] [Root]