# Gleipnir Artifact for the Paper Gleipnir:Generating Verified Error Bounds for Quantum Programs ## Getting Start Guide 1. install Docker. for Windows/Mac OS: https://www.docker.com/get-started for Linux: https://docs.docker.com/engine/install/ 2. download the docker image gleipnir.tar 3. load the image. In terminal (powershell for Windows), enter docker load -i the_address_to_the_image 4. run the image. In terminal, enter docker run -it gleipnir /bin/bash you will enter inside the image 5. check the contents inside the image cd Gleipnir ls you will see the codes README.md __pycache__ mps.py parser qasm sdp.py simulator.py test.py test_real.py ## Running the test First, you need to run the image by docker run -it gleipnir /bin/bash Inside the image, you need to enter the /Gleipnir/ directory cd Gleipnir ### Gleipnir bound To reproduce the "Gleipnir bound" column in Table 2, you can run python test.py The running time will be in 1 hour. ### LQR with full simulation bound To reproduce the "LQR with full simulation" column in Table 2, you can run python test.py --full_simulation The running time may take 5 hours. ## The relation between bound and MPS size To reproduce the result in Figure 14, you can run python test.py --change_size The running time will be in 1 hour. ## Result on real quantum hardware To reproduce the result in Table 3, you can run python test_real.py The running time takes a few minutes. Note: The quantum computer we use in our paper, ibmq-boeblingen quantum computer is not available now. Instead, we run the experiment on the ibmq-lima quantum computer with the GHZ-3 circuit and 3 different mappings. The result are similar to what we find in the paper: Gleipnir’s bounds are consistent with the real noise level, and successfully predicts the noise levels of different mapping: 0-1-2 has the least noise, while 1-3-4 has the most.