If I is an independent set I, and e is an element such that $I \cup \{e\}$ is dependent (in particular e is not in I), then there is a unique circuit contained in $I \cup \{e\}$, called the fundamental circuit of e with respect to I, which moreover contains e. Every circuit is the fundamental circuit of some element with respect to some basis.
i1 : M = matroid({a,b,c,d},{{a,b},{a,c}})
o1 = a matroid of rank 2 on 4 elements
o1 : Matroid
|
i2 : circuits M
o2 = {set {1, 2}, set {3}}
o2 : List
|
i3 : fundamentalCircuit(M, {a,c}, b)
o3 = set {1, 2}
o3 : Set
|
i4 : fundamentalCircuit(M, set{0,2}, 1)
o4 = set {1, 2}
o4 : Set
|
i5 : fundamentalCircuit(M, set{0,2}, 3)
o5 = set {3}
o5 : Set
|
This method does not perform any checks (e.g. whether $I$ is independent, or if $e$ is not in $I$). If $I \cup \{e\}$ is independent, then (if debugLevel is greater than 0) a warning is printed, and null is returned. In the example below, the elements with indices 2 and 3 are parallel (indeed, both are equal to the column vector (1, 1)). Thus in general it is safer to refer to a subset by its indices, rather than its elements.
i6 : M = matroid matrix{{1,0,1,1},{0,1,1,1}}
o6 = a matroid of rank 2 on 4 elements
o6 : Matroid
|
i7 : circuits M
o7 = {set {0, 1, 2}, set {0, 1, 3}, set {2, 3}}
o7 : List
|
i8 : M_2
o8 = | 1 |
| 1 |
2 1
o8 : Matrix ZZ <--- ZZ
|
i9 : M_2 == M_3 o9 = true |
i10 : (try fundamentalCircuit (M, M_{1,2}, M_3)) === null
o10 = true
|
i11 : fundamentalCircuit (M, set{1,2}, 3)
o11 = set {2, 3}
o11 : Set
|
The object fundamentalCircuit is a method function.