[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 true Magma enumerated sets, and so the functions Set and Support below have been provided to convert a block to an enumerated 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 subset 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 notsubset 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(D, p) : Inc, IncPt -> RngIntElt
The number of blocks of D that contain the point p.
BlockDegree(D, B) : Inc, IncBlk -> RngIntElt
BlockSize(D, B) : Inc, IncBlk -> RngIntElt
# B : IncBlk -> RngIntElt
The number of points contained in the block B of D.
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(D, S) : Inc, IncBlk -> BoolElt, IncBlk
IsBlock(D, S) : Inc, SetEnum -> 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(D, p, q) : Inc, IncPt, IncPt -> IncBlk
Block(D, p, q) : Inc, IncPt, IncPt -> IncBlk
A block of D 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(D, B, C) : Inc, IncBlk, IncBlk -> BoolElt, { IncBlk }
True iff there exists a parallel class of D containing the blocks B and C; if true, also returns one such class.
ConnectionNumber(D, p, B) : Inc, IncPt, IncBlk -> RngIntElt
The connection number c(p, B); i.e. the number of blocks joining p to B in D.

Example Design_pts-blks-ops (H56E8)

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} >;
> 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}
> P.1 in B.1; 
false
> P.1 in B.3;
true
> {P| 1, 2} subset B.5;
true
> Block(D, P.1, P.2);
{1, 2, 5, 7}
> b := B.4;              
> b;
{2, 3, 4, 7}
> b meet {2, 8};
{ 2 }
> S := Set(b);
> S, Universe(S);
{ 2, 3, 4, 7 }
Point-set of 2-(7, 4, 2) Design with 7 blocks
> Supp := Support(b);
> Supp, Universe(Supp);
{ 2, 3, 4, 7 }
Integer Ring

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