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_space
instantiation for thematrix
type. -
matrix.lean: Matrix-related definitions, notably
Matrix
andkron
(the Kronecker product).- The
Matrix
type is defined based on the mathlib'smatrix
type, but specialized for complex number and thefin
range type.
- The
-
matrix_lemmas.lean: Derived facts from the definitions of
Matrix
,kron
andadjoint
. -
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.