inqwire / vqo Goto Github PK
View Code? Open in Web Editor NEWVerified Compilation of Quantum Oracles
License: MIT License
Verified Compilation of Quantum Oracles
License: MIT License
Cleaning up the Coq code in QVM directory in the rcir-plus branch. Adding more comments, breaking definitions into different files. making sure definitions are understandable.
In the rcir-plus branch, currently, we allow quantum oracle definitions in PQASM/QIMP, and it is compiled to SQIR, and packed with the SQIR quantum algorithm definitions, and we learn the behaviors the whole program in SQIR. We want to flesh out the way to write a full algorithm, with quantum parts and the oracle, together. QuantumOne compilation via PQASM and SQIR.
QIMP language design improvements, so that functions are actually reusable. E.g., imagine writing out an implementation for multiplication in QIMP, rather than in Coq, and then reusing it in the implementation of sine.
https://arxiv.org/pdf/1711.10980.pdf
In QVM/rcir-plus, try to update PQASM to include some quantum entanglement features so that we are able to define most quantum walk oracles and Hamiltonian Simulation oracles. Then, we want to define Hamiltonian Simulation in PQASM and simulate it.
The proofs in QVM for different operations contain similar theorem proofs . We want to make proof more modular so that proofs of correctness of x+y and x+a and a+b can share much of the same underlying proof script.
The Coq generated Ocaml file causes stack overflow. One possible solution is to turn definitions in QVM to be tail recursions. Our goal is to generate circuits in the Coq generated Ocaml code for small QIMP programs. In rcir-plus branch.
As Mike suggested, I'm creating a GitHub issue for things that could be done to improve QVM.
nat
is used for a value that will be very large, and it's relevant to semantics or something that will be run in tests, then binary representations of numbers should be used, like N
or positive
. Functional maps can also eat up a lot of memory and time, so using FMap
s for maps relevant to the semantics would be good. If we really want good performance, we could use positive
instead of nat
to represent variables, and then use PositiveMap
.The current addition operations used in defining multiplication operations are from ripple-carry addition and QFT-based. The Quipper has a different addition implementation for multiplications. We want to also include that addition algorithm.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.