Macaulay2 » Documentation
Packages » Matroids :: closure
next | previous | forward | backward | up | index | toc

# closure -- closure of a subset of a matroid

- Usage:
    `closure(M, S)`
- Inputs:
  - M, a matroid,
  - S, a set, of indices, or a list of elements in M
- Outputs:
  - a list,

## Description

The closure of a subset S of a matroid (E, B) is the set cl(S) := {x $\in$ E : rank(S) = rank(S $\cup \{x\}$) }. The closure operator 2^E -> 2^E, S $\mapsto$ cl(S), completely determines the matroid (indeed, the maximal proper closed sets - i.e. hyperplanes - already determine the matroid).

    i1 : M = matroid({a,b,c,d},{{a,b},{a,c}})

    o1 = a "matroid" of rank 2 on 4 elements

    o1 : Matroid

    i2 : for s in subsets M_* do print(toString s | " has closure " | toString closure_M s)
    {} has closure {3}
    {a} has closure {0, 3}
    {b} has closure {1, 2, 3}
    {a, b} has closure {0, 1, 2, 3}
    {c} has closure {1, 2, 3}
    {a, c} has closure {0, 1, 2, 3}
    {b, c} has closure {1, 2, 3}
    {a, b, c} has closure {0, 1, 2, 3}
    {d} has closure {3}
    {a, d} has closure {0, 3}
    {b, d} has closure {1, 2, 3}
    {a, b, d} has closure {0, 1, 2, 3}
    {c, d} has closure {1, 2, 3}
    {a, c, d} has closure {0, 1, 2, 3}
    {b, c, d} has closure {1, 2, 3}
    {a, b, c, d} has closure {0, 1, 2, 3}

    i3 : F = flats M

    o3 = {set {3}, set {1, 2, 3}, set {0, 3}, set {0, 1, 2, 3}}

    o3 : List

    i4 : all(F, f -> closure_M f === f)

    o4 = true

## See also

- flats -- flats of a matroid

## Ways to use closure:

- `closure(Matroid,List)`
- `closure(Matroid,Set)`

## For the programmer

The object closure is a method function.

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/Matroids/doc-Matroids.m2:1061:0.