sign_vectors.chirotopes

Chirotopes.

Classes

Chirotope(rank, ground_set_size)

A chirotope of given rank and ground set size.

Sign(value)

Auxiliary class for chirotopes.

class sign_vectors.chirotopes.Chirotope(rank: int, ground_set_size: int)

A chirotope of given rank and ground set size.

EXAMPLES:

sage: from sign_vectors import *
sage: from sign_vectors.chirotopes import *
sage: c = Chirotope.from_list([0, 0, -1, 1, 0, 1, -1, 1, -1, -1], 2, 5)
sage: c
Chirotope of rank 2 on ground set of size 5
sage: c.entry((0, 3))
-
sage: c.entries()
[0, 0, -, +, 0, +, -, +, -, -]
sage: c.as_string()
'00-+0+-+--'
sage: c.oriented_matroid()
Oriented matroid of dimension 1 with elements of size 5.
sage: c.dual()
Chirotope of rank 3 on ground set of size 5
sage: c.dual().entries()
[-, +, +, -, -, 0, -, -, 0, 0]

We construct chirotopes from matrices:

sage: M = matrix([[1, 2, 0, 0], [0, 1, 2, 3]])
sage: c = Chirotope.from_matrix(M)
sage: c.entry((0, 1))
+
sage: c.entries()
[+, +, +, +, +, 0]
sage: c.dual()
Chirotope of rank 2 on ground set of size 4
sage: c.dual().entries()
[0, -, +, +, -, +]
sage: M = matrix([[1, 0, 0, 1], [0, 1, 0, 1], [0, 0, 1, 1]])
sage: c = Chirotope.from_matrix(M)
sage: c
Chirotope of rank 3 on ground set of size 4
sage: c.entries()
[+, +, -, +]
sage: c.dual()
Chirotope of rank 1 on ground set of size 4
sage: c.dual().entries()
[+, +, +, -]

We construct chirotopes from circuits:

sage: c = Chirotope.from_circuits([sign_vector("00+0"), sign_vector("000+")], 2, 4)
sage: c.entry([0, 1])
+
sage: c.entry([0, 2])
0
sage: c.entry([1, 2])
0
sage: c = Chirotope.from_circuits([sign_vector("00+0"), sign_vector("000+")], 2, 4)
sage: c.entries()
[+, 0, 0, 0, 0, 0]
sage: c.dual()
Chirotope of rank 2 on ground set of size 4
sage: c.dual().entries()
[0, 0, 0, 0, 0, +]
sage: c.as_string()
'+00000'
sage: c = Chirotope.from_circuits([sign_vector("++0--"), sign_vector("+0--0"), sign_vector("-0++0"), sign_vector("0--0+"), sign_vector("--0++"), sign_vector("0++0-")], 3, 5)
sage: c.entries()
[+, -, +, 0, -, +, +, 0, -, +]
sage: c.dual().entries()
[+, +, 0, -, +, +, 0, +, +, +]

We construct chirotopes from cocircuits:

sage: c = Chirotope.from_cocircuits([sign_vector("00+0"), sign_vector("000+")], 2, 4)
sage: c.entries()
[0, 0, 0, 0, 0, +]
sage: c = Chirotope.from_cocircuits([sign_vector("00++"), sign_vector("0++0"), sign_vector("0+0-")], 2, 4)
sage: c.entries()
[0, 0, 0, +, +, +]
as_string() str

Represent the chirotope as a string.

dual() sign_vectors.chirotopes.Chirotope

Return the dual chirotope.

entries() list[sign_vectors.chirotopes.Sign]

Return all chirotope entries in lexicographic order.

entry(rset: list[int]) sign_vectors.chirotopes.Sign

Return the chirotope entry given by indices.

static from_circuits(circuits: set[sign_vectors.sign_vectors.SignVector], rank: int, ground_set_size: int) sign_vectors.chirotopes.Chirotope

Construct a chirotope from its circuits.

static from_cocircuits(cocircuits: set[sign_vectors.sign_vectors.SignVector], rank: int, ground_set_size: int) sign_vectors.chirotopes.Chirotope

Construct a chirotope from its cocircuits.

static from_list(entries: list[sign_vectors.chirotopes.Sign], rank: int, ground_set_size: int) sign_vectors.chirotopes.Chirotope

Construct a chirotope from its entries.

static from_matrix(matrix) sign_vectors.chirotopes.Chirotope

Construct a chirotope from a matrix.

oriented_matroid() OrientedMatroid

Return the oriented matroid corresponding to the chirotope.

class sign_vectors.chirotopes.Sign(value)

Auxiliary class for chirotopes.

EXAMPLES:

sage: from sign_vectors.chirotopes import Sign
sage: Sign(1)
+
sage: Sign(-1)
-
sage: Sign(0)
0
sage: Sign(5)
+
sage: Sign(5).value
1
sage: -Sign(5)
-
sage: Sign("+")
+
sage: Sign("-")
-
sage: Sign("0")
0