QuantumAutomorphismGroups.jl is part of an ongoing research project on quantum automorphisms of matroids [1]. It contains both the code needed to compute the quantum automorphism groups of matroids and the data we computed for several matroids. All the computations were done using the OSCAR system, and the data was encoded using OSCAR's internal machinery [2].
When you first start up, you need to activate the project folder and instantiate it.
julia --project /path/to/folder -e 'using Pkg; Pkg.instantiate()'Most of its original functionality is now available in the OSCAR system. See the OSCAR documentation for more information: Link.
However, it still serves as a database of computable quantum automorphism groups of matroids, accessible via the load_dt function.
The following example shows how to load a list of all computed quantum automorphism groups:
julia> using QuantumAutomorphismGroups, Oscar, DataFrames
julia> dt = load_dt();
julia> df2 = select(dt.data, ["Name", "Aut_bases_-1", "Aut_circuits_-1","Aut_circuits_6", "Aut_bases_6"]);
julia> df2 = filter(row -> row["Aut_bases_6"] !== missing || !ismissing(row["Aut_bases_-1 "]), df2)
250×5 DataFrame
Row │ Name Aut_bases_-1 Aut_circuits_-1 Aut_circuits_6 Aut_bases_6
│ String15 Bool? Bool? Bool? Bool?
─────┼────────────────────────────────────────────────────────────────────────────
1 │ r1n7_01 missing missing missing false
2 │ r0n1_1 true missing true missing
3 │ r1n2_3 true true true missing
4 │ r1n3_1 true true true missing
5 │ r1n3_3 true true true missing
6 │ r1n3_7 true missing true missing
7 │ r1n4_01 true true true missing
8 │ r1n4_03 true true true missing
9 │ r1n4_07 true true true missing
10 │ r1n4_0f false false false missing
11 │ r1n5_01 false false false missing
12 │ r1n5_03 true true true missing
13 │ r1n5_07 true true true missing
14 │ r1n5_0f false false false missing
15 │ r1n5_1f false false false missing
16 │ r1n6_01 false false false missing
17 │ r1n6_03 false false false missing
18 │ r1n6_07 true true true missing
19 │ r1n6_0f false false false missing
⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮
233 │ r3n7_07ffffffe missing missing true false
234 │ r3n7_07fffffff false missing true false
235 │ r3n7_0965b96ef missing missing missing true
236 │ r3n7_1bcffbffb missing missing true true
237 │ r3n7_1beffbfff missing missing true true
238 │ r3n7_3f7eefd6f missing missing missing true
239 │ r3n7_3f7eefd7f missing missing true true
240 │ r3n7_3f7eefdff missing missing true true
241 │ r3n7_3f7eeffff missing missing missing true
242 │ r3n7_3f7effdfe missing missing true true
243 │ r3n7_3f7effdff missing missing true true
244 │ r3n7_3f7efffbf missing missing true true
245 │ r3n7_3f7efffff missing missing true true
246 │ r3n7_3f7fffff7 missing missing true true
247 │ r3n7_3f7ffffff missing missing true true
248 │ r3n7_3ffff7fff missing missing true true
249 │ r3n7_3ffffffff missing missing true true
250 │ r3n7_7ffffffff missing missing missing trueTo access the matroid by its name, you can use the OSCAR function `matroid_from_matroid_hex':
julia> matroid_from_matroid_hex("r1n4_01")
Matroid of rank 1 on 4 elementsTo return the complete data on a matroid use the function load_dict:
julia> y = load_dict(uniform_matroid(1,3))
Dict{String, Any} with 4 entries:
"Aut_bases_-1_timed" => 0.123875
"Aut_circuits_6_timed" => 1.34087
"Aut_bases_-1" => FreeAssociativeAlgebraElem[u[1, 1]^2 - u[1, 1], u[1, 1]*u[1,…
"Aut_circuits_6" => FreeAssociativeAlgebraElem[u[1, 3] + u[2, 3] + u[3, 3] - 1, …[1]
Daniel Corey, Michael Joswig, Julien Schanz, Marcel Wack, Moritz Weber
Quantum automorphisms of matroids, J. Algebra 667 (2025),
doi: 10.1016/j.jalgebra.2024.11.036;
arXiv version
[2]
Antony Della Vecchia, Michael Joswig and Benjamin Lorenz
A FAIR File Format for Mathematical Software,
in: Mathematical software – ICMS 2024. Ed. by Kevin Buzzard, Alicia Dickenstein,
Bettina Eick, Anton Leykin, and Yue Ren. Vol. 14749. Lecture Notes in Computer Science. Springer, pp. 234–244.
doi: 10.1007/978-3-031-64529-7_25;
arXiv version