What is the purpose of the 3 different codebases? #85
-
There are three main segments to this repository:
My rough understanding of the roles each of these play are that the C code is intended to be the execution environment that would be deployed to consensus. This is the interpreter people will be running in node implementations. The Haskell code is primarily the means by which we generate simplicity expressions. The Coq code is there to prove theorems about individual simplicity expressions so that we can leverage simplicity's nice theoretical properties to gain more higher level assertions that we would want out of contracts deployed in simplicity. Is this a correct assessment? If not, where is it wrong? This discussion was inspired by some off-topic discussion in #83 |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 4 replies
-
There is also My view is that the C code is for consensus purposes. The Haskell code is a reference implementation. The Rust code would be for creating Simplicity Programs. The Coq code will be for proving things about Simplicity programs, and in combination with VST, proving the correctness of the C jets and maybe even the whole C implementation of the Simplicity interpreter. |
Beta Was this translation helpful? Give feedback.
There is also
My view is that the C code is for consensus purposes. The Haskell code is a reference implementation. The Rust code would be for creating Simplicity Programs. The Coq code will be for proving things about Simplicity programs, and in combination with VST, proving the correctness of the C jets and maybe even the whole C implementation of the Simplicity interpreter.