#### Note

This tutorial is third in a series on the ``bosonic`` backend. For an introduction\n to the backend, see :doc:`part 1 `. To learn about\n how the backend can be used to sample non-Gaussian states, see \n :doc:`part 2 `. These tutorials accompany \n our research paper [[#bourassa2021]_].

\nIn a previous :doc:`tutorial `, we briefly introduced\nGottesman-Kitaev-Preskill (GKP) states [[#gottesman2001]_] as an example of\nnon-Gaussian states which can be simulated using the ``bosonic``\nbackend. Here, we use the ``bosonic`` backend to take a deep dive into\nthe advantages of using GKP states as a means for encoding a qubit in a\nphotonic mode. GKP qubits have a key property that we will\nexplore in this tutorial: a universal set of qubit gates and measurements can be\napplied using the already-familiar Gaussian gates and measurements from\nprevious :doc:`tutorials `.\n\nAfter providing more intuition for what ideal and practical GKP states\nlook like in phase space, we will show how to apply qubit gates and\nmeasurements, and how such operations perform under realistic, noisy\nconditions. While some of these simulations have been performed before,\nmany of these, especially the two-qubit Clifford gates and the T-gate\nteleportation circuits have eluded simulation because of their computational\ncost. The ``bosonic`` backend brings these simulations to within our reach.\n\nWe assume that readers of this tutorial have some familiarity with phase\nspace methods like the :doc:`Wigner function ` and\n`basic CV gates