{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "e5e44fb3",
   "metadata": {},
   "source": [
    "## Ejercicio 7.2: Verificación experimental de la desigualdad CHSH"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "71cd75b7",
   "metadata": {},
   "source": [
    "$\\newcommand{\\ket}[1]{|{#1}\\rangle}\\newcommand{\\bra}[1]{\\langle{#1}|}$Utilizando un entorno de programación matemática, simule el experimento CHSH:\n",
    "\n",
    "<img src=\"figs/bell-experiment.svg\" alt=\"bell-experiment\" style=\"width: 50%;\"/>\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "21c6d40e",
   "metadata": {},
   "source": [
    "1. *Estado entrelazado.*\n",
    "Construimos el estado conjunto $\\{\\rho,\\sigma\\}$ generado por la fuente de fotones, definido por la matriz de densidad de probabilidad\n",
    "\\begin{align*}\n",
    "  \\delta_{\\phi} = (\\boldsymbol{I}_2 \\otimes \\boldsymbol{U}_{\\phi}) \\,\\delta_0\\, (\\boldsymbol{I}_2 \\otimes \\boldsymbol{U}_{\\phi})^H,\n",
    "\\end{align*}\n",
    "donde $\\phi\\in[0,\\pi]$ es un parámetro ajustable, $\\boldsymbol{I}_2$ denota la matriz identidad, $\\boldsymbol{U}_{\\phi}$ está dada por\n",
    "\n",
    "\\begin{align*}\n",
    "     \\boldsymbol{U}_{\\phi} = \\begin{bmatrix} \\cos(\\phi)  & \\sin(\\phi)\\\\\n",
    "                                      -\\sin(\\phi) & \\cos(\\phi)\n",
    "                             \\end{bmatrix},\n",
    "\\end{align*}\n",
    "\n",
    "$\\quad\\;\\;$y $\\delta_0$ se corresponde con el estado EPR de máximo entrelazamiento,\n",
    "\n",
    "\\begin{align*}\n",
    "  \\delta_0 &= \\frac{1}{2} \\bigl(\\ket{00} + \\ket{11} \\bigr)\\bigl(\\bra{00} + \\bra{11}\\bigr)\n",
    "            = \\frac{1}{2}\\begin{bmatrix}\n",
    "                             1 & 0 & 0 & 1 \\\\\n",
    "                             0 & 0 & 0 & 0 \\\\\n",
    "                             0 & 0 & 0 & 0 \\\\\n",
    "                             1 & 0 & 0 & 1 \\end{bmatrix}.\n",
    "\\end{align*}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "e51496e6",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "def generate_delta_phi(phi):\n",
    "    \"\"\"\n",
    "    Generates the density matrix delta_phi as a function of phi.\n",
    "\n",
    "    Parameters:\n",
    "        phi (float): Angle in radians in the range [0, pi].\n",
    "\n",
    "    Returns:\n",
    "        numpy.ndarray: 4x4 probability density matrix delta_phi.\n",
    "    \"\"\"\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7625c52a",
   "metadata": {},
   "source": [
    "2. *Preparación de las matrices de medida.* Consideremos los POVM $\\bigl\\{\\Pi_0, \\Pi_1\\bigr\\}$ y $\\bigl\\{\\Pi_+, \\Pi_-\\bigr\\}$, con\n",
    "\n",
    "\\begin{align*}\n",
    "  \\Pi_0 = \\left[\\begin{matrix}\n",
    "                             1 & 0\\\\\n",
    "                             0 & 0 \\end{matrix}\\right],\\qquad\n",
    "  \\Pi_1 = \\left[\\begin{matrix}\n",
    "                             0 & 0\\\\\n",
    "                             0 & 1 \\end{matrix}\\right],\\qquad\n",
    "  \\Pi_{+} = \\tfrac{1}{2}\\left[\\begin{matrix}\n",
    "                             +1 & +1\\\\\n",
    "                             +1 & +1 \\end{matrix}\\right],\\qquad\n",
    "  \\Pi_{-} = \\tfrac{1}{2}\\left[\\begin{matrix}\n",
    "                             +1 & -1\\\\\n",
    "                             -1 & +1 \\end{matrix}\\right].\n",
    "\\end{align*}\n",
    "\n",
    "Estas medidas se corresponden con las bases horizontal/vertical, y diagonal/diagonal cruzada, respectivamente.\n",
    "Por tanto, las medidas asociadas a las variables aleatorias $A$, $B$, $X$ e $Y$ del experimento estarían dadas por:\n",
    "\n",
    "\\begin{align*}     \n",
    " &\\text{POVM}_A = \\bigl\\{\\Pi_0 \\otimes \\boldsymbol{I}_2,\\;\n",
    "                         \\Pi_1 \\otimes \\boldsymbol{I}_2\\bigr\\}, \\quad\\;\\;\\text{(Alice mide horizontal/vertical)}\\\\\n",
    " &\\text{POVM}_B = \\bigl\\{\\boldsymbol{I}_2 \\otimes \\Pi_0,\\;\n",
    "                         \\boldsymbol{I}_2 \\otimes \\Pi_1\\bigr\\}, \\quad\\;\\;\\text{(Bob mide horizontal/vertical)}\\\\\n",
    " &\\text{POVM}_X = \\bigl\\{\\Pi_{+} \\otimes \\boldsymbol{I}_2,\\;\n",
    "                         \\Pi_{-} \\otimes \\boldsymbol{I}_2\\bigr\\},\\quad\\,\\text{(Alice mide diagonal/diagonal cruzada)}\\\\\n",
    " &\\text{POVM}_Y = \\bigl\\{\\boldsymbol{I}_2 \\otimes \\Pi_{+},\\;\n",
    "                          \\boldsymbol{I}_2 \\otimes \\Pi_{-}\\bigr\\}.\\quad\\;\\,\\text{(Bob mide diagonal/diagonal cruzada)}\n",
    "\\end{align*}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "746f0b09",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bda19e5d",
   "metadata": {},
   "source": [
    "3. *Medidas de las variables $(A,B)$, $(A,Y)$, $(X,B)$ y $(X,Y)$:* Determine las probabilidades de obtener\n",
    "todas las posibles combinaciones $(+1,+1)$, $(+1,-1)$, $(-1,+1)$, $(-1,-1)$, en cada una de estas medidas sobre el estado $\\delta_{\\phi}$.\n",
    "Tenga en cuenta que tras aplicar una medida Alice, el estado debe colapsar antes de que Bob aplique la medida en su parte del estado.\n",
    "\n",
    "$\\quad\\;\\;$Utilice estas probabilidades para calcular las esperanzas:\n",
    "\n",
    "  \\begin{align*}\n",
    "    \\text{E}\\bigl[ AB \\bigr] &= 1 \\cdot P_{AB}(1,1) - 1 \\cdot P_{AB}(1,-1) - 1 \\cdot P_{AB}(-1,1) + 1 \\cdot P_{AB}(-1,-1),\\\\\n",
    "    \\text{E}\\bigl[ AY \\bigr] &= 1 \\cdot P_{AY}(1,1) - 1 \\cdot P_{AY}(1,-1) - 1 \\cdot P_{AY}(-1,1) + 1 \\cdot P_{AY}(-1,-1),\\\\\n",
    "    \\text{E}\\bigl[ XB \\bigr] &= 1 \\cdot P_{XB}(1,1) - 1 \\cdot P_{XB}(1,-1) - 1 \\cdot P_{XB}(-1,1) + 1 \\cdot P_{XB}(-1,-1),\\\\\n",
    "    \\text{E}\\bigl[ XY \\bigr] &= 1 \\cdot P_{XY}(1,1) - 1 \\cdot P_{XY}(1,-1) - 1 \\cdot P_{XY}(-1,1) + 1 \\cdot P_{XY}(-1,-1).\n",
    "  \\end{align*}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "1915594a",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "11f14bbc",
   "metadata": {},
   "source": [
    "4. *Comprobación de la desigualdad de CHSH.* Considere la variable aleatoria $Z$ definida como $Z = A B + X B + X Y - A Y$, con valor medio\n",
    "   \\begin{align*}\n",
    "     \\text{E}[Z] = \\text{E}\\bigl[ AB \\bigr] + \\text{E}\\bigl[ XB\\bigr] + \\text{E}\\bigl[ XY \\bigr] - \\text{E}\\bigl[ AY \\bigr].\n",
    "   \\end{align*}\n",
    "   Para comprobar la desigualdad de CHSH, muestre en una gráfica la función $f(\\phi) = \\text{E}[Z]$ para una rejilla de valores $\\phi\\in[0,\\pi]$,\n",
    "   junto con los umbrales de la desigualdad $-2 \\leq f(\\phi) \\leq 2$.\n",
    "   \n",
    "   Determine el valor o valores de $\\phi$ dónde se inclumple esta desigualdad.\n",
    "   \n",
    "   ¿Cuál es el valor máximo de $f(\\phi)$?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "295b11fa",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n"
   ]
  }
 ],
 "metadata": {
  "celltoolbar": "Raw Cell Format",
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
