mimiqcircuits.backends.capabilities

Capability vocabulary, numeric limits, topology, and admission types.

A backend’s Backend.capabilities() returns a set of Capability tokens drawn from CAPABILITY_VOCABULARY. A backend’s Backend.limits() returns a Limits instance, and Backend.topology() returns one of the Topology subclasses (AllToAll, CouplingMap, LinearChain).

Backend.can_handle() returns an AdmissionResult (Admissible, Marginal, or Inadmissible).

Module Attributes

CAPABILITY_VOCABULARY

Canonical capability tokens a backend may advertise.

CAP_PROBES

Registry of probe-circuit factories keyed by capability.

Functions

is_admissible(result)

True for Admissible and Marginal.

register_cap_probe(capability, factory)

Register a probe-circuit constructor for capability.

Classes

Admissible()

The backend can execute the circuit.

AdmissionResult()

Base class for can_handle(backend, circuit) results.

AllToAll()

All-to-all connectivity (no constraint).

CouplingMap(edges)

Coupling map: each edge (i, j) means qubits i and j can interact directly.

Inadmissible(reason)

The backend cannot execute the circuit.

Limits([max_qubits, max_bond_dim, ...])

Numeric limits a simulator advertises.

LinearChain(n)

Linear chain of n qubits with nearest-neighbor coupling.

Marginal(warning)

The backend can execute the circuit but it is near a limit (memory, bond dimension, runtime).

Topology()

Base class for device / connectivity topologies.

Exceptions

UnsupportedCapabilityError(backend_name, ...)

Raised when a backend is asked to run a feature it does not advertise in Backend.capabilities().

mimiqcircuits.backends.capabilities.CAPABILITY_VOCABULARY: frozenset[str] = frozenset({'amplitude', 'batch', 'bond_dim', 'calibrated_noise', 'classical_bits', 'expectation_1q', 'expectation_2q', 'expectation_paulistring', 'expectation_state', 'feed_forward', 'final_measure_only', 'loss', 'midcircuit_measure', 'midcircuit_reset', 'noise', 'parametric', 'parametric_batch', 'pass_order_honored', 'reset_after_measure', 'sampling', 'schmidt_rank', 'shared_prefix_batch', 'streaming', 'while_statement', 'zvars'})

Canonical capability tokens a backend may advertise. Informational: backends may declare tokens outside this set; conformance tests warn but never fail on extras.

class mimiqcircuits.backends.capabilities.Limits(max_qubits=None, max_bond_dim=None, max_classical_bits=None, max_zvars=None, max_samples=None, max_circuit_depth=None)[source]

Bases: object

Numeric limits a simulator advertises.

None for any field means “unbounded” (or “not applicable” for fields like max_bond_dim on a state-vector simulator).

max_qubits: int | None = None
max_bond_dim: int | None = None
max_classical_bits: int | None = None
max_zvars: int | None = None
max_samples: int | None = None
max_circuit_depth: int | None = None
__init__(max_qubits=None, max_bond_dim=None, max_classical_bits=None, max_zvars=None, max_samples=None, max_circuit_depth=None)
class mimiqcircuits.backends.capabilities.Topology[source]

Bases: object

Base class for device / connectivity topologies.

class mimiqcircuits.backends.capabilities.AllToAll[source]

Bases: Topology

All-to-all connectivity (no constraint). Default for simulators.

__init__()
class mimiqcircuits.backends.capabilities.CouplingMap(edges)[source]

Bases: Topology

Coupling map: each edge (i, j) means qubits i and j can interact directly. 1-based qubit indices to match the rest of MIMIQ.

edges: tuple[tuple[int, int], ...]
__init__(edges)
class mimiqcircuits.backends.capabilities.LinearChain(n)[source]

Bases: Topology

Linear chain of n qubits with nearest-neighbor coupling.

n: int
__init__(n)
class mimiqcircuits.backends.capabilities.AdmissionResult[source]

Bases: object

Base class for can_handle(backend, circuit) results.

class mimiqcircuits.backends.capabilities.Admissible[source]

Bases: AdmissionResult

The backend can execute the circuit.

__init__()
class mimiqcircuits.backends.capabilities.Marginal(warning)[source]

Bases: AdmissionResult

The backend can execute the circuit but it is near a limit (memory, bond dimension, runtime). warning is a user-facing message; downstream code still treats this as admissible.

warning: str
__init__(warning)
class mimiqcircuits.backends.capabilities.Inadmissible(reason)[source]

Bases: AdmissionResult

The backend cannot execute the circuit.

reason: str
__init__(reason)
mimiqcircuits.backends.capabilities.is_admissible(result)[source]

True for Admissible and Marginal.

exception mimiqcircuits.backends.capabilities.UnsupportedCapabilityError(backend_name, capability, detail='')[source]

Bases: Exception

Raised when a backend is asked to run a feature it does not advertise in Backend.capabilities().

Backends use this to fail loudly rather than silently degrade. Tests rely on it to verify a backend’s capability set is honest (no “positive lies”).

__init__(backend_name, capability, detail='')[source]
mimiqcircuits.backends.capabilities.CAP_PROBES: dict[str, Callable] = {'feed_forward': <function _probe_feed_forward>, 'loss': <function _probe_loss>, 'midcircuit_measure': <function _probe_midcircuit_measure>, 'midcircuit_reset': <function _probe_midcircuit_reset>, 'noise': <function _probe_noise>, 'parametric': <function _probe_parametric>, 'reset_after_measure': <function _probe_reset_after_measure>}

Registry of probe-circuit factories keyed by capability. Populated lazily by callers (typically the conformance test module) so that importing this module does not drag in the full circuit-construction surface.

mimiqcircuits.backends.capabilities.register_cap_probe(capability, factory)[source]

Register a probe-circuit constructor for capability.

factory() must return a Circuit whose execution requires the named capability. Conformance tests use this registry to assert that backends reject what they do not advertise — silently accepting an undeclared feature would let “positive lies” slip through.