qbraid.passes.qasm3.rebase

rebase(qasm, basis_gates, require_predicates=True)[source]

Rebases an OpenQASM 3 program according to a given basis gate set.

Parameters:
  • qasm (str) – The original OpenQASM 3 program as a string.

  • basis_gates (set[str]) – The target basis gates to decompose the program to.

  • require_predicates (bool) – If True, raises an error if the program fails to meet compilation predicates. If False, returns the original program on failure. Defaults to True.

Returns:

The decomposed OpenQASM 3 program.

Return type:

str

Raises:
  • ValueError – If no basis gates are provided or if the basis gate set identifier is invalid

  • TypeError – If the basis gate set is not a set of strings or a string identifier

  • QasmDecompositionError – If an error occurrs during the decomposition process

  • CompilationError – If the program cannot be rebased to the provided basis gate set