# fundamentalCircuit -- fundamental circuit of independent set

## Synopsis

• Usage:
fundamentalCircuit(M, I, e)
• Inputs:
• M,
• I, a set, of indices, or a list of elements in M, which is an independent set
• e, an integer, an index, or an element in M, such that $I \cup&nbsp;\{e\}$ is dependent
• Outputs:
• a set, the fundamental circuit of e with respect to I

## Description

If I is an independent set I, and e is an element such that $I \cup&nbsp;\{e\}$ is dependent (in particular e is not in I), then there is a unique circuit contained in $I \cup&nbsp;\{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&nbsp;\{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