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: Operations on Points and Blocks (ex-f06ff8)

Run in calculator (opens in a new tab)

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

Run in calculator (opens in a new tab)