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
Returns true if point p lies in block B, otherwise false.
p notin B : IncPt, IncBlk -> BoolElt
Returns 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 the incidence structure 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 the incidence structure 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
Returns 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 the incidence structure 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).
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 the incidence structure D.

Example Design_pts-blks-ops (H156E7)

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
V2.28, 13 July 2023