This is an implementation of the theory of quantum computing in the Lean programming language (using the Lean theorem prover version 3).
It's built on top of the "mathlib" library written by the Lean Community.
The src directory
-
common_lemmas.lean: Contains lemmas that are not specific to complex matrix or quantum computing.
-
matrix_inner_product.lean: The
inner_product_spaceinstantiation for thematrixtype. -
matrix.lean: Matrix-related definitions, notably
Matrixandkron(the Kronecker product).- The
Matrixtype is defined based on the mathlib'smatrixtype, but specialized for complex number and thefinrange type.
- The
-
matrix_lemmas.lean: Derived facts from the definitions of
Matrix,kronandadjoint. -
quantum.lean: Definitions for quantum computing, such as measurements and basic states and circuits.
-
quantum_lemmas.lean: Derived facts from the definitions in the quantum.lean file.
-
measurement.lean: More generalized definitions of measurements and theorems about them.
The src/theorems directory
-
no-clone.lean: Several different versions of the "no-cloning" theorems.
-
random-number-generator.lean: A few examples of Hadamard transform algorithm.
-
Tutorial: Quantum Programming: https://sites.google.com/ncsu.edu/qc-tutorial/home
-
An Introduction to Quantum Computing, Without the Physics : https://arxiv.org/abs/1708.03684
-
The "Verified Quantum Computing" book: https://www.cs.umd.edu/~rrand/vqc/
-
Lean Community: https://leanprover-community.github.io
-
QWIRE: https://github.com/inQWIRE/QWIRE
- "A quantum circuit language and formal verification tool" by Robert Rand et al.