Sign in
← Atlas
Exact & formalBasic circuitsSuperposition state

Hadamard-basis states |+⟩ and |−⟩

The Hadamard-basis (X-basis) states |+⟩ and |−⟩: the eigenstates of the Pauli-X operator, produced from |0⟩/|1⟩ by a single Hadamard gate.

hadamard basisx-basismutually unbiased basesphase kickback

Atlas stars stay in the public catalog. Saving this entry to your workspace starts an unstarred private copy.

Every single-qubit protocol that needs a second, mutually unbiased measurement basis reaches for |+⟩/|−⟩ first: they are equal-weight superpositions in the computational (Z) basis, yet perfectly distinguishable in the X basis, making them the standard tool for basis-mismatch protocols like BB84 and for phase-kickback tricks in oracle-based algorithms.

Circuit & simulation
q[0] (|+⟩) Z-basis outcome50%
q[1] (|−⟩) Z-basis outcome50%
What this takes and returns
TakesNothingWhat joins here

Nothing goes in, and that is what this entry is: a pipeline starts here. There is no upstream to choose — what you pick is what comes after.

Nothing in the Atlas meets this end.

Returns2 qubitsWhat joins here

Returns a 2-qubit register a next stage can take. This is the end that joins.

12 entries meet this end. Named below.

Prepares a state. Nothing goes in, and what comes out is a register another stage can take. See all 12 →

Where the map uses this

This record is an instance of an object the map names, so these are the processes that consume or produce one. None of them is about this record in particular.

State you can prepare 5 of 33 processes

How it works

The Hadamard-basis states are

+=0+12,=012.|+\rangle = \frac{|0\rangle+|1\rangle}{\sqrt2}, \qquad |-\rangle = \frac{|0\rangle-|1\rangle}{\sqrt2}.

Eigenstates of XX. Direct matrix multiplication gives X+=+X|+\rangle = |+\rangle and X=X|-\rangle = -|-\rangle, so {+,}\{|+\rangle,|-\rangle\} is the eigenbasis of the Pauli-XX operator, exactly as {0,1}\{|0\rangle,|1\rangle\} is the eigenbasis of ZZ. Because HXH=ZHXH=Z and HZH=XHZH=X (HH conjugation swaps the two Pauli operators), the Hadamard gate is precisely the change-of-basis unitary between the ZZ and XX eigenbases: +=H0|+\rangle=H|0\rangle, =H1|-\rangle=H|1\rangle.

Mutual unbiasedness. 0+2=02=1+2=12=1/2|\langle 0|+\rangle|^2 = |\langle 0|-\rangle|^2 = |\langle1|+\rangle|^2=|\langle1|-\rangle|^2 = 1/2: every computational-basis state has equal overlap with every Hadamard-basis state. This is the defining property of mutually unbiased bases — measuring a ZZ-eigenstate in the XX basis (or vice versa) yields a uniformly random outcome, which is exactly the security mechanism behind the BB84 quantum key distribution protocol's second basis choice.

Phase kickback. Preparing an ancilla in |-\rangle before a controlled-UfU_f oracle is the standard trick that converts a classical bit-flip oracle xyxyf(x)|x\rangle|y\rangle \mapsto |x\rangle|y\oplus f(x)\rangle into a phase oracle x(1)f(x)x|x\rangle|-\rangle \mapsto (-1)^{f(x)}|x\rangle|-\rangle, because |-\rangle is an eigenstate of the flip with eigenvalue 1-1. This is the mechanism used by Deutsch–Jozsa, Bernstein–Vazirani, Simon's algorithm, and Grover's diffusion oracle.

Stabilizer view. +|+\rangle is stabilized by XX (the unique +1+1 eigenstate) and |-\rangle by X-X; both are single-qubit stabilizer states, sitting alongside 0,1,+i,i|0\rangle,|1\rangle,|+i\rangle,|-i\rangle as the six single-qubit states reachable by Clifford operations from 0|0\rangle — the vertices of the stabilizer octahedron on the Bloch sphere, in contrast to the off-axis magic states elsewhere in this catalog.

Implementation
Native
plus_minus_states.py
import numpy as np
from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector, Operator

def plus_state() -> QuantumCircuit:
    qc = QuantumCircuit(1)
    qc.h(0)
    return qc

def minus_state() -> QuantumCircuit:
    qc = QuantumCircuit(1)
    qc.x(0)
    qc.h(0)
    return qc

X = Operator.from_label("X").data
plus = Statevector.from_instruction(plus_state())
minus = Statevector.from_instruction(minus_state())

print("|+> =", plus.data)   # [0.7071, 0.7071]
print("|-> =", minus.data)  # [0.7071, -0.7071]
print("X|+> = +|+>:", np.allclose(X @ plus.data, plus.data))
print("X|-> = -|->:", np.allclose(X @ minus.data, -minus.data))

FINAL_CIRCUIT = plus_state()
Quantum vs classical

Classical baseline

Use a classical state-vector or matrix simulation at the same width, precision, and measurement objective.

Quantum claim

The quantum record demonstrates a state or operator behavior; it does not make classical simulation or communication costs disappear.

How to compare

Compare fidelity, samples, gate depth, noise, memory, and the cost of preparing and reading the state.

Declared gaps

Nobody has reviewed this record for gaps yet.

Literature & references
Quantum Computation and Quantum Information: 10th Anniversary Edition2010 · Michael A. Nielsen and Isaac L. Chuang

Standard textbook definition of the Hadamard/X-eigenbasis states and their role as the second measurement basis in mutually-unbiased-basis protocols such as BB84.

doi.org/10.1017/cbo9780511976667