{
  "noether/category/SteinerCategory@1": {
    "doc": "Validated finite strong Steiner category.",
    "file": "py/category.rs",
    "methods": [
      {
        "doc": "",
        "kind": "constructor",
        "name": "SteinerCategory",
        "signature": "(atom_counts: Vec<usize>, boundaries: Vec<Vec<PySignedBoundary>>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "staticmethod",
        "name": "empty",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "staticmethod",
        "name": "point",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "staticmethod",
        "name": "globe",
        "signature": "(dimension: usize)"
      },
      {
        "doc": "Construct the Street oriental of the requested dimension.",
        "kind": "staticmethod",
        "name": "oriental",
        "signature": "(dimension: usize)"
      },
      {
        "doc": "",
        "kind": "staticmethod",
        "name": "cube",
        "signature": "(dimension: usize)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "disjoint_union",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "staticmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "dimension",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "atom_count",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "atom_counts",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "atom_count_in_degree",
        "signature": "(degree: usize)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "boundary",
        "signature": "(atom: &PyAtomId)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "precedence_poset",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "atom",
        "signature": "(atom: &PyAtomId)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "cell",
        "signature": "(dimension: usize, top_atoms: Vec<usize>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "cell_from_supports",
        "signature": "(negative_supports: Vec<Vec<usize>>, positive_supports: Vec<Vec<usize>>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "exact_cells",
        "signature": "(dimension: usize)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "cells",
        "signature": "(dimension: usize)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "exact_cell_counts",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "mapping_category",
        "signature": "(source: &PySteinerCell, target: &PySteinerCell)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "component_poset",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "fundamental_poset",
        "signature": "(source: &PySteinerCell, target: &PySteinerCell)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "monomorphic_oriented_basepoints",
        "signature": "(dimension: usize)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "homotopy_poset",
        "signature": "(basepoint: &PyOrientedBasepoint)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "truncate",
        "signature": "(dimension: usize)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "dual",
        "signature": "(dimensions: Vec<usize>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "canonical_label",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "canonical_form",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "is_isomorphic",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "automorphism_group",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "underlying_chain_complex",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "polygraphic_homology",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "polygraphic_homology_invariants",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "gray_tensor",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "street_nerve_skeleton",
        "signature": "(max_degree: usize)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "categorical_homology",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "reduced_categorical_homology",
        "signature": "(object: &PySteinerCell)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      }
    ],
    "py_class": "SteinerCategory",
    "schema": {
      "$defs": {
        "SignedBoundaryWire": {
          "properties": {
            "negative": {
              "items": {
                "format": "uint",
                "minimum": 0,
                "type": "integer"
              },
              "type": "array"
            },
            "positive": {
              "items": {
                "format": "uint",
                "minimum": 0,
                "type": "integer"
              },
              "type": "array"
            }
          },
          "required": [
            "negative",
            "positive"
          ],
          "type": "object"
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "atom_counts": {
          "items": {
            "format": "uint",
            "minimum": 0,
            "type": "integer"
          },
          "type": "array"
        },
        "boundaries": {
          "items": {
            "items": {
              "$ref": "#/$defs/SignedBoundaryWire"
            },
            "type": "array"
          },
          "type": "array"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "atom_counts",
        "boundaries"
      ],
      "title": "SteinerCategory",
      "type": "object"
    },
    "struct": "PySteinerCategory",
    "type_id": "noether/category/SteinerCategory@1",
    "version": 1,
    "wire_id": "noether/category/SteinerCategory@1"
  },
  "noether/combin/Composition@1": {
    "doc": "A thin Python handle around Noether's canonical integer composition.",
    "file": "py/partition.rs",
    "methods": [
      {
        "doc": "Construct from ordered positive parts.",
        "kind": "constructor",
        "name": "Composition",
        "signature": "(parts: Vec<usize>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "Serialize only the canonical parts.",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "Deserialize and revalidate the composition.",
        "kind": "staticmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "Ordered positive parts.",
        "kind": "getter",
        "name": "parts",
        "signature": "()"
      },
      {
        "doc": "Integer being composed.",
        "kind": "getter",
        "name": "size",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_repr_mimebundle_",
        "signature": "(include=None, exclude=None)"
      }
    ],
    "py_class": "Composition",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "parts": {
          "items": {
            "format": "uint",
            "minimum": 0,
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "parts"
      ],
      "title": "Composition",
      "type": "object"
    },
    "struct": "PyComposition",
    "type_id": "noether/combin/Composition@1",
    "version": 1,
    "wire_id": "noether/combin/Composition@1"
  },
  "noether/combin/Graph@1": {
    "doc": "The thin Python projection of Noether's CSR graph value.",
    "file": "py/graph.rs",
    "methods": [
      {
        "doc": "The stable semantic identity shared with the public Rust facade.",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "Serialize the graph's validated defining content.",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "Deserialize and revalidate a graph's defining content.",
        "kind": "staticmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "Construct a **simple undirected graph** from `n_vertices` and a list of `[u, v]` edge pairs.",
        "kind": "constructor",
        "name": "Graph",
        "signature": "(n_vertices, edges, name=None, type=None)"
      },
      {
        "doc": "Construct a graph from a list of `(source, target, weight)` triples.",
        "kind": "staticmethod",
        "name": "from_edges",
        "signature": "(n, edges, directed)"
      },
      {
        "doc": "Construct an unweighted graph from a list of `(source, target)` pairs.",
        "kind": "staticmethod",
        "name": "from_unweighted",
        "signature": "(n, edges, directed)"
      },
      {
        "doc": "The number of vertices.",
        "kind": "getter",
        "name": "order",
        "signature": "()"
      },
      {
        "doc": "The number of edges (each undirected pair counted once; parallel edges counted with multiplicity).",
        "kind": "getter",
        "name": "edge_count",
        "signature": "()"
      },
      {
        "doc": "`True` if this is a directed graph, `False` for undirected.",
        "kind": "getter",
        "name": "is_directed",
        "signature": "()"
      },
      {
        "doc": "The stable semantic id (`noether/combin/Graph@1`).",
        "kind": "getter",
        "name": "type",
        "signature": "()"
      },
      {
        "doc": "The number of vertices (alias of `order`).",
        "kind": "getter",
        "name": "n_vertices",
        "signature": "()"
      },
      {
        "doc": "The optional human-readable name (e.g.",
        "kind": "getter",
        "name": "name",
        "signature": "()"
      },
      {
        "doc": "The defining edges as sorted `[u, v]` pairs, with weights dropped.",
        "kind": "getter",
        "name": "edges",
        "signature": "()"
      },
      {
        "doc": "The defining `(source, target, weight)` triples in construction order.",
        "kind": "getter",
        "name": "weighted_edges",
        "signature": "()"
      },
      {
        "doc": "The number of edges (`len(edges)`).",
        "kind": "getter",
        "name": "n_edges",
        "signature": "()"
      },
      {
        "doc": "The Laplacian matrix `L = D - A` as a dense `list[list[int]]`, computed from the defining edges (treated as undirected).",
        "kind": "method",
        "name": "laplacian",
        "signature": "()"
      },
      {
        "doc": "The reduced Laplacian: the Laplacian with the row and column of `delete_vertex` removed.",
        "kind": "method",
        "name": "reduced_laplacian",
        "signature": "(delete_vertex=0)"
      },
      {
        "doc": "The Laplacian spectrum: eigenvalues of [`laplacian`] in ascending order.",
        "kind": "method",
        "name": "laplacian_spectrum",
        "signature": "()"
      },
      {
        "doc": "The degree of each vertex, sorted descending (undirected; a self-loop would contribute 2, but simple graphs have none).",
        "kind": "method",
        "name": "degree_sequence",
        "signature": "()"
      },
      {
        "doc": "Vertex `v`'s out-neighbours (directed) or all neighbours (undirected), in ascending target-id order, with multiplicity.",
        "kind": "method",
        "name": "neighbors",
        "signature": "(v: VertexId)"
      },
      {
        "doc": "The out-degree of `v` (or, for an undirected graph, the degree, with a self-loop contributing 1).",
        "kind": "method",
        "name": "degree",
        "signature": "(v: VertexId)"
      },
      {
        "doc": "The raw CSR `(offsets, targets)` arrays.",
        "kind": "method",
        "name": "csr_adjacency",
        "signature": "()"
      },
      {
        "doc": "The induced subgraph on `vertices`.",
        "kind": "method",
        "name": "subgraph",
        "signature": "(vertices: Vec<VertexId>)"
      },
      {
        "doc": "The reverse digraph.",
        "kind": "method",
        "name": "transpose",
        "signature": "()"
      },
      {
        "doc": "Breadth-first search from `source`.",
        "kind": "method",
        "name": "bfs",
        "signature": "(source: VertexId)"
      },
      {
        "doc": "Depth-first search from `source`.",
        "kind": "method",
        "name": "dfs",
        "signature": "(source: VertexId)"
      },
      {
        "doc": "Connected (weak, for digraphs) component labelling.",
        "kind": "method",
        "name": "connected_components",
        "signature": "()"
      },
      {
        "doc": "A shortest `s`–`t` path.",
        "kind": "method",
        "name": "shortest_path",
        "signature": "(s: VertexId, t: VertexId)"
      },
      {
        "doc": "Compute an exact canonical labeling of this directed, weighted multigraph.",
        "kind": "method",
        "name": "canonical_label",
        "signature": "()"
      },
      {
        "doc": "The exact automorphism group acting on this graph's vertex ids.",
        "kind": "method",
        "name": "automorphism_group",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &PyGraph)"
      },
      {
        "doc": "Bounded semantic summary for interactive and LLM-facing clients.",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      },
      {
        "doc": "Inline node-link diagram (image/svg+xml) for small graphs; large graphs fall back to the text summary.",
        "kind": "method",
        "name": "_repr_mimebundle_",
        "signature": "(include=None, exclude=None)"
      }
    ],
    "py_class": "Graph",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "directed": {
          "type": "boolean"
        },
        "edges": {
          "items": {
            "maxItems": 3,
            "minItems": 3,
            "prefixItems": [
              {
                "format": "uint32",
                "minimum": 0,
                "type": "integer"
              },
              {
                "format": "uint32",
                "minimum": 0,
                "type": "integer"
              },
              {
                "format": "int64",
                "type": "integer"
              }
            ],
            "type": "array"
          },
          "type": "array"
        },
        "order": {
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "order",
        "edges",
        "directed"
      ],
      "title": "Graph",
      "type": "object"
    },
    "struct": "PyGraph",
    "type_id": "noether/combin/Graph@1",
    "version": 1,
    "wire_id": "noether/combin/Graph@1"
  },
  "noether/combin/KashiwaraCrystal@1": {
    "doc": "A thin Python handle around Noether's validated finite type-A crystal.",
    "file": "py/crystals.rs",
    "methods": [
      {
        "doc": "Construct the standard letter crystal `B(Lambda_1)` of type `A_rank`.",
        "kind": "staticmethod",
        "name": "type_a_letters",
        "signature": "(rank: usize)"
      },
      {
        "doc": "Construct the semistandard-tableau crystal `B(shape)` of type `A_rank`.",
        "kind": "staticmethod",
        "name": "type_a_tableaux",
        "signature": "(rank: usize, shape: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "Serialize the Cartan matrix, weights, and lowering table.",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "Deserialize and revalidate every colored-string and weight invariant.",
        "kind": "staticmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "Cartan rank, equal to the number of Kashiwara colors.",
        "kind": "getter",
        "name": "rank",
        "signature": "()"
      },
      {
        "doc": "Number of vertices in the explicit colored graph.",
        "kind": "getter",
        "name": "vertex_count",
        "signature": "()"
      },
      {
        "doc": "Defining type-A Cartan matrix.",
        "kind": "getter",
        "name": "cartan_matrix",
        "signature": "()"
      },
      {
        "doc": "Weight in fundamental-weight coordinates.",
        "kind": "method",
        "name": "weight",
        "signature": "(vertex: VertexId)"
      },
      {
        "doc": "Apply the Kashiwara raising operator `e_index`.",
        "kind": "method",
        "name": "e",
        "signature": "(index: usize, vertex: VertexId)"
      },
      {
        "doc": "Apply the Kashiwara lowering operator `f_index`.",
        "kind": "method",
        "name": "f",
        "signature": "(index: usize, vertex: VertexId)"
      },
      {
        "doc": "Return the upward and downward distances along one colored string.",
        "kind": "method",
        "name": "epsilon_phi",
        "signature": "(index: usize, vertex: VertexId)"
      },
      {
        "doc": "Vertices killed by every raising operator.",
        "kind": "method",
        "name": "highest_weight_vertices",
        "signature": "()"
      },
      {
        "doc": "Weight-multiplicity character in deterministic weight order.",
        "kind": "method",
        "name": "character",
        "signature": "()"
      },
      {
        "doc": "Form the right-to-left Kashiwara tensor product.",
        "kind": "method",
        "name": "tensor",
        "signature": "(rhs: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_repr_mimebundle_",
        "signature": "(include=None, exclude=None)"
      }
    ],
    "py_class": "KashiwaraCrystal",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "cartan_matrix": {
          "items": {
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": "array"
          },
          "type": "array"
        },
        "f_edges": {
          "items": {
            "items": {
              "format": "uint32",
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            },
            "type": "array"
          },
          "type": "array"
        },
        "weights": {
          "items": {
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": "array"
          },
          "type": "array"
        }
      },
      "required": [
        "cartan_matrix",
        "weights",
        "f_edges"
      ],
      "title": "KashiwaraCrystal",
      "type": "object"
    },
    "struct": "PyKashiwaraCrystal",
    "type_id": "noether/combin/KashiwaraCrystal@1",
    "version": 1,
    "wire_id": "noether/combin/KashiwaraCrystal@1"
  },
  "noether/combin/Matroid@1": {
    "doc": "A thin Python handle around Noether's validated Rust [`Matroid`].",
    "file": "py/matroid.rs",
    "methods": [
      {
        "doc": "Construct from a labeled ground set and the complete basis family.",
        "kind": "staticmethod",
        "name": "from_bases",
        "signature": "(ground_set: Vec<VertexId>, bases: Vec<Vec<VertexId>>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "Serialize only the canonical ground set and complete basis family.",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "Deserialize and revalidate every matroid axiom.",
        "kind": "staticmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "Canonical ordered element identifiers.",
        "kind": "getter",
        "name": "ground_set",
        "signature": "()"
      },
      {
        "doc": "Complete canonical basis family.",
        "kind": "getter",
        "name": "bases",
        "signature": "()"
      },
      {
        "doc": "Rank of a subset of the ground set.",
        "kind": "method",
        "name": "rank",
        "signature": "(subset: Vec<VertexId>)"
      },
      {
        "doc": "Minimal dependent subsets.",
        "kind": "getter",
        "name": "circuits",
        "signature": "()"
      },
      {
        "doc": "Delete one element while preserving the remaining labels.",
        "kind": "method",
        "name": "delete",
        "signature": "(element: VertexId)"
      },
      {
        "doc": "Contract one element while preserving the remaining labels.",
        "kind": "method",
        "name": "contract",
        "signature": "(element: VertexId)"
      },
      {
        "doc": "Exact Tutte polynomial in `Z[x, y]`.",
        "kind": "method",
        "name": "tutte_polynomial",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_repr_mimebundle_",
        "signature": "(include=None, exclude=None)"
      }
    ],
    "py_class": "Matroid",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "bases": {
          "items": {
            "items": {
              "format": "uint32",
              "minimum": 0,
              "type": "integer"
            },
            "type": "array"
          },
          "type": "array"
        },
        "ground_set": {
          "items": {
            "format": "uint32",
            "minimum": 0,
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "ground_set",
        "bases"
      ],
      "title": "Matroid",
      "type": "object"
    },
    "struct": "PyMatroid",
    "type_id": "noether/combin/Matroid@1",
    "version": 1,
    "wire_id": "noether/combin/Matroid@1"
  },
  "noether/combin/Partition@1": {
    "doc": "A thin Python handle around Noether's canonical integer partition.",
    "file": "py/partition.rs",
    "methods": [
      {
        "doc": "Construct from weakly-decreasing positive parts.",
        "kind": "constructor",
        "name": "Partition",
        "signature": "(parts: Vec<usize>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "Serialize only the canonical parts.",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "Deserialize and revalidate the partition.",
        "kind": "staticmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "Canonical weakly-decreasing parts.",
        "kind": "getter",
        "name": "parts",
        "signature": "()"
      },
      {
        "doc": "Integer being partitioned.",
        "kind": "getter",
        "name": "size",
        "signature": "()"
      },
      {
        "doc": "Transpose the Young diagram.",
        "kind": "method",
        "name": "conjugate",
        "signature": "()"
      },
      {
        "doc": "Hook lengths in row-major Young-diagram order.",
        "kind": "method",
        "name": "hook_lengths",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_repr_mimebundle_",
        "signature": "(include=None, exclude=None)"
      }
    ],
    "py_class": "Partition",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "parts": {
          "items": {
            "format": "uint",
            "minimum": 0,
            "type": "integer"
          },
          "type": "array"
        }
      },
      "required": [
        "parts"
      ],
      "title": "Partition",
      "type": "object"
    },
    "struct": "PyPartition",
    "type_id": "noether/combin/Partition@1",
    "version": 1,
    "wire_id": "noether/combin/Partition@1"
  },
  "noether/combin/Poset@1": {
    "doc": "The thin Python handle around Noether's validated Rust [`Poset`].",
    "file": "py/poset.rs",
    "methods": [
      {
        "doc": "Construct a finite poset from strict generating relation pairs.",
        "kind": "constructor",
        "name": "Poset",
        "signature": "(n_elements: usize, relations: Vec<Vec<i64>>)"
      },
      {
        "doc": "The stable semantic identity shared with the public Rust facade.",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "Serialize only the validated defining Hasse diagram.",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "Deserialize and revalidate a finite poset.",
        "kind": "staticmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "Number of elements.",
        "kind": "getter",
        "name": "order",
        "signature": "()"
      },
      {
        "doc": "The directed Hasse diagram as the public graph type.",
        "kind": "getter",
        "name": "covers",
        "signature": "()"
      },
      {
        "doc": "Return whether `lower <= upper`.",
        "kind": "method",
        "name": "leq",
        "signature": "(lower: VertexId, upper: VertexId)"
      },
      {
        "doc": "Compute the exact labeling minimizing the principal-downset tuple.",
        "kind": "method",
        "name": "canonical_label",
        "signature": "()"
      },
      {
        "doc": "Return the representative minimizing the principal-downset tuple.",
        "kind": "method",
        "name": "canonical_form",
        "signature": "()"
      },
      {
        "doc": "Compute the exact automorphism group on the element ids.",
        "kind": "method",
        "name": "automorphism_group",
        "signature": "()"
      },
      {
        "doc": "Strict predecessor counts indexed by element id.",
        "kind": "method",
        "name": "strict_lower_counts",
        "signature": "()"
      },
      {
        "doc": "Strict successor counts indexed by element id.",
        "kind": "method",
        "name": "strict_upper_counts",
        "signature": "()"
      },
      {
        "doc": "Minimal elements in ascending id order.",
        "kind": "method",
        "name": "minimal_elements",
        "signature": "()"
      },
      {
        "doc": "Maximal elements in ascending id order.",
        "kind": "method",
        "name": "maximal_elements",
        "signature": "()"
      },
      {
        "doc": "Number of strict comparable pairs.",
        "kind": "method",
        "name": "comparable_pair_count",
        "signature": "()"
      },
      {
        "doc": "Weakly connected components of the Hasse diagram.",
        "kind": "method",
        "name": "connected_components",
        "signature": "()"
      },
      {
        "doc": "Number of elements in a longest chain.",
        "kind": "method",
        "name": "height",
        "signature": "()"
      },
      {
        "doc": "Maximum antichain size.",
        "kind": "method",
        "name": "width",
        "signature": "()"
      },
      {
        "doc": "Reverse every comparison while retaining element ids.",
        "kind": "method",
        "name": "opposite",
        "signature": "()"
      },
      {
        "doc": "Whether every pair has a meet and a join.",
        "kind": "method",
        "name": "is_lattice",
        "signature": "()"
      },
      {
        "doc": "Whether this poset is isomorphic to its opposite.",
        "kind": "method",
        "name": "is_self_dual",
        "signature": "()"
      },
      {
        "doc": "Current up- and down-beat-point certificates.",
        "kind": "method",
        "name": "beat_points",
        "signature": "()"
      },
      {
        "doc": "Whether this poset has no beat points.",
        "kind": "method",
        "name": "is_core",
        "signature": "()"
      },
      {
        "doc": "Delete beat points and return replayable reduction evidence.",
        "kind": "method",
        "name": "core",
        "signature": "()"
      },
      {
        "doc": "Compute lean integral homology after beat-point reduction.",
        "kind": "method",
        "name": "graded_homology_invariants",
        "signature": "()"
      },
      {
        "doc": "Construct the order complex, preserving poset element ids.",
        "kind": "method",
        "name": "order_complex",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_repr_mimebundle_",
        "signature": "(include=None, exclude=None)"
      }
    ],
    "py_class": "Poset",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "covers": {
          "items": {
            "maxItems": 2,
            "minItems": 2,
            "prefixItems": [
              {
                "format": "uint32",
                "minimum": 0,
                "type": "integer"
              },
              {
                "format": "uint32",
                "minimum": 0,
                "type": "integer"
              }
            ],
            "type": "array"
          },
          "type": "array"
        },
        "order": {
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "order",
        "covers"
      ],
      "title": "Poset",
      "type": "object"
    },
    "struct": "PyPoset",
    "type_id": "noether/combin/Poset@1",
    "version": 1,
    "wire_id": "noether/combin/Poset@1"
  },
  "noether/combin/SymmetricFunction@1": {
    "doc": "A thin Python handle around Noether's exact rational symmetric function.",
    "file": "py/symmetric_function.rs",
    "methods": [
      {
        "doc": "Construct from a canonical basis label and `(partition, coefficient)` terms.",
        "kind": "constructor",
        "name": "SymmetricFunction",
        "signature": "(basis: &str, terms: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "Serialize the basis and typed exact terms.",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "Deserialize and revalidate partitions, coefficients, and homogeneity.",
        "kind": "staticmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "Canonical basis label.",
        "kind": "getter",
        "name": "basis",
        "signature": "()"
      },
      {
        "doc": "Homogeneous degree, or `None` for zero.",
        "kind": "getter",
        "name": "degree",
        "signature": "()"
      },
      {
        "doc": "Immutable `(Partition, Fraction)` terms in deterministic order.",
        "kind": "getter",
        "name": "terms",
        "signature": "()"
      },
      {
        "doc": "Re-express this value exactly in another classical basis.",
        "kind": "method",
        "name": "convert_basis",
        "signature": "(basis: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__add__",
        "signature": "(rhs: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__sub__",
        "signature": "(rhs: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__mul__",
        "signature": "(rhs: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_repr_mimebundle_",
        "signature": "(include=None, exclude=None)"
      }
    ],
    "py_class": "SymmetricFunction",
    "schema": {
      "$defs": {
        "Partition": {
          "properties": {
            "parts": {
              "items": {
                "format": "uint",
                "minimum": 0,
                "type": "integer"
              },
              "type": "array"
            }
          },
          "required": [
            "parts"
          ],
          "type": "object"
        },
        "SymmetricTermWire": {
          "properties": {
            "coefficient": {
              "type": "string"
            },
            "partition": {
              "$ref": "#/$defs/Partition"
            }
          },
          "required": [
            "partition",
            "coefficient"
          ],
          "type": "object"
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "basis": {
          "type": "string"
        },
        "terms": {
          "items": {
            "$ref": "#/$defs/SymmetricTermWire"
          },
          "type": "array"
        }
      },
      "required": [
        "basis",
        "terms"
      ],
      "title": "SymmetricFunction",
      "type": "object"
    },
    "struct": "PySymmetricFunction",
    "type_id": "noether/combin/SymmetricFunction@1",
    "version": 1,
    "wire_id": "noether/combin/SymmetricFunction@1"
  },
  "noether/combin/Tableau@1": {
    "doc": "A thin Python handle around Noether's semistandard integer tableau.",
    "file": "py/tableau.rs",
    "methods": [
      {
        "doc": "Construct a semistandard tableau from row-major Python integers.",
        "kind": "constructor",
        "name": "Tableau",
        "signature": "(rows: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "Serialize canonical row data; arbitrary-precision entries use decimal strings.",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "Deserialize and revalidate shape, rows, and columns.",
        "kind": "staticmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "Immutable row-major entries as Python integers.",
        "kind": "getter",
        "name": "rows",
        "signature": "()"
      },
      {
        "doc": "Canonical partition shape.",
        "kind": "getter",
        "name": "shape",
        "signature": "()"
      },
      {
        "doc": "Content vector in the positive alphabet `1..=alphabet_size`.",
        "kind": "method",
        "name": "content",
        "signature": "(alphabet_size: usize)"
      },
      {
        "doc": "Lazily enumerate semistandard tableaux of one shape and alphabet.",
        "kind": "staticmethod",
        "name": "semistandard",
        "signature": "(shape: &PyPartition, maximum_entry: usize)"
      },
      {
        "doc": "Robinson--Schensted--Knuth row insertion for an integer word.",
        "kind": "staticmethod",
        "name": "rsk",
        "signature": "(word: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_repr_mimebundle_",
        "signature": "(include=None, exclude=None)"
      }
    ],
    "py_class": "Tableau",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "rows": {
          "items": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "type": "array"
        }
      },
      "required": [
        "rows"
      ],
      "title": "Tableau",
      "type": "object"
    },
    "struct": "PyTableau",
    "type_id": "noether/combin/Tableau@1",
    "version": 1,
    "wire_id": "noether/combin/Tableau@1"
  },
  "noether/combin/Tree@1": {
    "doc": "A rooted tree over `graph-core`'s CSR graph.",
    "file": "py/tree.rs",
    "methods": [
      {
        "doc": "The stable semantic identity shared with the public Rust facade.",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "Serialize the tree's validated defining content.",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "Deserialize and revalidate a rooted tree.",
        "kind": "staticmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "Build a rooted tree from `n` vertices and an edge list.",
        "kind": "staticmethod",
        "name": "from_edges",
        "signature": "(n, edges, root=None)"
      },
      {
        "doc": "Validate an existing graph as an unweighted, undirected tree.",
        "kind": "staticmethod",
        "name": "from_graph",
        "signature": "(graph, root=None)"
      },
      {
        "doc": "The number of vertices.",
        "kind": "getter",
        "name": "order",
        "signature": "()"
      },
      {
        "doc": "The root vertex.",
        "kind": "getter",
        "name": "root",
        "signature": "()"
      },
      {
        "doc": "The defining edges as unordered `[u, v]` pairs.",
        "kind": "getter",
        "name": "edges",
        "signature": "()"
      },
      {
        "doc": "The lowest common ancestor of `u` and `v` — `O(1)` (Euler-tour sparse-table RMQ).",
        "kind": "method",
        "name": "lca",
        "signature": "(u: VertexId, v: VertexId)"
      },
      {
        "doc": "`v`'s depth — edges from the root to `v` (the root has depth `0`).",
        "kind": "method",
        "name": "depth",
        "signature": "(v: VertexId)"
      },
      {
        "doc": "`v`'s `k`-th ancestor (parent for `k == 1`, `v` itself for `k == 0`), or `None` if `k` exceeds `v`'s depth.",
        "kind": "method",
        "name": "kth_ancestor",
        "signature": "(v: VertexId, k: usize)"
      },
      {
        "doc": "`True` if `a` is an ancestor of `d` (a vertex is its own ancestor).",
        "kind": "method",
        "name": "is_ancestor",
        "signature": "(a: VertexId, d: VertexId)"
      },
      {
        "doc": "The number of vertices in `v`'s subtree (including `v`).",
        "kind": "method",
        "name": "subtree_size",
        "signature": "(v: VertexId)"
      },
      {
        "doc": "`v`'s subtree as a preorder `list[int]` (it begins with `v`).",
        "kind": "method",
        "name": "subtree",
        "signature": "(v: VertexId)"
      },
      {
        "doc": "The tree distance between `u` and `v` — `depth(u) + depth(v) − 2·depth(lca(u, v))`.",
        "kind": "method",
        "name": "distance",
        "signature": "(u: VertexId, v: VertexId)"
      },
      {
        "doc": "The tree's **diameter** — `(length, path)` where `length` is the number of edges on a longest path and `path` is a realizing vertex sequence.",
        "kind": "method",
        "name": "diameter",
        "signature": "()"
      },
      {
        "doc": "The graph-theoretic center: the one or two middle vertices of a diameter path, in ascending order.",
        "kind": "method",
        "name": "center",
        "signature": "()"
      },
      {
        "doc": "The tree's **centroid(s)** as a `list[int]` (ascending) — the size-balance definition: a vertex whose removal leaves no component with more than `⌊n/2⌋` vertices.",
        "kind": "method",
        "name": "centroid",
        "signature": "()"
      },
      {
        "doc": "The recursive **centroid decomposition** as a `dict`: `{\"root\": int, \"parent\": list[int | None]}`, where `parent[v]` is `v`'s parent in the centroid tree (`None` for the decomposition root).",
        "kind": "method",
        "name": "centroid_decomposition",
        "signature": "()"
      },
      {
        "doc": "The **heavy-light decomposition** structure as a `dict`: `{\"head\": list[int], \"position\": list[int], \"chain\": list[int]}`, indexed by vertex id (`head[v]` the chain head, `position[v]` the linearised HLD position, `chain[v]` the chain id).",
        "kind": "method",
        "name": "heavy_light_decomposition",
        "signature": "()"
      },
      {
        "doc": "Decompose the `u‥v` tree path into `O(log n)` contiguous HLD position intervals `[lo, hi]` (inclusive), as a `list[(int, int)]`.",
        "kind": "method",
        "name": "hld_path_intervals",
        "signature": "(u: VertexId, v: VertexId)"
      },
      {
        "doc": "The canonical **tree DP**: the post-order subtree fold instantiated as the subtree-size dynamic program — `result[v] == subtree_size(v)` for every vertex, computed by the deep-safe (explicit-stack, no recursion) reverse-preorder fold.",
        "kind": "method",
        "name": "tree_dp",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &PyTree)"
      },
      {
        "doc": "Bounded semantic summary for interactive and LLM-facing clients.",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_repr_mimebundle_",
        "signature": "(include=None, exclude=None)"
      }
    ],
    "py_class": "Tree",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "edges": {
          "items": {
            "maxItems": 2,
            "minItems": 2,
            "prefixItems": [
              {
                "format": "uint32",
                "minimum": 0,
                "type": "integer"
              },
              {
                "format": "uint32",
                "minimum": 0,
                "type": "integer"
              }
            ],
            "type": "array"
          },
          "type": "array"
        },
        "order": {
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "root": {
          "format": "uint32",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "order",
        "edges",
        "root"
      ],
      "title": "Tree",
      "type": "object"
    },
    "struct": "PyTree",
    "type_id": "noether/combin/Tree@1",
    "version": 1,
    "wire_id": "noether/combin/Tree@1"
  },
  "noether/commalg/PolynomialHomomorphism@1": {
    "doc": "A checked polynomial-ring homomorphism with explicit endpoints and images.",
    "file": "py/polynomial_facade.rs",
    "methods": [
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "source",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "target",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "coefficient_map",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "images",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "apply",
        "signature": "(value: &PyPolynomial)"
      },
      {
        "doc": "Extend an ideal along this map and recanonicalize it in the target polynomial ring.",
        "kind": "method",
        "name": "extend_ideal",
        "signature": "(ideal: &PyIdeal)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__call__",
        "signature": "(value: &PyPolynomial)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__hash__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      }
    ],
    "py_class": "PolynomialHomomorphism",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "coefficient_map": true,
        "images": {
          "items": true,
          "type": "array"
        },
        "source": true,
        "target": true,
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "source",
        "target",
        "coefficient_map",
        "images"
      ],
      "title": "PolynomialHomomorphismWire",
      "type": "object"
    },
    "struct": "PyPolynomialHomomorphism",
    "type_id": "noether/commalg/PolynomialHomomorphism@1",
    "version": 1,
    "wire_id": "noether/commalg/PolynomialHomomorphism@1"
  },
  "noether/commalg/RationalFunctionFieldMap@1": {
    "doc": "A checked coefficientwise map between finite rational-function fields.",
    "file": "py/rational_function.rs",
    "methods": [
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "source",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "target",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "coefficient_map",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "apply",
        "signature": "(value: &PyRationalFunction)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__call__",
        "signature": "(value: &PyRationalFunction)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__hash__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      }
    ],
    "py_class": "RationalFunctionFieldMap",
    "schema": {
      "$defs": {
        "FiniteFieldWire": {
          "properties": {
            "characteristic": {
              "type": "string"
            },
            "modulus": {
              "items": {
                "format": "uint64",
                "minimum": 0,
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "characteristic"
          ],
          "type": "object"
        },
        "FiniteRationalFunctionFieldWire": {
          "properties": {
            "coefficient_ring": {
              "$ref": "#/$defs/FiniteFieldWire"
            },
            "type": {
              "type": "string"
            },
            "variable": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "coefficient_ring",
            "variable"
          ],
          "type": "object"
        },
        "PrimeSubfieldEmbeddingWire": {
          "properties": {
            "source": {
              "$ref": "#/$defs/FiniteFieldWire"
            },
            "target": {
              "$ref": "#/$defs/FiniteFieldWire"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "source",
            "target"
          ],
          "type": "object"
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "coefficient_map": {
          "$ref": "#/$defs/PrimeSubfieldEmbeddingWire"
        },
        "source": {
          "$ref": "#/$defs/FiniteRationalFunctionFieldWire"
        },
        "target": {
          "$ref": "#/$defs/FiniteRationalFunctionFieldWire"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "source",
        "target",
        "coefficient_map"
      ],
      "title": "RationalFunctionFieldMapWire",
      "type": "object"
    },
    "struct": "PyRationalFunctionFieldMap",
    "type_id": "noether/commalg/RationalFunctionFieldMap@1",
    "version": 1,
    "wire_id": "noether/commalg/RationalFunctionFieldMap@1"
  },
  "noether/groups/PolynomialGlRepresentation@1": {
    "doc": "The irreducible polynomial representation of GL indexed by a partition.",
    "file": "py/representation.rs",
    "methods": [
      {
        "doc": "",
        "kind": "constructor",
        "name": "PolynomialGlRepresentation",
        "signature": "(rank: usize, partition: &PyPartition)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "rank",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "partition",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "highest_weight",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "degree",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "weyl_dimension",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "gl_character",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "sl_character",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "scalar_central_character",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "descends_to_sl_quotient",
        "signature": "(order: usize)"
      },
      {
        "doc": "Exact multiple of the standard `SL_n` second Chern class.",
        "kind": "method",
        "name": "second_chern_index",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "second_chern_index_from_weights",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify_second_chern_index",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "staticmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__hash__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      }
    ],
    "py_class": "PolynomialGlRepresentation",
    "schema": {
      "$defs": {
        "Partition": {
          "properties": {
            "parts": {
              "items": {
                "format": "uint",
                "minimum": 0,
                "type": "integer"
              },
              "type": "array"
            }
          },
          "required": [
            "parts"
          ],
          "type": "object"
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "partition": {
          "$ref": "#/$defs/Partition"
        },
        "rank": {
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "rank",
        "partition"
      ],
      "title": "PolynomialGlRepresentation",
      "type": "object"
    },
    "struct": "PyPolynomialGlRepresentation",
    "type_id": "noether/groups/PolynomialGlRepresentation@1",
    "version": 1,
    "wire_id": "noether/groups/PolynomialGlRepresentation@1"
  },
  "noether/groups/WeightCharacter@1": {
    "doc": "A finite formal character on an explicit weight lattice.",
    "file": "py/representation.rs",
    "methods": [
      {
        "doc": "",
        "kind": "constructor",
        "name": "WeightCharacter",
        "signature": "(lattice: &PyWeightLattice, terms: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "lattice",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "terms",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "dimension",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "multiplicity",
        "signature": "(weight: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "checked_add",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "tensor",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "dual",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "restrict",
        "signature": "(map: &PyWeightLatticeMap)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "chern_class",
        "signature": "(degree: u64)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "total_chern_class",
        "signature": "(maximum_degree: u64)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "staticmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__add__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__mul__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__hash__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      }
    ],
    "py_class": "WeightCharacter",
    "schema": {
      "$defs": {
        "WeightBasisConventionWire": {
          "oneOf": [
            {
              "enum": [
                "standard"
              ],
              "type": "string"
            },
            {
              "additionalProperties": false,
              "properties": {
                "type_a_fundamental": {
                  "properties": {
                    "degree": {
                      "format": "uint",
                      "minimum": 0,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "degree"
                  ],
                  "type": "object"
                }
              },
              "required": [
                "type_a_fundamental"
              ],
              "type": "object"
            }
          ]
        },
        "WeightLattice": {
          "properties": {
            "basis_names": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "convention": {
              "$ref": "#/$defs/WeightBasisConventionWire"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "basis_names",
            "convention"
          ],
          "type": "object"
        },
        "WeightMultiplicitySchema": {
          "properties": {
            "multiplicity": {
              "type": "string"
            },
            "weight": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "required": [
            "weight",
            "multiplicity"
          ],
          "type": "object"
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "lattice": {
          "$ref": "#/$defs/WeightLattice"
        },
        "terms": {
          "items": {
            "$ref": "#/$defs/WeightMultiplicitySchema"
          },
          "type": "array"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "lattice",
        "terms"
      ],
      "title": "WeightCharacter",
      "type": "object"
    },
    "struct": "PyWeightCharacter",
    "type_id": "noether/groups/WeightCharacter@1",
    "version": 1,
    "wire_id": "noether/groups/WeightCharacter@1"
  },
  "noether/groups/WeightLattice@1": {
    "doc": "A free weight lattice with a named basis and an explicit basis convention.",
    "file": "py/representation.rs",
    "methods": [
      {
        "doc": "",
        "kind": "constructor",
        "name": "WeightLattice",
        "signature": "(basis_names: Vec<String>)"
      },
      {
        "doc": "",
        "kind": "staticmethod",
        "name": "standard",
        "signature": "(rank: usize)"
      },
      {
        "doc": "",
        "kind": "staticmethod",
        "name": "type_a",
        "signature": "(n: usize)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "rank",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "basis_names",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "basis_convention",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "type_a_degree",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "homomorphism",
        "signature": "(target: &PyWeightLattice, basis_images: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "identity_map",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "staticmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__hash__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      }
    ],
    "py_class": "WeightLattice",
    "schema": {
      "$defs": {
        "WeightBasisConventionWire": {
          "oneOf": [
            {
              "enum": [
                "standard"
              ],
              "type": "string"
            },
            {
              "additionalProperties": false,
              "properties": {
                "type_a_fundamental": {
                  "properties": {
                    "degree": {
                      "format": "uint",
                      "minimum": 0,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "degree"
                  ],
                  "type": "object"
                }
              },
              "required": [
                "type_a_fundamental"
              ],
              "type": "object"
            }
          ]
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "basis_names": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "convention": {
          "$ref": "#/$defs/WeightBasisConventionWire"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "basis_names",
        "convention"
      ],
      "title": "WeightLattice",
      "type": "object"
    },
    "struct": "PyWeightLattice",
    "type_id": "noether/groups/WeightLattice@1",
    "version": 1,
    "wire_id": "noether/groups/WeightLattice@1"
  },
  "noether/groups/WeightLatticeMap@1": {
    "doc": "A homomorphism between two explicit weight lattices.",
    "file": "py/representation.rs",
    "methods": [
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "source",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "target",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "basis_images",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "apply",
        "signature": "(weight: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "then",
        "signature": "(next: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "staticmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__hash__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      }
    ],
    "py_class": "WeightLatticeMap",
    "schema": {
      "$defs": {
        "WeightBasisConventionWire": {
          "oneOf": [
            {
              "enum": [
                "standard"
              ],
              "type": "string"
            },
            {
              "additionalProperties": false,
              "properties": {
                "type_a_fundamental": {
                  "properties": {
                    "degree": {
                      "format": "uint",
                      "minimum": 0,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "degree"
                  ],
                  "type": "object"
                }
              },
              "required": [
                "type_a_fundamental"
              ],
              "type": "object"
            }
          ]
        },
        "WeightLattice": {
          "properties": {
            "basis_names": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "convention": {
              "$ref": "#/$defs/WeightBasisConventionWire"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "basis_names",
            "convention"
          ],
          "type": "object"
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "basis_images": {
          "items": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "type": "array"
        },
        "source": {
          "$ref": "#/$defs/WeightLattice"
        },
        "target": {
          "$ref": "#/$defs/WeightLattice"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "source",
        "target",
        "basis_images"
      ],
      "title": "WeightLatticeMap",
      "type": "object"
    },
    "struct": "PyWeightLatticeMap",
    "type_id": "noether/groups/WeightLatticeMap@1",
    "version": 1,
    "wire_id": "noether/groups/WeightLatticeMap@1"
  },
  "noether/homalg/ExteriorAlgebra@1": {
    "doc": "The exact exterior-algebra parent of a finite based free module.",
    "file": "py/module_power.rs",
    "methods": [
      {
        "doc": "Construct from one finite based free module and retain its exact context.",
        "kind": "constructor",
        "name": "ExteriorAlgebra",
        "signature": "(source: &PyFreeModule)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "__class_getitem__",
        "signature": "(_item: &Bound<'_, PyAny>)"
      },
      {
        "doc": "The ordered degree-one source module.",
        "kind": "getter",
        "name": "source",
        "signature": "()"
      },
      {
        "doc": "The exact coefficient context.",
        "kind": "getter",
        "name": "ring",
        "signature": "()"
      },
      {
        "doc": "Rank of the degree-one source module.",
        "kind": "getter",
        "name": "rank",
        "signature": "()"
      },
      {
        "doc": "Canonical coordinate module for one homogeneous exterior degree.",
        "kind": "method",
        "name": "power",
        "signature": "(degree: usize)"
      },
      {
        "doc": "Increasing basis-position sequences in canonical coordinate order.",
        "kind": "method",
        "name": "basis",
        "signature": "(degree: usize)"
      },
      {
        "doc": "Additive identity, represented by an empty canonical sparse table.",
        "kind": "method",
        "name": "zero",
        "signature": "()"
      },
      {
        "doc": "Multiplicative identity in exterior degree zero.",
        "kind": "method",
        "name": "one",
        "signature": "()"
      },
      {
        "doc": "Degree-one element at a zero-based source-basis position.",
        "kind": "method",
        "name": "generator",
        "signature": "(position: usize)"
      },
      {
        "doc": "Exterior basis element for a strictly increasing position sequence.",
        "kind": "method",
        "name": "basis_element",
        "signature": "(basis: Vec<usize>)"
      },
      {
        "doc": "Construct and canonicalize sparse `(basis, coefficient)` terms.",
        "kind": "method",
        "name": "from_terms",
        "signature": "(terms: &Bound<'_, PyAny>)"
      },
      {
        "doc": "Universal alternating product of degree-one module vectors.",
        "kind": "method",
        "name": "alternating_product",
        "signature": "(vectors: Vec<PyModuleElement>)"
      },
      {
        "doc": "Embed a coordinate vector from one canonical homogeneous exterior power.",
        "kind": "method",
        "name": "from_power_element",
        "signature": "(degree: usize, element: &PyModuleElement)"
      },
      {
        "doc": "Serialize the parent context as faithful typed JSON.",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "Restore and validate an exterior-algebra parent from faithful typed JSON.",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__hash__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      }
    ],
    "py_class": "ExteriorAlgebra",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "source": true,
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "source"
      ],
      "title": "ExteriorAlgebra",
      "type": "object"
    },
    "struct": "PyExteriorAlgebra",
    "type_id": "noether/homalg/ExteriorAlgebra@1",
    "version": 1,
    "wire_id": "noether/homalg/ExteriorAlgebra@1"
  },
  "noether/homalg/ExteriorElement@1": {
    "doc": "A canonical sparse, possibly inhomogeneous, exact exterior-algebra element.",
    "file": "py/module_power.rs",
    "methods": [
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "__class_getitem__",
        "signature": "(_item: &Bound<'_, PyAny>)"
      },
      {
        "doc": "Exact exterior-algebra parent carried by this element.",
        "kind": "getter",
        "name": "algebra",
        "signature": "()"
      },
      {
        "doc": "Number of nonzero canonical sparse terms.",
        "kind": "getter",
        "name": "term_count",
        "signature": "()"
      },
      {
        "doc": "Whether the canonical sparse term table is empty.",
        "kind": "method",
        "name": "is_zero",
        "signature": "()"
      },
      {
        "doc": "Canonical `(increasing basis positions, coefficient)` terms.",
        "kind": "getter",
        "name": "terms",
        "signature": "()"
      },
      {
        "doc": "Unique exterior degree, or `None` for a nonzero inhomogeneous value.",
        "kind": "getter",
        "name": "homogeneous_degree",
        "signature": "()"
      },
      {
        "doc": "Sorted exterior degrees carrying nonzero homogeneous components.",
        "kind": "getter",
        "name": "degrees",
        "signature": "()"
      },
      {
        "doc": "Extract one homogeneous component without changing its parent.",
        "kind": "method",
        "name": "homogeneous_component",
        "signature": "(degree: usize)"
      },
      {
        "doc": "Coefficient of one strictly increasing exterior basis sequence.",
        "kind": "method",
        "name": "coefficient",
        "signature": "(basis: Vec<usize>)"
      },
      {
        "doc": "Exact wedge product; material sparse work runs without the Python GIL.",
        "kind": "method",
        "name": "wedge",
        "signature": "(rhs: &Self)"
      },
      {
        "doc": "Multiply every term by a scalar in the exact coefficient context.",
        "kind": "method",
        "name": "scalar_mul",
        "signature": "(scalar: &Bound<'_, PyAny>)"
      },
      {
        "doc": "Contract with a covector from the exact dual based module.",
        "kind": "method",
        "name": "contract",
        "signature": "(covector: &PyModuleElement)"
      },
      {
        "doc": "Convert a homogeneous value to canonical exterior-power coordinates.",
        "kind": "method",
        "name": "to_power_element",
        "signature": "(degree: usize)"
      },
      {
        "doc": "Replay canonicality and coefficient-context checks.",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "Serialize the value as faithful typed JSON.",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "Restore and revalidate a canonical exterior element from typed JSON.",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__add__",
        "signature": "(rhs: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__sub__",
        "signature": "(rhs: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__neg__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__mul__",
        "signature": "(rhs: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__rmul__",
        "signature": "(scalar: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__hash__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      }
    ],
    "py_class": "ExteriorElement",
    "schema": {
      "$defs": {
        "ExteriorAlgebra": {
          "properties": {
            "source": true,
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "source"
          ],
          "type": "object"
        },
        "ExteriorTermSchema": {
          "properties": {
            "basis": {
              "items": {
                "format": "uint",
                "minimum": 0,
                "type": "integer"
              },
              "type": "array"
            },
            "coefficient": true
          },
          "required": [
            "basis",
            "coefficient"
          ],
          "type": "object"
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "algebra": {
          "$ref": "#/$defs/ExteriorAlgebra"
        },
        "terms": {
          "items": {
            "$ref": "#/$defs/ExteriorTermSchema"
          },
          "type": "array"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "algebra",
        "terms"
      ],
      "title": "ExteriorElement",
      "type": "object"
    },
    "struct": "PyExteriorElement",
    "type_id": "noether/homalg/ExteriorElement@1",
    "version": 1,
    "wire_id": "noether/homalg/ExteriorElement@1"
  },
  "noether/homalg/FinitelyGeneratedAbelianGroup@1": {
    "doc": "A finitely generated abelian group in canonical invariant-factor form.",
    "file": "py/homalg.rs",
    "methods": [
      {
        "doc": "",
        "kind": "constructor",
        "name": "FinitelyGeneratedAbelianGroup",
        "signature": "(free_rank, torsion_coefficients = Vec::new())"
      },
      {
        "doc": "Construct from arbitrary positive cyclic summand orders.",
        "kind": "staticmethod",
        "name": "from_cyclic_summands",
        "signature": "(free_rank: usize, cyclic_orders: Vec<Bound<'_, PyAny>>)"
      },
      {
        "doc": "Versioned language-neutral semantic identity.",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "Rank of the free abelian summand.",
        "kind": "getter",
        "name": "free_rank",
        "signature": "()"
      },
      {
        "doc": "Positive nonunit torsion factors in divisibility order.",
        "kind": "getter",
        "name": "torsion_coefficients",
        "signature": "()"
      },
      {
        "doc": "Whether this is the zero group.",
        "kind": "method",
        "name": "is_trivial",
        "signature": "()"
      },
      {
        "doc": "Canonical direct sum.",
        "kind": "method",
        "name": "direct_sum",
        "signature": "(other: &Self)"
      },
      {
        "doc": "Tensor product over the integers.",
        "kind": "method",
        "name": "tensor_product",
        "signature": "(other: &Self)"
      },
      {
        "doc": "First Tor group over the integers.",
        "kind": "method",
        "name": "tor_1",
        "signature": "(other: &Self)"
      },
      {
        "doc": "Hom over the integers into Z.",
        "kind": "method",
        "name": "hom_to_integers",
        "signature": "()"
      },
      {
        "doc": "First Ext over the integers into Z.",
        "kind": "method",
        "name": "ext_1_to_integers",
        "signature": "()"
      },
      {
        "doc": "Check the canonical invariant-factor representation.",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "Bounded semantic summary for interactive and LLM-facing clients.",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      }
    ],
    "py_class": "FinitelyGeneratedAbelianGroup",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "free_rank": {
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "torsion_coefficients": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "free_rank",
        "torsion_coefficients"
      ],
      "title": "FinitelyGeneratedAbelianGroup",
      "type": "object"
    },
    "struct": "PyFinitelyGeneratedAbelianGroup",
    "type_id": "noether/homalg/FinitelyGeneratedAbelianGroup@1",
    "version": 1,
    "wire_id": "noether/homalg/FinitelyGeneratedAbelianGroup@1"
  },
  "noether/homalg/ImageSubmodule@1": {
    "doc": "A map-bound certificate for a complete exact image.",
    "file": "py/module_facade.rs",
    "methods": [
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "__class_getitem__",
        "signature": "(_item: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "homomorphism",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "submodule",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      }
    ],
    "py_class": "ImageSubmodule",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "homomorphism": true,
        "submodule": true,
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "homomorphism",
        "submodule"
      ],
      "title": "ImageSubmodule",
      "type": "object"
    },
    "struct": "PyImageSubmodule",
    "type_id": "noether/homalg/ImageSubmodule@1",
    "version": 1,
    "wire_id": "noether/homalg/ImageSubmodule@1"
  },
  "noether/homalg/KernelSubmodule@1": {
    "doc": "A map-bound certificate for a complete exact kernel.",
    "file": "py/module_facade.rs",
    "methods": [
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "__class_getitem__",
        "signature": "(_item: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "homomorphism",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "submodule",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      }
    ],
    "py_class": "KernelSubmodule",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "homomorphism": true,
        "submodule": true,
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "homomorphism",
        "submodule"
      ],
      "title": "KernelSubmodule",
      "type": "object"
    },
    "struct": "PyKernelSubmodule",
    "type_id": "noether/homalg/KernelSubmodule@1",
    "version": 1,
    "wire_id": "noether/homalg/KernelSubmodule@1"
  },
  "noether/homalg/ModulePowerHomomorphism@1": {
    "doc": "A replay-verifiable map induced on a symmetric or exterior power.",
    "file": "py/module_power.rs",
    "methods": [
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "__class_getitem__",
        "signature": "(_item: &Bound<'_, PyAny>)"
      },
      {
        "doc": "Degree-one linear map from which this evidence was computed.",
        "kind": "getter",
        "name": "source_map",
        "signature": "()"
      },
      {
        "doc": "Whether this is symmetric- or exterior-power evidence.",
        "kind": "getter",
        "name": "kind",
        "signature": "()"
      },
      {
        "doc": "Homogeneous power degree.",
        "kind": "getter",
        "name": "degree",
        "signature": "()"
      },
      {
        "doc": "Canonical source power and its ordered coordinate basis.",
        "kind": "getter",
        "name": "source_power",
        "signature": "()"
      },
      {
        "doc": "Canonical target power and its ordered coordinate basis.",
        "kind": "getter",
        "name": "target_power",
        "signature": "()"
      },
      {
        "doc": "Fully materialized induced coordinate map.",
        "kind": "getter",
        "name": "induced",
        "signature": "()"
      },
      {
        "doc": "Compose compatible induced maps and replay functoriality evidence.",
        "kind": "method",
        "name": "compose",
        "signature": "(inner: &Self)"
      },
      {
        "doc": "Apply exterior-power evidence to the matching homogeneous component.",
        "kind": "method",
        "name": "apply_exterior",
        "signature": "(element: &PyExteriorElement)"
      },
      {
        "doc": "Recompute the induced matrix and reject stale or tampered evidence.",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "Serialize replay-verifiable evidence as faithful typed JSON.",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "Restore and replay-verify induced-map evidence from faithful typed JSON.",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__hash__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      }
    ],
    "py_class": "ModulePowerHomomorphism",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "degree": {
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "induced": true,
        "kind": {
          "type": "string"
        },
        "source_map": true,
        "source_power": true,
        "target_power": true,
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "source_map",
        "kind",
        "degree",
        "source_power",
        "target_power",
        "induced"
      ],
      "title": "ModulePowerHomomorphism",
      "type": "object"
    },
    "struct": "PyModulePowerHomomorphism",
    "type_id": "noether/homalg/ModulePowerHomomorphism@1",
    "version": 1,
    "wire_id": "noether/homalg/ModulePowerHomomorphism@1"
  },
  "noether/homalg/PresentedModulePowerHomomorphism@1": {
    "doc": "A replay-verifiable induced map between symmetric or exterior presentations.",
    "file": "py/module_power.rs",
    "methods": [
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "__class_getitem__",
        "signature": "(_item: &Bound<'_, PyAny>)"
      },
      {
        "doc": "Presented map from which this induced evidence was computed.",
        "kind": "getter",
        "name": "source_map",
        "signature": "()"
      },
      {
        "doc": "Whether this is symmetric- or exterior-power evidence.",
        "kind": "getter",
        "name": "kind",
        "signature": "()"
      },
      {
        "doc": "Homogeneous power degree.",
        "kind": "getter",
        "name": "degree",
        "signature": "()"
      },
      {
        "doc": "Verified source power presentation.",
        "kind": "getter",
        "name": "source_power",
        "signature": "()"
      },
      {
        "doc": "Verified target power presentation.",
        "kind": "getter",
        "name": "target_power",
        "signature": "()"
      },
      {
        "doc": "Induced map with generator and relation lifts.",
        "kind": "getter",
        "name": "induced",
        "signature": "()"
      },
      {
        "doc": "Compose compatible presented induced maps with verified relation lifts.",
        "kind": "method",
        "name": "compose",
        "signature": "(inner: &Self)"
      },
      {
        "doc": "Replay power presentations, relation lifts, and the commuting square.",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "Serialize replay-verifiable evidence as faithful typed JSON.",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "Restore and replay-verify presented-map evidence from typed JSON.",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__hash__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      }
    ],
    "py_class": "PresentedModulePowerHomomorphism",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "degree": {
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "induced": true,
        "kind": {
          "type": "string"
        },
        "source_map": true,
        "source_power": true,
        "target_power": true,
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "source_map",
        "kind",
        "degree",
        "source_power",
        "target_power",
        "induced"
      ],
      "title": "PresentedModulePowerHomomorphism",
      "type": "object"
    },
    "struct": "PyPresentedModulePowerHomomorphism",
    "type_id": "noether/homalg/PresentedModulePowerHomomorphism@1",
    "version": 1,
    "wire_id": "noether/homalg/PresentedModulePowerHomomorphism@1"
  },
  "noether/numthy/FiniteFieldEmbedding@1": {
    "doc": "An explicitly presented embedding between compatible finite fields.",
    "file": "py/numthy.rs",
    "methods": [
      {
        "doc": "",
        "kind": "constructor",
        "name": "FiniteFieldEmbedding",
        "signature": "(source: &PyFiniteField, target: &PyFiniteField, generator_image: &PyFiniteFieldElement)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "source",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "target",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "generator_image",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "apply",
        "signature": "(value: &PyFiniteFieldElement)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__call__",
        "signature": "(value: &PyFiniteFieldElement)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__hash__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      }
    ],
    "py_class": "FiniteFieldEmbedding",
    "schema": {
      "$defs": {
        "FiniteFieldElementWire": {
          "properties": {
            "coefficients": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "field": {
              "$ref": "#/$defs/FiniteFieldWire"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "field",
            "coefficients"
          ],
          "type": "object"
        },
        "FiniteFieldWire": {
          "properties": {
            "characteristic": {
              "type": "string"
            },
            "modulus": {
              "items": {
                "format": "uint64",
                "minimum": 0,
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "characteristic"
          ],
          "type": "object"
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "generator_image": {
          "$ref": "#/$defs/FiniteFieldElementWire"
        },
        "source": {
          "$ref": "#/$defs/FiniteFieldWire"
        },
        "target": {
          "$ref": "#/$defs/FiniteFieldWire"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "source",
        "target",
        "generator_image"
      ],
      "title": "FiniteFieldEmbeddingWire",
      "type": "object"
    },
    "struct": "PyFiniteFieldEmbedding",
    "type_id": "noether/numthy/FiniteFieldEmbedding@1",
    "version": 1,
    "wire_id": "noether/numthy/FiniteFieldEmbedding@1"
  },
  "noether/root/IntegerFiniteFieldMap@1": {
    "doc": "The canonical unital map from the integers into one finite field.",
    "file": "py/coefficient_maps.rs",
    "methods": [
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "source",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "target",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "apply",
        "signature": "(value: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__call__",
        "signature": "(value: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__hash__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      }
    ],
    "py_class": "IntegerFiniteFieldMap",
    "schema": {
      "$defs": {
        "FiniteFieldWire": {
          "properties": {
            "characteristic": {
              "type": "string"
            },
            "modulus": {
              "items": {
                "format": "uint64",
                "minimum": 0,
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "characteristic"
          ],
          "type": "object"
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "target": {
          "$ref": "#/$defs/FiniteFieldWire"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "target"
      ],
      "title": "IntegerFiniteFieldMapWire",
      "type": "object"
    },
    "struct": "PyIntegerFiniteFieldMap",
    "type_id": "noether/root/IntegerFiniteFieldMap@1",
    "version": 1,
    "wire_id": "noether/root/IntegerFiniteFieldMap@1"
  },
  "noether/root/IntegerRationalEmbedding@1": {
    "doc": "The canonical embedding of the integers into the rationals.",
    "file": "py/coefficient_maps.rs",
    "methods": [
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "source",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "target",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "apply",
        "signature": "(value: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__call__",
        "signature": "(value: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__hash__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      }
    ],
    "py_class": "IntegerRationalEmbedding",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "title": "SingletonMapWire",
      "type": "object"
    },
    "struct": "PyIntegerRationalEmbedding",
    "type_id": "noether/root/IntegerRationalEmbedding@1",
    "version": 1,
    "wire_id": "noether/root/IntegerRationalEmbedding@1"
  },
  "noether/root/IntegerReduction@1": {
    "doc": "Canonical reduction from the integers into one residue ring.",
    "file": "py/coefficient_maps.rs",
    "methods": [
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "source",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "target",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "apply",
        "signature": "(value: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__call__",
        "signature": "(value: &Bound<'_, PyAny>)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__hash__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      }
    ],
    "py_class": "IntegerReduction",
    "schema": {
      "$defs": {
        "ResidueRingWire": {
          "properties": {
            "modulus": {
              "type": "string"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "modulus"
          ],
          "type": "object"
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "target": {
          "$ref": "#/$defs/ResidueRingWire"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "target"
      ],
      "title": "IntegerReductionWire",
      "type": "object"
    },
    "struct": "PyIntegerReduction",
    "type_id": "noether/root/IntegerReduction@1",
    "version": 1,
    "wire_id": "noether/root/IntegerReduction@1"
  },
  "noether/root/PrimeSubfieldEmbedding@1": {
    "doc": "The checked canonical embedding of a prime field into an extension field.",
    "file": "py/coefficient_maps.rs",
    "methods": [
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "source",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "target",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "apply",
        "signature": "(value: &PyFiniteFieldElement)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__call__",
        "signature": "(value: &PyFiniteFieldElement)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__hash__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      }
    ],
    "py_class": "PrimeSubfieldEmbedding",
    "schema": {
      "$defs": {
        "FiniteFieldWire": {
          "properties": {
            "characteristic": {
              "type": "string"
            },
            "modulus": {
              "items": {
                "format": "uint64",
                "minimum": 0,
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "characteristic"
          ],
          "type": "object"
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "source": {
          "$ref": "#/$defs/FiniteFieldWire"
        },
        "target": {
          "$ref": "#/$defs/FiniteFieldWire"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "source",
        "target"
      ],
      "title": "PrimeSubfieldEmbeddingWire",
      "type": "object"
    },
    "struct": "PyPrimeSubfieldEmbedding",
    "type_id": "noether/root/PrimeSubfieldEmbedding@1",
    "version": 1,
    "wire_id": "noether/root/PrimeSubfieldEmbedding@1"
  },
  "noether/topology/EilenbergMacLaneIntegralCohomology@1": {
    "doc": "Exact bounded additive integral cohomology of a symbolic K(A,n).",
    "file": "py/topology_facade.rs",
    "methods": [
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "space",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "max_degree",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "homology",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "groups",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "group",
        "signature": "(degree: usize)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      }
    ],
    "py_class": "EilenbergMacLaneIntegralCohomology",
    "schema": {
      "$defs": {
        "EilenbergMacLaneIntegralHomology": {
          "properties": {
            "groups": {
              "items": {
                "$ref": "#/$defs/FinitelyGeneratedAbelianGroup"
              },
              "type": "array"
            },
            "max_degree": {
              "format": "uint",
              "minimum": 0,
              "type": "integer"
            },
            "space": {
              "$ref": "#/$defs/EilenbergMacLaneSpace"
            },
            "strategy": {
              "type": "string"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "space",
            "max_degree",
            "groups",
            "strategy"
          ],
          "type": "object"
        },
        "EilenbergMacLaneSpace": {
          "properties": {
            "delooping_degree": {
              "format": "uint",
              "minimum": 0,
              "type": "integer"
            },
            "group": {
              "$ref": "#/$defs/FinitelyGeneratedAbelianGroup"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "group",
            "delooping_degree"
          ],
          "type": "object"
        },
        "FinitelyGeneratedAbelianGroup": {
          "properties": {
            "free_rank": {
              "format": "uint",
              "minimum": 0,
              "type": "integer"
            },
            "torsion_coefficients": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "free_rank",
            "torsion_coefficients"
          ],
          "type": "object"
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "groups": {
          "items": {
            "$ref": "#/$defs/FinitelyGeneratedAbelianGroup"
          },
          "type": "array"
        },
        "homology": {
          "$ref": "#/$defs/EilenbergMacLaneIntegralHomology"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "homology",
        "groups"
      ],
      "title": "EilenbergMacLaneIntegralCohomology",
      "type": "object"
    },
    "struct": "PyEilenbergMacLaneIntegralCohomology",
    "type_id": "noether/topology/EilenbergMacLaneIntegralCohomology@1",
    "version": 1,
    "wire_id": "noether/topology/EilenbergMacLaneIntegralCohomology@1"
  },
  "noether/topology/EilenbergMacLaneIntegralCohomologyPresentation@1": {
    "doc": "Complete integral cohomology-ring presentation of a symbolic K(A,n).",
    "file": "py/topology_facade.rs",
    "methods": [
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "space",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "coefficient_ring",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "graded_commutative",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "generators",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "relations",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "strategy",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "additive_group",
        "signature": "(degree: usize)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      }
    ],
    "py_class": "EilenbergMacLaneIntegralCohomologyPresentation",
    "schema": {
      "$defs": {
        "EilenbergMacLaneIntegralCohomologyGeneratorWire": {
          "properties": {
            "degree": {
              "format": "uint32",
              "minimum": 0,
              "type": "integer"
            },
            "display_name": {
              "type": "string"
            },
            "id": {
              "type": "string"
            },
            "origin": {
              "$ref": "#/$defs/EilenbergMacLaneIntegralGeneratorOriginWire"
            }
          },
          "required": [
            "id",
            "degree",
            "display_name",
            "origin"
          ],
          "type": "object"
        },
        "EilenbergMacLaneIntegralCohomologyRelationTermWire": {
          "properties": {
            "coefficient": {
              "type": "string"
            },
            "exponents": {
              "items": {
                "format": "uint32",
                "minimum": 0,
                "type": "integer"
              },
              "type": "array"
            }
          },
          "required": [
            "coefficient",
            "exponents"
          ],
          "type": "object"
        },
        "EilenbergMacLaneIntegralCohomologyRelationWire": {
          "properties": {
            "terms": {
              "items": {
                "$ref": "#/$defs/EilenbergMacLaneIntegralCohomologyRelationTermWire"
              },
              "type": "array"
            }
          },
          "required": [
            "terms"
          ],
          "type": "object"
        },
        "EilenbergMacLaneIntegralGeneratorOriginWire": {
          "oneOf": [
            {
              "properties": {
                "component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "kind": {
                  "const": "free_fundamental_class",
                  "type": "string"
                }
              },
              "required": [
                "kind",
                "component"
              ],
              "type": "object"
            },
            {
              "properties": {
                "component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "kind": {
                  "const": "integral_bockstein",
                  "type": "string"
                },
                "modulus": {
                  "type": "string"
                }
              },
              "required": [
                "kind",
                "component",
                "modulus"
              ],
              "type": "object"
            },
            {
              "properties": {
                "kind": {
                  "const": "cyclic_tor_class",
                  "type": "string"
                },
                "left_component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "order": {
                  "type": "string"
                },
                "right_component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "kind",
                "left_component",
                "right_component",
                "order"
              ],
              "type": "object"
            },
            {
              "properties": {
                "component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "kind": {
                  "const": "second_delooping_fundamental_class",
                  "type": "string"
                }
              },
              "required": [
                "kind",
                "component"
              ],
              "type": "object"
            }
          ]
        },
        "EilenbergMacLaneSpace": {
          "properties": {
            "delooping_degree": {
              "format": "uint",
              "minimum": 0,
              "type": "integer"
            },
            "group": {
              "$ref": "#/$defs/FinitelyGeneratedAbelianGroup"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "group",
            "delooping_degree"
          ],
          "type": "object"
        },
        "FinitelyGeneratedAbelianGroup": {
          "properties": {
            "free_rank": {
              "format": "uint",
              "minimum": 0,
              "type": "integer"
            },
            "torsion_coefficients": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "free_rank",
            "torsion_coefficients"
          ],
          "type": "object"
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "coefficient_ring": {
          "type": "string"
        },
        "generators": {
          "items": {
            "$ref": "#/$defs/EilenbergMacLaneIntegralCohomologyGeneratorWire"
          },
          "type": "array"
        },
        "graded_commutative": {
          "type": "boolean"
        },
        "relations": {
          "items": {
            "$ref": "#/$defs/EilenbergMacLaneIntegralCohomologyRelationWire"
          },
          "type": "array"
        },
        "space": {
          "$ref": "#/$defs/EilenbergMacLaneSpace"
        },
        "strategy": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "space",
        "coefficient_ring",
        "graded_commutative",
        "generators",
        "relations",
        "strategy"
      ],
      "title": "EilenbergMacLaneIntegralCohomologyPresentation",
      "type": "object"
    },
    "struct": "PyEilenbergMacLaneIntegralCohomologyPresentation",
    "type_id": "noether/topology/EilenbergMacLaneIntegralCohomologyPresentation@1",
    "version": 1,
    "wire_id": "noether/topology/EilenbergMacLaneIntegralCohomologyPresentation@1"
  },
  "noether/topology/EilenbergMacLaneIntegralHomology@1": {
    "doc": "Exact bounded integral homology of a symbolic K(A,n).",
    "file": "py/topology_facade.rs",
    "methods": [
      {
        "doc": "Versioned language-neutral semantic identity.",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "space",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "max_degree",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "groups",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "group",
        "signature": "(degree: usize)"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "strategy",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      }
    ],
    "py_class": "EilenbergMacLaneIntegralHomology",
    "schema": {
      "$defs": {
        "EilenbergMacLaneSpace": {
          "properties": {
            "delooping_degree": {
              "format": "uint",
              "minimum": 0,
              "type": "integer"
            },
            "group": {
              "$ref": "#/$defs/FinitelyGeneratedAbelianGroup"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "group",
            "delooping_degree"
          ],
          "type": "object"
        },
        "FinitelyGeneratedAbelianGroup": {
          "properties": {
            "free_rank": {
              "format": "uint",
              "minimum": 0,
              "type": "integer"
            },
            "torsion_coefficients": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "free_rank",
            "torsion_coefficients"
          ],
          "type": "object"
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "groups": {
          "items": {
            "$ref": "#/$defs/FinitelyGeneratedAbelianGroup"
          },
          "type": "array"
        },
        "max_degree": {
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "space": {
          "$ref": "#/$defs/EilenbergMacLaneSpace"
        },
        "strategy": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "space",
        "max_degree",
        "groups",
        "strategy"
      ],
      "title": "EilenbergMacLaneIntegralHomology",
      "type": "object"
    },
    "struct": "PyEilenbergMacLaneIntegralHomology",
    "type_id": "noether/topology/EilenbergMacLaneIntegralHomology@1",
    "version": 1,
    "wire_id": "noether/topology/EilenbergMacLaneIntegralHomology@1"
  },
  "noether/topology/EilenbergMacLaneModularCohomology@1": {
    "doc": "A complete prime-field cohomology presentation of a symbolic K(A,n).",
    "file": "py/topology_facade.rs",
    "methods": [
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "space",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "field",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "presentation",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "generators",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "operations",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "strategy",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      }
    ],
    "py_class": "EilenbergMacLaneModularCohomology",
    "schema": {
      "$defs": {
        "AdmissibleCohomologyOperationWire": {
          "oneOf": [
            {
              "properties": {
                "kind": {
                  "const": "mod_two",
                  "type": "string"
                },
                "sequence": {
                  "items": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "type": "array"
                }
              },
              "required": [
                "kind",
                "sequence"
              ],
              "type": "object"
            },
            {
              "properties": {
                "bocksteins": {
                  "items": {
                    "type": "boolean"
                  },
                  "type": "array"
                },
                "kind": {
                  "const": "odd_primary",
                  "type": "string"
                },
                "prime": {
                  "format": "uint64",
                  "minimum": 0,
                  "type": "integer"
                },
                "reduced_powers": {
                  "items": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "type": "array"
                }
              },
              "required": [
                "kind",
                "prime",
                "bocksteins",
                "reduced_powers"
              ],
              "type": "object"
            }
          ]
        },
        "EilenbergMacLaneCohomologyGeneratorWire": {
          "properties": {
            "degree": {
              "format": "uint32",
              "minimum": 0,
              "type": "integer"
            },
            "display_name": {
              "type": "string"
            },
            "id": {
              "type": "string"
            },
            "origin": {
              "$ref": "#/$defs/EilenbergMacLaneGeneratorOriginWire"
            }
          },
          "required": [
            "id",
            "degree",
            "display_name",
            "origin"
          ],
          "type": "object"
        },
        "EilenbergMacLaneCohomologyOperationWire": {
          "properties": {
            "operation": {
              "$ref": "#/$defs/AdmissibleCohomologyOperationWire"
            },
            "source_generator": {
              "format": "uint",
              "minimum": 0,
              "type": "integer"
            },
            "target": true
          },
          "required": [
            "operation",
            "source_generator",
            "target"
          ],
          "type": "object"
        },
        "EilenbergMacLaneGeneratorOriginWire": {
          "oneOf": [
            {
              "properties": {
                "component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "kind": {
                  "const": "fundamental_class",
                  "type": "string"
                }
              },
              "required": [
                "kind",
                "component"
              ],
              "type": "object"
            },
            {
              "properties": {
                "kind": {
                  "const": "bockstein",
                  "type": "string"
                },
                "source_generator": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "kind",
                "source_generator"
              ],
              "type": "object"
            },
            {
              "properties": {
                "component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "kind": {
                  "const": "periodic_cyclic_class",
                  "type": "string"
                },
                "primary_exponent": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "kind",
                "component",
                "primary_exponent"
              ],
              "type": "object"
            },
            {
              "properties": {
                "component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "fundamental_class_lifts_integrally": {
                  "type": "boolean"
                },
                "kind": {
                  "const": "admissible_steenrod_square",
                  "type": "string"
                },
                "operation": {
                  "$ref": "#/$defs/AdmissibleCohomologyOperationWire"
                }
              },
              "required": [
                "kind",
                "component",
                "operation",
                "fundamental_class_lifts_integrally"
              ],
              "type": "object"
            },
            {
              "properties": {
                "component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "fundamental_class_lifts_integrally": {
                  "type": "boolean"
                },
                "kind": {
                  "const": "admissible_odd_primary_operation",
                  "type": "string"
                },
                "operation": {
                  "$ref": "#/$defs/AdmissibleCohomologyOperationWire"
                }
              },
              "required": [
                "kind",
                "component",
                "operation",
                "fundamental_class_lifts_integrally"
              ],
              "type": "object"
            },
            {
              "properties": {
                "component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "kind": {
                  "const": "higher_bockstein",
                  "type": "string"
                },
                "primary_exponent": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "kind",
                "component",
                "primary_exponent"
              ],
              "type": "object"
            },
            {
              "properties": {
                "component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "kind": {
                  "const": "admissible_steenrod_square_on_higher_primary_class",
                  "type": "string"
                },
                "operation": {
                  "$ref": "#/$defs/AdmissibleCohomologyOperationWire"
                },
                "primary_exponent": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "source_is_higher_bockstein": {
                  "type": "boolean"
                }
              },
              "required": [
                "kind",
                "component",
                "primary_exponent",
                "source_is_higher_bockstein",
                "operation"
              ],
              "type": "object"
            },
            {
              "properties": {
                "component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "kind": {
                  "const": "admissible_odd_primary_operation_on_higher_primary_class",
                  "type": "string"
                },
                "operation": {
                  "$ref": "#/$defs/AdmissibleCohomologyOperationWire"
                },
                "primary_exponent": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "source_is_higher_bockstein": {
                  "type": "boolean"
                }
              },
              "required": [
                "kind",
                "component",
                "primary_exponent",
                "source_is_higher_bockstein",
                "operation"
              ],
              "type": "object"
            }
          ]
        },
        "EilenbergMacLaneSpace": {
          "properties": {
            "delooping_degree": {
              "format": "uint",
              "minimum": 0,
              "type": "integer"
            },
            "group": {
              "$ref": "#/$defs/FinitelyGeneratedAbelianGroup"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "group",
            "delooping_degree"
          ],
          "type": "object"
        },
        "FinitelyGeneratedAbelianGroup": {
          "properties": {
            "free_rank": {
              "format": "uint",
              "minimum": 0,
              "type": "integer"
            },
            "torsion_coefficients": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "free_rank",
            "torsion_coefficients"
          ],
          "type": "object"
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "field": true,
        "generators": {
          "items": {
            "$ref": "#/$defs/EilenbergMacLaneCohomologyGeneratorWire"
          },
          "type": "array"
        },
        "operations": {
          "items": {
            "$ref": "#/$defs/EilenbergMacLaneCohomologyOperationWire"
          },
          "type": "array"
        },
        "presentation": true,
        "space": {
          "$ref": "#/$defs/EilenbergMacLaneSpace"
        },
        "strategy": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "space",
        "field",
        "presentation",
        "generators",
        "operations",
        "strategy"
      ],
      "title": "EilenbergMacLaneModularCohomology",
      "type": "object"
    },
    "struct": "PyEilenbergMacLaneModularCohomology",
    "type_id": "noether/topology/EilenbergMacLaneModularCohomology@1",
    "version": 1,
    "wire_id": "noether/topology/EilenbergMacLaneModularCohomology@1"
  },
  "noether/topology/EilenbergMacLaneModularCohomologyTruncation@1": {
    "doc": "A prime-field cohomology presentation exact through one degree.",
    "file": "py/topology_facade.rs",
    "methods": [
      {
        "doc": "",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "space",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "field",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "exact_through_degree",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "presentation",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "generators",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "getter",
        "name": "strategy",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      }
    ],
    "py_class": "EilenbergMacLaneModularCohomologyTruncation",
    "schema": {
      "$defs": {
        "AdmissibleCohomologyOperationWire": {
          "oneOf": [
            {
              "properties": {
                "kind": {
                  "const": "mod_two",
                  "type": "string"
                },
                "sequence": {
                  "items": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "type": "array"
                }
              },
              "required": [
                "kind",
                "sequence"
              ],
              "type": "object"
            },
            {
              "properties": {
                "bocksteins": {
                  "items": {
                    "type": "boolean"
                  },
                  "type": "array"
                },
                "kind": {
                  "const": "odd_primary",
                  "type": "string"
                },
                "prime": {
                  "format": "uint64",
                  "minimum": 0,
                  "type": "integer"
                },
                "reduced_powers": {
                  "items": {
                    "format": "uint32",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "type": "array"
                }
              },
              "required": [
                "kind",
                "prime",
                "bocksteins",
                "reduced_powers"
              ],
              "type": "object"
            }
          ]
        },
        "EilenbergMacLaneCohomologyGeneratorWire": {
          "properties": {
            "degree": {
              "format": "uint32",
              "minimum": 0,
              "type": "integer"
            },
            "display_name": {
              "type": "string"
            },
            "id": {
              "type": "string"
            },
            "origin": {
              "$ref": "#/$defs/EilenbergMacLaneGeneratorOriginWire"
            }
          },
          "required": [
            "id",
            "degree",
            "display_name",
            "origin"
          ],
          "type": "object"
        },
        "EilenbergMacLaneGeneratorOriginWire": {
          "oneOf": [
            {
              "properties": {
                "component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "kind": {
                  "const": "fundamental_class",
                  "type": "string"
                }
              },
              "required": [
                "kind",
                "component"
              ],
              "type": "object"
            },
            {
              "properties": {
                "kind": {
                  "const": "bockstein",
                  "type": "string"
                },
                "source_generator": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "kind",
                "source_generator"
              ],
              "type": "object"
            },
            {
              "properties": {
                "component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "kind": {
                  "const": "periodic_cyclic_class",
                  "type": "string"
                },
                "primary_exponent": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "kind",
                "component",
                "primary_exponent"
              ],
              "type": "object"
            },
            {
              "properties": {
                "component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "fundamental_class_lifts_integrally": {
                  "type": "boolean"
                },
                "kind": {
                  "const": "admissible_steenrod_square",
                  "type": "string"
                },
                "operation": {
                  "$ref": "#/$defs/AdmissibleCohomologyOperationWire"
                }
              },
              "required": [
                "kind",
                "component",
                "operation",
                "fundamental_class_lifts_integrally"
              ],
              "type": "object"
            },
            {
              "properties": {
                "component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "fundamental_class_lifts_integrally": {
                  "type": "boolean"
                },
                "kind": {
                  "const": "admissible_odd_primary_operation",
                  "type": "string"
                },
                "operation": {
                  "$ref": "#/$defs/AdmissibleCohomologyOperationWire"
                }
              },
              "required": [
                "kind",
                "component",
                "operation",
                "fundamental_class_lifts_integrally"
              ],
              "type": "object"
            },
            {
              "properties": {
                "component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "kind": {
                  "const": "higher_bockstein",
                  "type": "string"
                },
                "primary_exponent": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "kind",
                "component",
                "primary_exponent"
              ],
              "type": "object"
            },
            {
              "properties": {
                "component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "kind": {
                  "const": "admissible_steenrod_square_on_higher_primary_class",
                  "type": "string"
                },
                "operation": {
                  "$ref": "#/$defs/AdmissibleCohomologyOperationWire"
                },
                "primary_exponent": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "source_is_higher_bockstein": {
                  "type": "boolean"
                }
              },
              "required": [
                "kind",
                "component",
                "primary_exponent",
                "source_is_higher_bockstein",
                "operation"
              ],
              "type": "object"
            },
            {
              "properties": {
                "component": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "kind": {
                  "const": "admissible_odd_primary_operation_on_higher_primary_class",
                  "type": "string"
                },
                "operation": {
                  "$ref": "#/$defs/AdmissibleCohomologyOperationWire"
                },
                "primary_exponent": {
                  "format": "uint",
                  "minimum": 0,
                  "type": "integer"
                },
                "source_is_higher_bockstein": {
                  "type": "boolean"
                }
              },
              "required": [
                "kind",
                "component",
                "primary_exponent",
                "source_is_higher_bockstein",
                "operation"
              ],
              "type": "object"
            }
          ]
        },
        "EilenbergMacLaneSpace": {
          "properties": {
            "delooping_degree": {
              "format": "uint",
              "minimum": 0,
              "type": "integer"
            },
            "group": {
              "$ref": "#/$defs/FinitelyGeneratedAbelianGroup"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "group",
            "delooping_degree"
          ],
          "type": "object"
        },
        "FinitelyGeneratedAbelianGroup": {
          "properties": {
            "free_rank": {
              "format": "uint",
              "minimum": 0,
              "type": "integer"
            },
            "torsion_coefficients": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "free_rank",
            "torsion_coefficients"
          ],
          "type": "object"
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "exact_through_degree": {
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "field": true,
        "generators": {
          "items": {
            "$ref": "#/$defs/EilenbergMacLaneCohomologyGeneratorWire"
          },
          "type": "array"
        },
        "presentation": true,
        "space": {
          "$ref": "#/$defs/EilenbergMacLaneSpace"
        },
        "strategy": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "space",
        "field",
        "exact_through_degree",
        "presentation",
        "generators",
        "strategy"
      ],
      "title": "EilenbergMacLaneModularCohomologyTruncation",
      "type": "object"
    },
    "struct": "PyEilenbergMacLaneModularCohomologyTruncation",
    "type_id": "noether/topology/EilenbergMacLaneModularCohomologyTruncation@1",
    "version": 1,
    "wire_id": "noether/topology/EilenbergMacLaneModularCohomologyTruncation@1"
  },
  "noether/topology/EilenbergMacLaneSpace@1": {
    "doc": "A symbolic Eilenberg--Mac Lane space K(A,n).",
    "file": "py/topology_facade.rs",
    "methods": [
      {
        "doc": "",
        "kind": "constructor",
        "name": "EilenbergMacLaneSpace",
        "signature": "(group: &PyFinitelyGeneratedAbelianGroup, delooping_degree: usize)"
      },
      {
        "doc": "Versioned language-neutral semantic identity.",
        "kind": "method",
        "name": "type_id",
        "signature": "()"
      },
      {
        "doc": "The sole nonzero homotopy group.",
        "kind": "getter",
        "name": "group",
        "signature": "()"
      },
      {
        "doc": "Degree containing the sole nonzero homotopy group.",
        "kind": "getter",
        "name": "delooping_degree",
        "signature": "()"
      },
      {
        "doc": "Exact integral homology through an inclusive degree bound.",
        "kind": "method",
        "name": "integral_homology",
        "signature": "(max_degree: usize)"
      },
      {
        "doc": "Exact additive integral cohomology through an inclusive degree bound.",
        "kind": "method",
        "name": "integral_cohomology",
        "signature": "(max_degree: usize)"
      },
      {
        "doc": "Complete closed-form integral cohomology-ring presentation.",
        "kind": "method",
        "name": "integral_cohomology_presentation",
        "signature": "()"
      },
      {
        "doc": "Complete closed-form cohomology algebra over a prime field.",
        "kind": "method",
        "name": "modular_cohomology",
        "signature": "(field: &PyFiniteField)"
      },
      {
        "doc": "Cohomology algebra exact through an inclusive degree bound.",
        "kind": "method",
        "name": "modular_cohomology_through_degree",
        "signature": "(field: &PyFiniteField, max_degree: usize)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "verify",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "to_json",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "classmethod",
        "name": "from_json",
        "signature": "(value: &str)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__repr__",
        "signature": "()"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "__eq__",
        "signature": "(other: &Self)"
      },
      {
        "doc": "",
        "kind": "method",
        "name": "_tertius_summary_",
        "signature": "()"
      }
    ],
    "py_class": "EilenbergMacLaneSpace",
    "schema": {
      "$defs": {
        "FinitelyGeneratedAbelianGroup": {
          "properties": {
            "free_rank": {
              "format": "uint",
              "minimum": 0,
              "type": "integer"
            },
            "torsion_coefficients": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "free_rank",
            "torsion_coefficients"
          ],
          "type": "object"
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "delooping_degree": {
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "group": {
          "$ref": "#/$defs/FinitelyGeneratedAbelianGroup"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "group",
        "delooping_degree"
      ],
      "title": "EilenbergMacLaneSpace",
      "type": "object"
    },
    "struct": "PyEilenbergMacLaneSpace",
    "type_id": "noether/topology/EilenbergMacLaneSpace@1",
    "version": 1,
    "wire_id": "noether/topology/EilenbergMacLaneSpace@1"
  }
}
