Quantum Logic (2020-21)

MIEFis - MSc in Physics Engineering

Dep. Informática, Universidade do Minho

A Research Exercise

The research exercise aims at exploring themes and topics related to the course contents, but not formally covered during the lectures. The exercise is expected to produce two deliverables which will be jointly assessed:


T1: Diagramatic reasoning in categories
The objective of this project is twofold: to further explore two new topics in category theory (adjunctions and monads), and to study a graphical language --- a variant of string diagrams --- to reason about them. Although the focus of the project is placed on the topics covered in the course first module, the use of a graphical language bridges to the second one.

The basic reference for this study, and the preparation of the tutorial, is the following paper:

The tutorial shall present the graphical approach to categories and relate it the the study of string diagrms made in the lectures.

For the report, the group is expected to discuss the concepts of adjunction and monad, provide examples and illustrate the proof of some related results with the approach discussed in the above-mentioned paper. The group may like to refer to the following notes on adjunctions and monads and work through some of the exercises proposed.

T2: Representation of classic data in string diagrams
The aim of this project is study the representation of classic data in process theories adimiting string diagrams. This goes a step further with respect to what we have done in the lectures, resorting to elements, such as indexed families, which were external to the diagrams. The group is expected to prepare a tutorial on this topic based essentially in chapter 8 (possibly complemented with the first three sections of chapter 9) of Coecke and Kissinger's book followed in this course:

For the report, the group is expected to illustrate what was learnt through its application to the specification of some quantum protocols or programs in the extended process theory.

T3: The ZX calculus and PyZX

The ZX calculus is a diagramatic notation equipped with a set of rewrite rules for a sort of string diagrams call ZX-diagrams. Basically, they allow to represent arbitrary linear maps between qubits. Access to documentation and tools is available here. Additional information can be found in

and paper The report is expected to focus on tool support for the ZX calculus, namely PyZX , and illustrate its use through suitable examples.

T4: Case-studies in the ZX calculus
This project aims at discusing concrete applications of the ZX calculus (and, in a sense, of the diagramatic approach to quantum processes discussed in the second module of the course). Documentation on the ZX calculus is available here. The tutorial is expected to briefly introducing the ZX calculus and the application examples discussed in the following papers: The report should explore in detail one of these papers and a second illustration of the ZX calculus the group may find reported in the web.

T5: Certification of quantum programs with a quantum lambda-calculus
This project, related to the third module of course, aims at exploring quantum lambda-calculus as a basis for certification of quantum software. Certification, i.e. compliance to the specified behaviour, is a fundamental goal for the sotware engineering. The tutorial should present Selinger and Valiron's version of a quantum lambda calculus with classical control. The basic reference is The report is expected to discuss certification and its relation to the quantum lambda calculus, starting from the following paper