Science Workflow

Computación cuántica

Modelado de estados cuánticos a través de tipos lineales

Back to Science Hub

Computación cuántica con Sounio

Sounio obliga el teorema de no clonar de la mecánica cuántica en el tiempo de compilación a través de los tipos lineales: un Qubit es un recurso lineal que debe ser consumido exactamente una vez. Intentar copiarlo produce un error de compilación.

Tipos lineales para estados cuánticos

// Un Qubit no puede ser clonado.
// las estaciones estándar de cuántico (H, X, Y, Z, CNOT) consumen y devuelven Qubits.

fn apply_hadamard(q: Qubit) -> Qubit {
    // aplicar la puerta H ...
}

struct QubitPair { fst: Qubit, snd: Qubit }

fn apply_cnot_pair(control: Qubit, target: Qubit) -> QubitPair {
    // aplicar la puerta CNOT ...
}

fn bell_state() -> QubitPair {
    let q1 = allocate_qubit()
    let q2 = allocate_qubit()

    let h1 = apply_hadamard(q1)
    let pair = apply_cnot_pair(h1, q2)

    pair
}