Download this file

420 lines (420 with data), 37.9 kB

{
  "cells": [
    {
      "cell_type": "code",
      "execution_count": 10,
      "metadata": {
        "id": "PzmKOAh2LZrF",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 129
        },
        "outputId": "2ce8827c-ad27-4cf6-e281-639b9673f4f6"
      },
      "outputs": [
        {
          "output_type": "error",
          "ename": "LoadError",
          "evalue": "UndefVarError: `pip` not defined",
          "traceback": [
            "UndefVarError: `pip` not defined",
            "",
            "Stacktrace:",
            " [1] top-level scope",
            "   @ In[10]:8"
          ]
        }
      ],
      "source": [
        "# The Julia bootstrap block\n",
        "# This should be run for the first time to install Julia kernel, and then refresh this page (e.g., Ctrl-R)\n",
        "# so that colab will redirect to the installed Julia kernel\n",
        "# and then doing your own work\n",
        "\n",
        "# 1. install latest Julia using jill.py\n",
        "#    tip: one can install specific Julia version using e.g., `jill install 1.7`\n",
        "!pip install jill && jill install --upstream Official --confirm\n",
        "# 2. install IJulia kernel\n",
        "! julia -e 'using Pkg; Pkg.add(\"IJulia\"); using IJulia; installkernel(\"Julia\")'\n",
        "# 3. hot-fix patch to strip the version suffix of the installed kernel so that this notebook kernelspec is version agnostic\n",
        "!jupyter kernelspec install $(jupyter kernelspec list | grep julia | tr -s ' ' | cut -d' ' -f3) --replace --name julia\n",
        "# Reload notebook after installations"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "using Pkg\n",
        "Pkg.add(\"IJulia\")"
      ],
      "metadata": {
        "id": "LtE4T3M3tmjj",
        "outputId": "533f2cee-9198-4c59-bdbb-003686302621",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        }
      },
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "\u001b[32m\u001b[1m   Resolving\u001b[22m\u001b[39m package versions...\n",
            "\u001b[32m\u001b[1m  No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.10/Project.toml`\n",
            "\u001b[32m\u001b[1m  No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.10/Manifest.toml`\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import Pkg; Pkg.add(\"ITensorNetworks\")"
      ],
      "metadata": {
        "id": "po87shM3qIgN",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "outputId": "9e964f7f-34fd-4700-d64e-550dfef29dd6"
      },
      "execution_count": 12,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "\u001b[32m\u001b[1m   Resolving\u001b[22m\u001b[39m package versions...\n",
            "\u001b[32m\u001b[1m  No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.10/Project.toml`\n",
            "\u001b[32m\u001b[1m  No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.10/Manifest.toml`\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 13,
      "metadata": {
        "id": "erJ7bkEtLrCF",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "outputId": "74f17448-5547-4b81-a789-a7f7db560a09"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "25"
            ]
          },
          "metadata": {},
          "execution_count": 13
        }
      ],
      "source": [
        "# julia cells\n",
        "function square(x)\n",
        "  return x*x\n",
        "end\n",
        "\n",
        "square(5)"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import Pkg; Pkg.add(\"ITensors\")\n",
        "import Pkg; Pkg.add(\"AbstractTrees\")\n",
        "import Pkg; Pkg.add(\"ITensorUnicodePlots\")\n",
        "import Pkg; Pkg.add(\"NamedGraphs\")"
      ],
      "metadata": {
        "id": "F2A6CRtAr5p4",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "outputId": "0d772de5-8d48-48bd-dfea-3399b70932cc"
      },
      "execution_count": 16,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "\u001b[32m\u001b[1m   Resolving\u001b[22m\u001b[39m package versions...\n",
            "\u001b[32m\u001b[1m  No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.10/Project.toml`\n",
            "\u001b[32m\u001b[1m  No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.10/Manifest.toml`\n",
            "\u001b[32m\u001b[1m   Resolving\u001b[22m\u001b[39m package versions...\n",
            "\u001b[32m\u001b[1m  No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.10/Project.toml`\n",
            "\u001b[32m\u001b[1m  No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.10/Manifest.toml`\n",
            "\u001b[32m\u001b[1m   Resolving\u001b[22m\u001b[39m package versions...\n",
            "\u001b[32m\u001b[1m  No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.10/Project.toml`\n",
            "\u001b[32m\u001b[1m  No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.10/Manifest.toml`\n",
            "\u001b[32m\u001b[1m   Resolving\u001b[22m\u001b[39m package versions...\n",
            "\u001b[32m\u001b[1m    Updating\u001b[22m\u001b[39m `~/.julia/environments/v1.10/Project.toml`\n",
            "\u001b[32m⌃\u001b[39m \u001b[90m[678767b0] \u001b[39m\u001b[92m+ NamedGraphs v0.1.18\u001b[39m\n",
            "\u001b[32m\u001b[1m  No Changes\u001b[22m\u001b[39m to `~/.julia/environments/v1.10/Manifest.toml`\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import ITensorNetworks\n",
        "using AbstractTrees\n",
        "using ITensors\n",
        "using ITensorNetworks\n",
        "using ITensorUnicodePlots\n",
        "using Random\n",
        "using NamedGraphs\n",
        "\n",
        "Random.seed!(1234)\n",
        "\n",
        "g = named_path_graph(13)\n",
        "\n",
        "s = siteinds(\"S=1/2\", g)\n",
        "\n",
        "ψ = ITensorNetwork(s; link_space=2)\n",
        "\n",
        "# randomize\n",
        "randn!.(vertex_data(ψ))\n",
        "\n",
        "@visualize ψ\n",
        "\n",
        "is = IndsNetwork(ψ)\n",
        "v = vertex_data(is)\n",
        "e = edge_data(is)\n",
        "\n",
        "ψ̃ = sim(dag(ψ); sites=[])\n",
        "\n",
        "@visualize ψ̃\n",
        "\n",
        "ψψ = (\"bra\" => ψ̃) ⊗ (\"ket\" => ψ)\n",
        "\n",
        "@visualize ψψ\n",
        "\n",
        "# quasi-optimal contraction sequence\n",
        "sequence = contraction_sequence(ψψ)\n",
        "\n",
        "print_tree(sequence)\n",
        "\n",
        "inner_res = contract(ψψ; sequence)[]\n",
        "\n",
        "@show inner_res\n",
        "\n",
        "sub = subgraph(ψψ, [(1, \"bra\"), (1, \"ket\"), (2, \"bra\"), (2, \"ket\")])\n",
        "\n",
        "@visualize sub"
      ],
      "metadata": {
        "id": "aCdMMTbZvoL5",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 2450
        },
        "outputId": "81862def-f7c7-4264-eccf-ba0f9df39667"
      },
      "execution_count": 41,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "    \u001b[38;5;8m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⢀\u001b[0m\u001b[38;5;4m⣀\u001b[0m\u001b[38;5;4m⣀\u001b[0m2\u001b[38;5;4m⣀\u001b[0m\u001b[38;5;4m⣀\u001b[0m\u001b[38;5;4m⣀\u001b[0mψ6\u001b[38;5;4m⣀\u001b[0m\u001b[38;5;4m⡀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀2\u001b[38;5;4m⡠\u001b[0m\u001b[38;5;4m⠔\u001b[0mψ7\u001b[38;5;4m⠉\u001b[0m\u001b[38;5;4m⠁\u001b[0m⠀⠀⠀⠀⠀⠀⠀2⠀\u001b[38;5;4m⠈\u001b[0m\u001b[38;5;4m⠉\u001b[0m2\u001b[38;5;4m⠒\u001b[0m\u001b[38;5;4m⠢\u001b[0m\u001b[38;5;4m⠤\u001b[0mψ5⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀ψ8\u001b[38;5;4m⠤\u001b[0m\u001b[38;5;4m⠒\u001b[0m\u001b[38;5;4m⠉\u001b[0m\u001b[38;5;4m⠁\u001b[0m⠀⠀⠀\u001b[38;5;4m⠸\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠃\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀2\u001b[38;5;4m⠑\u001b[0m\u001b[38;5;4m⠢\u001b[0m2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⢀\u001b[0m\u001b[38;5;4m⠎\u001b[0m2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠃\u001b[0m⠀⠀⠀\u001b[38;5;4m⠑\u001b[0m\u001b[38;5;4m⠢\u001b[0m\u001b[38;5;4m⣀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀\u001b[38;5;4m⢀\u001b[0m\u001b[38;5;4m⠔\u001b[0m2⠀\u001b[38;5;4m⠈\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ψ4⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀ψ9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠇\u001b[0m2\u001b[38;5;4m⡀\u001b[0m⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠘\u001b[0m\u001b[38;5;4m⢄\u001b[0m⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀\u001b[38;5;4m⡇\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ψ3⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀ψ10⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀2⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀2\u001b[38;5;4m⠘\u001b[0m2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⢸\u001b[0m⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠑\u001b[0m\u001b[38;5;4m⢄\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ψ2⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀ψ11\u001b[38;5;4m⠢\u001b[0m\u001b[38;5;4m⢄\u001b[0m2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⢠\u001b[0m2⠀\u001b[38;5;4m⠸\u001b[0m⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠸\u001b[0m⠀⠀⠀⠀\u001b[38;5;4m⠉\u001b[0m\u001b[38;5;4m⠒\u001b[0mψ12\u001b[38;5;4m⣀\u001b[0m\u001b[38;5;4m⣀\u001b[0m2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ψ1\u001b[38;5;4m⠁\u001b[0m⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀2⠀⠀⠀⠀\u001b[38;5;4m⠉\u001b[0m\u001b[38;5;4m⠉\u001b[0mψ13⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀2⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠈\u001b[0m⠀⠀⠀⠀⠀⠀⠀2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠁\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[0m "
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "    \u001b[38;5;8m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⢀\u001b[0m\u001b[38;5;4m⣀\u001b[0m\u001b[38;5;4m⣀\u001b[0m2\u001b[38;5;4m⣀\u001b[0m\u001b[38;5;4m⣀\u001b[0m\u001b[38;5;4m⣀\u001b[0mψ̃6\u001b[38;5;4m⡀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀2\u001b[38;5;4m⡠\u001b[0m\u001b[38;5;4m⠔\u001b[0mψ̃7\u001b[38;5;4m⠁\u001b[0m⠀⠀⠀⠀⠀⠀⠀2⠀\u001b[38;5;4m⠈\u001b[0m\u001b[38;5;4m⠉\u001b[0m2\u001b[38;5;4m⠒\u001b[0m\u001b[38;5;4m⠢\u001b[0m\u001b[38;5;4m⠤\u001b[0mψ̃5⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀ψ̃8\u001b[38;5;4m⠒\u001b[0m\u001b[38;5;4m⠉\u001b[0m\u001b[38;5;4m⠁\u001b[0m⠀⠀⠀\u001b[38;5;4m⠸\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠃\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀2\u001b[38;5;4m⠑\u001b[0m\u001b[38;5;4m⠢\u001b[0m2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⢀\u001b[0m\u001b[38;5;4m⠎\u001b[0m2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠃\u001b[0m⠀⠀⠀\u001b[38;5;4m⠑\u001b[0m\u001b[38;5;4m⠢\u001b[0m\u001b[38;5;4m⣀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀\u001b[38;5;4m⢀\u001b[0m\u001b[38;5;4m⠔\u001b[0m2⠀\u001b[38;5;4m⠈\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ψ̃4⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀ψ̃9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠇\u001b[0m2\u001b[38;5;4m⡀\u001b[0m⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠘\u001b[0m\u001b[38;5;4m⢄\u001b[0m⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀\u001b[38;5;4m⡇\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ψ̃3⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀ψ̃10⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀2⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀2\u001b[38;5;4m⠘\u001b[0m2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⢸\u001b[0m⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠑\u001b[0m\u001b[38;5;4m⢄\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ψ̃2⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀ψ̃11\u001b[38;5;4m⠢\u001b[0m\u001b[38;5;4m⢄\u001b[0m2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⢠\u001b[0m2⠀\u001b[38;5;4m⠸\u001b[0m⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠸\u001b[0m⠀⠀⠀⠀\u001b[38;5;4m⠉\u001b[0mψ̃12\u001b[38;5;4m⣀\u001b[0m\u001b[38;5;4m⣀\u001b[0m2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ψ̃1⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀2⠀⠀⠀⠀\u001b[38;5;4m⠉\u001b[0mψ̃13⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀2⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠈\u001b[0m⠀⠀⠀⠀⠀⠀⠀2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠁\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[0m "
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "    \u001b[38;5;8m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ψψ(13, \"ket\"\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ψψ(12, \"ket\")a\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ψψ(11, \"ket\")bra\"\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ψψ(10, \"ket\")\u001b[38;5;4m⠉\u001b[0m⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ψψ(9, \"ket\")1, \"bra\")⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ψψ(7ψψ(8, \"ket\")(10, \"bra\")⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ψψ(6, \"ket\")(8, \"bra\")⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀ψψ(5, \"ket\")(7, \"bra\")⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀ψψ(4, \"ket\")\"bra\")⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0mψψ(3, \"ket\")bra\")⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀ψψ(3, \"bra\")⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m(2, \"ket\")\")⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m(1, \"ket\")⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m(1, \"bra\")⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[0m "
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Vector{Any}[[Key((8, \"bra\")), Any[Key((8, \"ket\")), Any[Key((9, \"ket\")), Any[Key((9, \"bra\")), Any[Key((10, \"ket\")), Any[Key((10, \"bra\")), Any[Key((11, \"ket\")), Any[Key((11, \"bra\")), Any[Key((12, \"bra\")), Any[Key((12, \"ket\")), Key{Tuple{Int64, String}}[Key((13, \"bra\")), Key((13, \"ket\"))]]]]]]]]]]], [Key((7, \"ket\")), Any[Key((7, \"bra\")), Any[Key((6, \"ket\")), Any[Key((6, \"bra\")), Any[Key((5, \"ket\")), Any[Key((5, \"bra\")), Any[Key((4, \"ket\")), Any[Key((4, \"bra\")), Any[Key((3, \"bra\")), Any[Key((3, \"ket\")), Any[Key((2, \"bra\")), Any[Key((2, \"ket\")), Key{Tuple{Int64, String}}[Key((1, \"bra\")), Key((1, \"ket\"))]]]]]]]]]]]]]]\n",
            "├─ Any[Key((8, \"bra\")), Any[Key((8, \"ket\")), Any[Key((9, \"ket\")), Any[Key((9, \"bra\")), Any[Key((10, \"ket\")), Any[Key((10, \"bra\")), Any[Key((11, \"ket\")), Any[Key((11, \"bra\")), Any[Key((12, \"bra\")), Any[Key((12, \"ket\")), Key{Tuple{Int64, String}}[Key((13, \"bra\")), Key((13, \"ket\"))]]]]]]]]]]]\n",
            "│  ├─ Key((8, \"bra\"))\n",
            "│  └─ Any[Key((8, \"ket\")), Any[Key((9, \"ket\")), Any[Key((9, \"bra\")), Any[Key((10, \"ket\")), Any[Key((10, \"bra\")), Any[Key((11, \"ket\")), Any[Key((11, \"bra\")), Any[Key((12, \"bra\")), Any[Key((12, \"ket\")), Key{Tuple{Int64, String}}[Key((13, \"bra\")), Key((13, \"ket\"))]]]]]]]]]]\n",
            "│     ├─ Key((8, \"ket\"))\n",
            "│     └─ Any[Key((9, \"ket\")), Any[Key((9, \"bra\")), Any[Key((10, \"ket\")), Any[Key((10, \"bra\")), Any[Key((11, \"ket\")), Any[Key((11, \"bra\")), Any[Key((12, \"bra\")), Any[Key((12, \"ket\")), Key{Tuple{Int64, String}}[Key((13, \"bra\")), Key((13, \"ket\"))]]]]]]]]]\n",
            "│        ├─ Key((9, \"ket\"))\n",
            "│        └─ Any[Key((9, \"bra\")), Any[Key((10, \"ket\")), Any[Key((10, \"bra\")), Any[Key((11, \"ket\")), Any[Key((11, \"bra\")), Any[Key((12, \"bra\")), Any[Key((12, \"ket\")), Key{Tuple{Int64, String}}[Key((13, \"bra\")), Key((13, \"ket\"))]]]]]]]]\n",
            "│           ├─ Key((9, \"bra\"))\n",
            "│           └─ Any[Key((10, \"ket\")), Any[Key((10, \"bra\")), Any[Key((11, \"ket\")), Any[Key((11, \"bra\")), Any[Key((12, \"bra\")), Any[Key((12, \"ket\")), Key{Tuple{Int64, String}}[Key((13, \"bra\")), Key((13, \"ket\"))]]]]]]]\n",
            "│              ⋮\n",
            "│              \n",
            "└─ Any[Key((7, \"ket\")), Any[Key((7, \"bra\")), Any[Key((6, \"ket\")), Any[Key((6, \"bra\")), Any[Key((5, \"ket\")), Any[Key((5, \"bra\")), Any[Key((4, \"ket\")), Any[Key((4, \"bra\")), Any[Key((3, \"bra\")), Any[Key((3, \"ket\")), Any[Key((2, \"bra\")), Any[Key((2, \"ket\")), Key{Tuple{Int64, String}}[Key((1, \"bra\")), Key((1, \"ket\"))]]]]]]]]]]]]]\n",
            "   ├─ Key((7, \"ket\"))\n",
            "   └─ Any[Key((7, \"bra\")), Any[Key((6, \"ket\")), Any[Key((6, \"bra\")), Any[Key((5, \"ket\")), Any[Key((5, \"bra\")), Any[Key((4, \"ket\")), Any[Key((4, \"bra\")), Any[Key((3, \"bra\")), Any[Key((3, \"ket\")), Any[Key((2, \"bra\")), Any[Key((2, \"ket\")), Key{Tuple{Int64, String}}[Key((1, \"bra\")), Key((1, \"ket\"))]]]]]]]]]]]]\n",
            "      ├─ Key((7, \"bra\"))\n",
            "      └─ Any[Key((6, \"ket\")), Any[Key((6, \"bra\")), Any[Key((5, \"ket\")), Any[Key((5, \"bra\")), Any[Key((4, \"ket\")), Any[Key((4, \"bra\")), Any[Key((3, \"bra\")), Any[Key((3, \"ket\")), Any[Key((2, \"bra\")), Any[Key((2, \"ket\")), Key{Tuple{Int64, String}}[Key((1, \"bra\")), Key((1, \"ket\"))]]]]]]]]]]]\n",
            "         ├─ Key((6, \"ket\"))\n",
            "         └─ Any[Key((6, \"bra\")), Any[Key((5, \"ket\")), Any[Key((5, \"bra\")), Any[Key((4, \"ket\")), Any[Key((4, \"bra\")), Any[Key((3, \"bra\")), Any[Key((3, \"ket\")), Any[Key((2, \"bra\")), Any[Key((2, \"ket\")), Key{Tuple{Int64, String}}[Key((1, \"bra\")), Key((1, \"ket\"))]]]]]]]]]]\n",
            "            ├─ Key((6, \"bra\"))\n",
            "            └─ Any[Key((5, \"ket\")), Any[Key((5, \"bra\")), Any[Key((4, \"ket\")), Any[Key((4, \"bra\")), Any[Key((3, \"bra\")), Any[Key((3, \"ket\")), Any[Key((2, \"bra\")), Any[Key((2, \"ket\")), Key{Tuple{Int64, String}}[Key((1, \"bra\")), Key((1, \"ket\"))]]]]]]]]]\n",
            "               ⋮\n",
            "               \n",
            "inner_res = 134563.2728071768\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "    \u001b[38;5;8m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀sub(2, \"bra\")⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⢀\u001b[0m\u001b[38;5;4m⠔\u001b[0m\u001b[38;5;4m⠁\u001b[0m\u001b[38;5;4m⡇\u001b[0m\u001b[38;5;4m⠈\u001b[0m\u001b[38;5;4m⠑\u001b[0m\u001b[38;5;4m⠒\u001b[0m\u001b[38;5;4m⠤\u001b[0m\u001b[38;5;4m⣀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⡠\u001b[0m\u001b[38;5;4m⠒\u001b[0m\u001b[38;5;4m⠁\u001b[0m⠀⠀2⠀⠀⠀⠀⠀\u001b[38;5;4m⠉\u001b[0m\u001b[38;5;4m⠑\u001b[0m\u001b[38;5;4m⠢\u001b[0m\u001b[38;5;4m⠤\u001b[0m\u001b[38;5;4m⣀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⢀\u001b[0m\u001b[38;5;4m⡠\u001b[0m\u001b[38;5;4m⠊\u001b[0m⠀⠀⠀⠀⠀\u001b[38;5;4m⡇\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠉\u001b[0m2\u001b[38;5;4m⠢\u001b[0m\u001b[38;5;4m⢄\u001b[0m\u001b[38;5;4m⣀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⢀\u001b[0m2\u001b[38;5;4m⠁\u001b[0m⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠃\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠉\u001b[0m\u001b[38;5;4m⠒\u001b[0m\u001b[38;5;4m⠤\u001b[0m\u001b[38;5;4m⢄\u001b[0m\u001b[38;5;4m⡀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⡠\u001b[0m\u001b[38;5;4m⠔\u001b[0m\u001b[38;5;4m⠁\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀sub(2, \"ket\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⡠\u001b[0m\u001b[38;5;4m⠊\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⡠\u001b[0m\u001b[38;5;4m⠔\u001b[0m\u001b[38;5;4m⢹\u001b[0m⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀\u001b[38;5;4m⢀\u001b[0m\u001b[38;5;4m⠔\u001b[0m\u001b[38;5;4m⠉\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⡠\u001b[0m\u001b[38;5;4m⠊\u001b[0m⠀⠀2⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0mb(1, \"bra\")⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⢀\u001b[0m\u001b[38;5;4m⠔\u001b[0m\u001b[38;5;4m⠉\u001b[0m⠀⠀⠀⠀\u001b[38;5;4m⢸\u001b[0m⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠈\u001b[0m\u001b[38;5;4m⠑\u001b[0m\u001b[38;5;4m⠒\u001b[0m\u001b[38;5;4m⠤\u001b[0m\u001b[38;5;4m⣀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⡠\u001b[0m2\u001b[38;5;4m⠁\u001b[0m⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠸\u001b[0m⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠉\u001b[0m\u001b[38;5;4m⠑\u001b[0m\u001b[38;5;4m⠢\u001b[0m2\u001b[38;5;4m⣀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⢀\u001b[0m\u001b[38;5;4m⠤\u001b[0m\u001b[38;5;4m⠊\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠉\u001b[0m\u001b[38;5;4m⠒\u001b[0m\u001b[38;5;4m⠤\u001b[0m\u001b[38;5;4m⢄\u001b[0m\u001b[38;5;4m⡀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⣀\u001b[0m\u001b[38;5;4m⠔\u001b[0m\u001b[38;5;4m⠁\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;4m⠈\u001b[0m\u001b[38;5;4m⠑\u001b[0m\u001b[38;5;4m⠒\u001b[0m\u001b[38;5;4m⠤\u001b[0m\u001b[38;5;4m⣀\u001b[0m⠀⠀\u001b[38;5;4m⡠\u001b[0m\u001b[38;5;4m⠊\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀sub(1, \"ket\")⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀\u001b[0m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[38;5;8m⠀\u001b[0m \n",
              "    \u001b[38;5;8m⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u001b[0m "
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "ITensorNetwork{Tuple{Int64, String}} with 4 vertices:\n",
              "4-element Vector{Tuple{Int64, String}}:\n",
              " (1, \"bra\")\n",
              " (1, \"ket\")\n",
              " (2, \"bra\")\n",
              " (2, \"ket\")\n",
              "\n",
              "and 4 edge(s):\n",
              "(1, \"bra\") => (1, \"ket\")\n",
              "(1, \"bra\") => (2, \"bra\")\n",
              "(1, \"ket\") => (2, \"ket\")\n",
              "(2, \"bra\") => (2, \"ket\")\n",
              "\n",
              "with vertex data:\n",
              "4-element Dictionaries.Dictionary{Tuple{Int64, String}, Any}\n",
              " (1, \"bra\") │ ((dim=2|id=266|\"S=1/2,Site,n=1\"), (dim=2|id=452|\"1,2\"))\n",
              " (1, \"ket\") │ ((dim=2|id=266|\"S=1/2,Site,n=1\"), (dim=2|id=1|\"1,2\"))\n",
              " (2, \"bra\") │ ((dim=2|id=993|\"S=1/2,Site,n=2\"), (dim=2|id=452|\"1,2\"), (dim=2|id=449|\"2,3\"))\n",
              " (2, \"ket\") │ ((dim=2|id=993|\"S=1/2,Site,n=2\"), (dim=2|id=1|\"1,2\"), (dim=2|id=774|\"2,3\"))"
            ]
          },
          "metadata": {},
          "execution_count": 41
        }
      ]
    }
  ],
  "metadata": {
    "colab": {
      "provenance": [],
      "machine_shape": "hm"
    },
    "kernelspec": {
      "display_name": "Julia",
      "name": "julia"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}