π§βπΌ Careers
-info
Our team is currently complete.
If you are knowledgeable in functional programming / theorem provers and want to work with us, contact us. We provide positions in Paris or remote.
-diff --git a/404.html b/404.html index dbf7b7175..93a9513e1 100644 --- a/404.html +++ b/404.html @@ -11,7 +11,7 @@ - +
diff --git a/assets/files/formal-verification-ocaml-formal-land-f7fc4aec9c67b261b754474cee1e19eb.pdf b/assets/files/formal-verification-ocaml-formal-land-f7fc4aec9c67b261b754474cee1e19eb.pdf deleted file mode 100644 index 25315deaa..000000000 Binary files a/assets/files/formal-verification-ocaml-formal-land-f7fc4aec9c67b261b754474cee1e19eb.pdf and /dev/null differ diff --git a/assets/js/935f2afb.404b1bbe.js b/assets/js/935f2afb.404b1bbe.js new file mode 100644 index 000000000..484a72838 --- /dev/null +++ b/assets/js/935f2afb.404b1bbe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkformal_land=self.webpackChunkformal_land||[]).push([[8581],{5610:o=>{o.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"sidebar":[{"type":"link","label":"\ud83d\udee1\ufe0f Audit Reports","href":"/docs/audit","docId":"audit","unlisted":false},{"type":"category","label":"\ud83d\udee0\ufe0f Tools","items":[{"type":"link","label":"\u25fc\ufe0f coq-of-noir","href":"/docs/tools/coq-of-noir/introduction","docId":"tools/coq-of-noir/introduction","unlisted":false},{"type":"category","label":"\ud83d\udc2b coq-of-ocaml","items":[{"type":"link","label":"Install","href":"/docs/tools/coq-of-ocaml/install","docId":"tools/coq-of-ocaml/install","unlisted":false},{"type":"link","label":"Run","href":"/docs/tools/coq-of-ocaml/run","docId":"tools/coq-of-ocaml/run","unlisted":false},{"type":"link","label":"Cookbook","href":"/docs/tools/coq-of-ocaml/cookbook","docId":"tools/coq-of-ocaml/cookbook","unlisted":false},{"type":"category","label":"Language support","items":[{"type":"link","label":"OCaml core","href":"/docs/tools/coq-of-ocaml/language/ocaml-core","docId":"tools/coq-of-ocaml/language/ocaml-core","unlisted":false},{"type":"link","label":"Type definitions","href":"/docs/tools/coq-of-ocaml/language/type-definitions","docId":"tools/coq-of-ocaml/language/type-definitions","unlisted":false},{"type":"link","label":"Module system","href":"/docs/tools/coq-of-ocaml/language/module-system","docId":"tools/coq-of-ocaml/language/module-system","unlisted":false},{"type":"link","label":"GADTs","href":"/docs/tools/coq-of-ocaml/language/gadts","docId":"tools/coq-of-ocaml/language/gadts","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/tools/coq-of-ocaml/language/"},{"type":"category","label":"Options","items":[{"type":"link","label":"Attributes","href":"/docs/tools/coq-of-ocaml/options/attributes","docId":"tools/coq-of-ocaml/options/attributes","unlisted":false},{"type":"link","label":"Configuration","href":"/docs/tools/coq-of-ocaml/options/configuration","docId":"tools/coq-of-ocaml/options/configuration","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/tools/coq-of-ocaml/options/"},{"type":"category","label":"More","items":[{"type":"link","label":"Examples","href":"/docs/tools/coq-of-ocaml/more/examples","docId":"tools/coq-of-ocaml/more/examples","unlisted":false},{"type":"link","label":"Faq","href":"/docs/tools/coq-of-ocaml/more/faq","docId":"tools/coq-of-ocaml/more/faq","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/tools/coq-of-ocaml/more/"}],"collapsed":true,"collapsible":true,"href":"/docs/tools/coq-of-ocaml/introduction"},{"type":"link","label":"\ud83e\udd80 coq-of-rust","href":"/docs/tools/coq-of-rust/introduction","docId":"tools/coq-of-rust/introduction","unlisted":false},{"type":"link","label":"\ud83e\ude81 coq-of-solidity","href":"/docs/tools/coq-of-solidity/introduction","docId":"tools/coq-of-solidity/introduction","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\ud83d\udc65 Company","items":[{"type":"link","label":"\ud83e\udd9a About","href":"/docs/company/about","docId":"company/about","unlisted":false},{"type":"link","label":"\ud83c\udfc1 Introduction","href":"/docs/company/intro","docId":"company/intro","unlisted":false},{"type":"link","label":"\ud83d\udce3 Claims","href":"/docs/company/claims","docId":"company/claims","unlisted":false},{"type":"link","label":"\ud83e\uddd1\u200d\ud83d\udcbc Careers","href":"/docs/company/careers","docId":"company/careers","unlisted":false},{"type":"link","label":"\ud83d\udcdc Press","href":"/docs/company/press","docId":"company/press","unlisted":false},{"type":"link","label":"\ud83d\uddfa\ufe0f Maps","href":"/docs/company/maps","docId":"company/maps","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\ud83e\udd13 Learn","items":[{"type":"link","label":"\ud83d\udcda Start","href":"/docs/learn/start","docId":"learn/start","unlisted":false}],"collapsed":true,"collapsible":true}]},"docs":{"audit":{"id":"audit","title":"\ud83d\udee1\ufe0f Audit Reports","description":"Reports","sidebar":"sidebar"},"company/about":{"id":"company/about","title":"\ud83e\udd9a About","description":"We started in 2021. We specialize in formal verification, that is to say the exhaustive testing of programs, with a focus on the blockchain industry. We develop innovative solutions \ud83d\ude80 to verify code that was unverifiable before. Most of our code is eventually open-sourced and relies on the proof assistant Coq \ud83d\udc13.","sidebar":"sidebar"},"company/careers":{"id":"company/careers","title":"\ud83e\uddd1\u200d\ud83d\udcbc Careers","description":"Our team is currently complete. In general, we work from Paris or remotely.","sidebar":"sidebar"},"company/claims":{"id":"company/claims","title":"\ud83d\udce3 Claims","description":"Here are our claims.","sidebar":"sidebar"},"company/intro":{"id":"company/intro","title":"\ud83c\udfc1 Introduction","description":"Here we present our project.","sidebar":"sidebar"},"company/maps":{"id":"company/maps","title":"\ud83d\uddfa\ufe0f Maps","description":"Here we put some information about the Web3 space \ud83c\udf19 that we find useful. They information may or may not be accurate. You can reuse them.","sidebar":"sidebar"},"company/press":{"id":"company/press","title":"\ud83d\udcdc Press","description":"Here are some documents you can read or use.","sidebar":"sidebar"},"learn/start":{"id":"learn/start","title":"\ud83d\udcda Start","description":"In this part of the website, we will learn about applying modern formal verification to build software without bugs \ud83c\udf8a.","sidebar":"sidebar"},"services/ocaml-development":{"id":"services/ocaml-development","title":"\ud83d\udc2b OCaml development","description":"We offer our OCaml (or Reason/ReScript/Melange) development services. We work as contractors and our unique rate is $10,000 per month all inclusive. Our work can be terminated without notice period on your side. Some of our developers have more than 10 years of experience in software development, either in embedded systems or in Web applications (front and back). We strive to follow strict schedule and fulfill all customer requirements."},"services/rust-development":{"id":"services/rust-development","title":"\ud83e\udd80 Rust development","description":"We help you build your products by offering Rust development services. We work as contractors only. Some of our developers have more than 10 years of experience in software development, either in embedded systems or in Web applications (front and back). We strive to follow strict schedule and fulfill customer requirements."},"services/solidity-development":{"id":"services/solidity-development","title":"\ud83c\uddf8 Solidity development","description":"We offer our Solidity development services. We work as contractors and our unique rate is $10,000 per month all inclusive. Our work can be terminated without notice period on your side. Some of our developers have more than 10 years of experience in software development, either in embedded systems or in Web applications (front and back). We strive to follow strict schedule and fulfill all customer requirements."},"services/typescript-development":{"id":"services/typescript-development","title":"\ud83c\udf10 TypeScript development","description":"We offer our TypeScript development services \ud83c\udfd7\ufe0f to help you build your applications. We work as contractors and our work can be terminated without notice period on your side \ud83d\udd25. Some of our developers have more than 10 years of experience in software development \ud83e\uddd3, either in embedded systems or in Web applications (front and back). We strive to follow schedule \u23f2\ufe0f and fulfill requirements."},"tools/coq-of-noir/introduction":{"id":"tools/coq-of-noir/introduction","title":"\u25fc\ufe0f coq-of-noir","description":"coq-of-noir is a formal verification tool for Noir programs. With it you can ensure that Noir programs are totally bug-free and secure, assuming a correct specification!","sidebar":"sidebar"},"tools/coq-of-ocaml/cookbook":{"id":"tools/coq-of-ocaml/cookbook","title":"Cookbook","description":"Here we list typical situations where we need to change the OCaml source code so that the translated code compiles in Coq.","sidebar":"sidebar"},"tools/coq-of-ocaml/install":{"id":"tools/coq-of-ocaml/install","title":"Install","description":"We recommend to install the latest stable version of coq-of-ocaml via opam.","sidebar":"sidebar"},"tools/coq-of-ocaml/introduction":{"id":"tools/coq-of-ocaml/introduction","title":"\ud83d\udc2b coq-of-ocaml","description":"This project was funded by the French Government \ud83c\uddeb\ud83c\uddf7 and the Tezos Foundation.","sidebar":"sidebar"},"tools/coq-of-ocaml/language/gadts":{"id":"tools/coq-of-ocaml/language/gadts","title":"GADTs","description":"We provide some support for the OCaml\'s GADTs, which are an advanced form of algebraic data-types. As Coq does not have a direct equivalent for the GADTs, we introduce some axioms guided by the user annotations.","sidebar":"sidebar"},"tools/coq-of-ocaml/language/index":{"id":"tools/coq-of-ocaml/language/index","title":"Language support","description":"In this section we details which parts of the OCaml language are supported, and how they are translated to Coq.","sidebar":"sidebar"},"tools/coq-of-ocaml/language/module-system":{"id":"tools/coq-of-ocaml/language/module-system","title":"Module system","description":"To handle the module system of OCaml, the compiler coq-of-ocaml generates either plain Coq modules or dependent records. It never generates Coq functors or module types. You can use coq-of-ocaml to translate modules, module types, functors and first-class modules.","sidebar":"sidebar"},"tools/coq-of-ocaml/language/ocaml-core":{"id":"tools/coq-of-ocaml/language/ocaml-core","title":"OCaml core","description":"coq-of-ocaml translates the functional core of OCaml to the corresponding Coq constructs. It adds type annotations for each definition. We present how this translation work.","sidebar":"sidebar"},"tools/coq-of-ocaml/language/type-definitions":{"id":"tools/coq-of-ocaml/language/type-definitions","title":"Type definitions","description":"coq-of-ocaml generates the Coq definitions corresponding to OCaml\'s type definitions.","sidebar":"sidebar"},"tools/coq-of-ocaml/more/examples":{"id":"tools/coq-of-ocaml/more/examples","title":"Examples","description":"The main project handled with coq-of-ocaml is the crypto-currency Tezos. The result is in the project:","sidebar":"sidebar"},"tools/coq-of-ocaml/more/faq":{"id":"tools/coq-of-ocaml/more/faq","title":"Faq","description":"Here we answer to some questions you may have when using coq-of-ocaml.","sidebar":"sidebar"},"tools/coq-of-ocaml/more/index":{"id":"tools/coq-of-ocaml/more/index","title":"More","description":"In this section we give you a few more information to guide you in the use of coq-of-ocaml.","sidebar":"sidebar"},"tools/coq-of-ocaml/options/attributes":{"id":"tools/coq-of-ocaml/options/attributes","title":"Attributes","description":"We present the attributes which we can use with coq-of-ocaml. See the attributes documentation of OCaml for general information about the attributes mechanism. Note that the OCaml attributes do not change the behavior of a program. There are there to help developer tools.","sidebar":"sidebar"},"tools/coq-of-ocaml/options/configuration":{"id":"tools/coq-of-ocaml/options/configuration","title":"Configuration","description":"We present the configuration mechanism of coq-of-ocaml to define some global settings. We write the configuration in a file in the JSON format. To run coq-of-ocaml with a configuration file, use the -config option:","sidebar":"sidebar"},"tools/coq-of-ocaml/options/index":{"id":"tools/coq-of-ocaml/options/index","title":"Options","description":"There are two main ways to customize the translation made by coq-of-ocaml:","sidebar":"sidebar"},"tools/coq-of-ocaml/run":{"id":"tools/coq-of-ocaml/run","title":"Run","description":"coq-of-ocaml translates the OCaml files one by one. It uses Merlin to get the typing environment of each file. Thus you should first have a project which works with Merlin. This is generally the case for a project compiled with dune.","sidebar":"sidebar"},"tools/coq-of-rust/introduction":{"id":"tools/coq-of-rust/introduction","title":"\ud83e\udd80 coq-of-rust","description":"This project was funded by the Aleph Zero Foundation.","sidebar":"sidebar"},"tools/coq-of-solidity/introduction":{"id":"tools/coq-of-solidity/introduction","title":"\ud83e\ude81 coq-of-solidity","description":"This project was funded by the Aleph Zero Foundation.","sidebar":"sidebar"},"verification/ocaml":{"id":"verification/ocaml","title":"\ud83d\udc2b OCaml verification","description":"To formally verify OCaml programs we are developing the translator coq-of-ocaml. It translates OCaml code to similar-looking code in the interactive proof assistant Coq. We are then expert in the Coq system and can formally verify arbitrarily complex properties."},"verification/rust":{"id":"verification/rust","title":"\ud83e\udd80 Rust verification","description":"We are working on bringing more formal verification to the Rust community. You can also look at this page that is intending to group all the formal verification efforts on Rust, or at the company Cryspen doing formal verification on Rust."},"verification/solidity":{"id":"verification/solidity","title":"\ud83c\uddf8 Solidity verification","description":"Presentation"},"verification/typescript":{"id":"verification/typescript","title":"\ud83c\udf10 TypeScript verification","description":"\ud83d\udcfd\ufe0f Demo "}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.62e80fa9.js b/assets/js/935f2afb.62e80fa9.js deleted file mode 100644 index c315817d6..000000000 --- a/assets/js/935f2afb.62e80fa9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkformal_land=self.webpackChunkformal_land||[]).push([[8581],{5610:o=>{o.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"sidebar":[{"type":"link","label":"\ud83d\udee1\ufe0f Audit Reports","href":"/docs/audit","docId":"audit","unlisted":false},{"type":"category","label":"\ud83d\udee0\ufe0f Tools","items":[{"type":"link","label":"\u25fc\ufe0f coq-of-noir","href":"/docs/tools/coq-of-noir/introduction","docId":"tools/coq-of-noir/introduction","unlisted":false},{"type":"category","label":"\ud83d\udc2b coq-of-ocaml","items":[{"type":"link","label":"Install","href":"/docs/tools/coq-of-ocaml/install","docId":"tools/coq-of-ocaml/install","unlisted":false},{"type":"link","label":"Run","href":"/docs/tools/coq-of-ocaml/run","docId":"tools/coq-of-ocaml/run","unlisted":false},{"type":"link","label":"Cookbook","href":"/docs/tools/coq-of-ocaml/cookbook","docId":"tools/coq-of-ocaml/cookbook","unlisted":false},{"type":"category","label":"Language support","items":[{"type":"link","label":"OCaml core","href":"/docs/tools/coq-of-ocaml/language/ocaml-core","docId":"tools/coq-of-ocaml/language/ocaml-core","unlisted":false},{"type":"link","label":"Type definitions","href":"/docs/tools/coq-of-ocaml/language/type-definitions","docId":"tools/coq-of-ocaml/language/type-definitions","unlisted":false},{"type":"link","label":"Module system","href":"/docs/tools/coq-of-ocaml/language/module-system","docId":"tools/coq-of-ocaml/language/module-system","unlisted":false},{"type":"link","label":"GADTs","href":"/docs/tools/coq-of-ocaml/language/gadts","docId":"tools/coq-of-ocaml/language/gadts","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/tools/coq-of-ocaml/language/"},{"type":"category","label":"Options","items":[{"type":"link","label":"Attributes","href":"/docs/tools/coq-of-ocaml/options/attributes","docId":"tools/coq-of-ocaml/options/attributes","unlisted":false},{"type":"link","label":"Configuration","href":"/docs/tools/coq-of-ocaml/options/configuration","docId":"tools/coq-of-ocaml/options/configuration","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/tools/coq-of-ocaml/options/"},{"type":"category","label":"More","items":[{"type":"link","label":"Examples","href":"/docs/tools/coq-of-ocaml/more/examples","docId":"tools/coq-of-ocaml/more/examples","unlisted":false},{"type":"link","label":"Faq","href":"/docs/tools/coq-of-ocaml/more/faq","docId":"tools/coq-of-ocaml/more/faq","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/tools/coq-of-ocaml/more/"}],"collapsed":true,"collapsible":true,"href":"/docs/tools/coq-of-ocaml/introduction"},{"type":"link","label":"\ud83e\udd80 coq-of-rust","href":"/docs/tools/coq-of-rust/introduction","docId":"tools/coq-of-rust/introduction","unlisted":false},{"type":"link","label":"\ud83e\ude81 coq-of-solidity","href":"/docs/tools/coq-of-solidity/introduction","docId":"tools/coq-of-solidity/introduction","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\ud83d\udc65 Company","items":[{"type":"link","label":"\ud83e\udd9a About","href":"/docs/company/about","docId":"company/about","unlisted":false},{"type":"link","label":"\ud83c\udfc1 Introduction","href":"/docs/company/intro","docId":"company/intro","unlisted":false},{"type":"link","label":"\ud83d\udce3 Claims","href":"/docs/company/claims","docId":"company/claims","unlisted":false},{"type":"link","label":"\ud83e\uddd1\u200d\ud83d\udcbc Careers","href":"/docs/company/careers","docId":"company/careers","unlisted":false},{"type":"link","label":"\ud83d\udcdc Press","href":"/docs/company/press","docId":"company/press","unlisted":false},{"type":"link","label":"\ud83d\uddfa\ufe0f Maps","href":"/docs/company/maps","docId":"company/maps","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"\ud83e\udd13 Learn","items":[{"type":"link","label":"\ud83d\udcda Start","href":"/docs/learn/start","docId":"learn/start","unlisted":false}],"collapsed":true,"collapsible":true}]},"docs":{"audit":{"id":"audit","title":"\ud83d\udee1\ufe0f Audit Reports","description":"Reports","sidebar":"sidebar"},"company/about":{"id":"company/about","title":"\ud83e\udd9a About","description":"We started in 2021. We specialize in formal verification, that is to say the exhaustive testing of programs, with a focus on the blockchain industry. We develop innovative solutions \ud83d\ude80 to verify code that was unverifiable before. Most of our code is eventually open-sourced and relies on the proof assistant Coq \ud83d\udc13.","sidebar":"sidebar"},"company/careers":{"id":"company/careers","title":"\ud83e\uddd1\u200d\ud83d\udcbc Careers","description":"Our team is currently complete.","sidebar":"sidebar"},"company/claims":{"id":"company/claims","title":"\ud83d\udce3 Claims","description":"Here are our claims.","sidebar":"sidebar"},"company/intro":{"id":"company/intro","title":"\ud83c\udfc1 Introduction","description":"Here we present our project.","sidebar":"sidebar"},"company/maps":{"id":"company/maps","title":"\ud83d\uddfa\ufe0f Maps","description":"Here we put some information about the Web3 space \ud83c\udf19 that we find useful. They information may or may not be accurate. You can reuse them.","sidebar":"sidebar"},"company/press":{"id":"company/press","title":"\ud83d\udcdc Press","description":"Here are some documents you can read or use.","sidebar":"sidebar"},"learn/start":{"id":"learn/start","title":"\ud83d\udcda Start","description":"In this part of the website, we will learn about applying modern formal verification to build software without bugs \ud83c\udf8a.","sidebar":"sidebar"},"services/ocaml-development":{"id":"services/ocaml-development","title":"\ud83d\udc2b OCaml development","description":"We offer our OCaml (or Reason/ReScript/Melange) development services. We work as contractors and our unique rate is $10,000 per month all inclusive. Our work can be terminated without notice period on your side. Some of our developers have more than 10 years of experience in software development, either in embedded systems or in Web applications (front and back). We strive to follow strict schedule and fulfill all customer requirements."},"services/rust-development":{"id":"services/rust-development","title":"\ud83e\udd80 Rust development","description":"We help you build your products by offering Rust development services. We work as contractors only. Some of our developers have more than 10 years of experience in software development, either in embedded systems or in Web applications (front and back). We strive to follow strict schedule and fulfill customer requirements."},"services/solidity-development":{"id":"services/solidity-development","title":"\ud83c\uddf8 Solidity development","description":"We offer our Solidity development services. We work as contractors and our unique rate is $10,000 per month all inclusive. Our work can be terminated without notice period on your side. Some of our developers have more than 10 years of experience in software development, either in embedded systems or in Web applications (front and back). We strive to follow strict schedule and fulfill all customer requirements."},"services/typescript-development":{"id":"services/typescript-development","title":"\ud83c\udf10 TypeScript development","description":"We offer our TypeScript development services \ud83c\udfd7\ufe0f to help you build your applications. We work as contractors and our work can be terminated without notice period on your side \ud83d\udd25. Some of our developers have more than 10 years of experience in software development \ud83e\uddd3, either in embedded systems or in Web applications (front and back). We strive to follow schedule \u23f2\ufe0f and fulfill requirements."},"tools/coq-of-noir/introduction":{"id":"tools/coq-of-noir/introduction","title":"\u25fc\ufe0f coq-of-noir","description":"coq-of-noir is a formal verification tool for Noir programs. With it you can ensure that Noir programs are totally bug-free and secure, assuming a correct specification!","sidebar":"sidebar"},"tools/coq-of-ocaml/cookbook":{"id":"tools/coq-of-ocaml/cookbook","title":"Cookbook","description":"Here we list typical situations where we need to change the OCaml source code so that the translated code compiles in Coq.","sidebar":"sidebar"},"tools/coq-of-ocaml/install":{"id":"tools/coq-of-ocaml/install","title":"Install","description":"We recommend to install the latest stable version of coq-of-ocaml via opam.","sidebar":"sidebar"},"tools/coq-of-ocaml/introduction":{"id":"tools/coq-of-ocaml/introduction","title":"\ud83d\udc2b coq-of-ocaml","description":"This project was funded by the French Government \ud83c\uddeb\ud83c\uddf7 and the Tezos Foundation.","sidebar":"sidebar"},"tools/coq-of-ocaml/language/gadts":{"id":"tools/coq-of-ocaml/language/gadts","title":"GADTs","description":"We provide some support for the OCaml\'s GADTs, which are an advanced form of algebraic data-types. As Coq does not have a direct equivalent for the GADTs, we introduce some axioms guided by the user annotations.","sidebar":"sidebar"},"tools/coq-of-ocaml/language/index":{"id":"tools/coq-of-ocaml/language/index","title":"Language support","description":"In this section we details which parts of the OCaml language are supported, and how they are translated to Coq.","sidebar":"sidebar"},"tools/coq-of-ocaml/language/module-system":{"id":"tools/coq-of-ocaml/language/module-system","title":"Module system","description":"To handle the module system of OCaml, the compiler coq-of-ocaml generates either plain Coq modules or dependent records. It never generates Coq functors or module types. You can use coq-of-ocaml to translate modules, module types, functors and first-class modules.","sidebar":"sidebar"},"tools/coq-of-ocaml/language/ocaml-core":{"id":"tools/coq-of-ocaml/language/ocaml-core","title":"OCaml core","description":"coq-of-ocaml translates the functional core of OCaml to the corresponding Coq constructs. It adds type annotations for each definition. We present how this translation work.","sidebar":"sidebar"},"tools/coq-of-ocaml/language/type-definitions":{"id":"tools/coq-of-ocaml/language/type-definitions","title":"Type definitions","description":"coq-of-ocaml generates the Coq definitions corresponding to OCaml\'s type definitions.","sidebar":"sidebar"},"tools/coq-of-ocaml/more/examples":{"id":"tools/coq-of-ocaml/more/examples","title":"Examples","description":"The main project handled with coq-of-ocaml is the crypto-currency Tezos. The result is in the project:","sidebar":"sidebar"},"tools/coq-of-ocaml/more/faq":{"id":"tools/coq-of-ocaml/more/faq","title":"Faq","description":"Here we answer to some questions you may have when using coq-of-ocaml.","sidebar":"sidebar"},"tools/coq-of-ocaml/more/index":{"id":"tools/coq-of-ocaml/more/index","title":"More","description":"In this section we give you a few more information to guide you in the use of coq-of-ocaml.","sidebar":"sidebar"},"tools/coq-of-ocaml/options/attributes":{"id":"tools/coq-of-ocaml/options/attributes","title":"Attributes","description":"We present the attributes which we can use with coq-of-ocaml. See the attributes documentation of OCaml for general information about the attributes mechanism. Note that the OCaml attributes do not change the behavior of a program. There are there to help developer tools.","sidebar":"sidebar"},"tools/coq-of-ocaml/options/configuration":{"id":"tools/coq-of-ocaml/options/configuration","title":"Configuration","description":"We present the configuration mechanism of coq-of-ocaml to define some global settings. We write the configuration in a file in the JSON format. To run coq-of-ocaml with a configuration file, use the -config option:","sidebar":"sidebar"},"tools/coq-of-ocaml/options/index":{"id":"tools/coq-of-ocaml/options/index","title":"Options","description":"There are two main ways to customize the translation made by coq-of-ocaml:","sidebar":"sidebar"},"tools/coq-of-ocaml/run":{"id":"tools/coq-of-ocaml/run","title":"Run","description":"coq-of-ocaml translates the OCaml files one by one. It uses Merlin to get the typing environment of each file. Thus you should first have a project which works with Merlin. This is generally the case for a project compiled with dune.","sidebar":"sidebar"},"tools/coq-of-rust/introduction":{"id":"tools/coq-of-rust/introduction","title":"\ud83e\udd80 coq-of-rust","description":"This project was funded by the Aleph Zero Foundation.","sidebar":"sidebar"},"tools/coq-of-solidity/introduction":{"id":"tools/coq-of-solidity/introduction","title":"\ud83e\ude81 coq-of-solidity","description":"This project was funded by the Aleph Zero Foundation.","sidebar":"sidebar"},"verification/ocaml":{"id":"verification/ocaml","title":"\ud83d\udc2b OCaml verification","description":"To formally verify OCaml programs we are developing the translator coq-of-ocaml. It translates OCaml code to similar-looking code in the interactive proof assistant Coq. We are then expert in the Coq system and can formally verify arbitrarily complex properties."},"verification/rust":{"id":"verification/rust","title":"\ud83e\udd80 Rust verification","description":"We are working on bringing more formal verification to the Rust community. You can also look at this page that is intending to group all the formal verification efforts on Rust, or at the company Cryspen doing formal verification on Rust."},"verification/solidity":{"id":"verification/solidity","title":"\ud83c\uddf8 Solidity verification","description":"Presentation"},"verification/typescript":{"id":"verification/typescript","title":"\ud83c\udf10 TypeScript verification","description":"\ud83d\udcfd\ufe0f Demo "}}}')}}]); \ No newline at end of file diff --git a/assets/js/9cf8b934.76d29dee.js b/assets/js/9cf8b934.76d29dee.js deleted file mode 100644 index 5ffedf5fb..000000000 --- a/assets/js/9cf8b934.76d29dee.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkformal_land=self.webpackChunkformal_land||[]).push([[440],{7185:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>s,default:()=>m,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var t=r(4848),o=r(8453);const a={},s="\ud83e\uddd1\u200d\ud83d\udcbc Careers",c={id:"company/careers",title:"\ud83e\uddd1\u200d\ud83d\udcbc Careers",description:"Our team is currently complete.",source:"@site/docs/company/careers.md",sourceDirName:"company",slug:"/company/careers",permalink:"/docs/company/careers",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"sidebar",previous:{title:"\ud83d\udce3 Claims",permalink:"/docs/company/claims"},next:{title:"\ud83d\udcdc Press",permalink:"/docs/company/press"}},i={},l=[];function d(e){const n={a:"a",admonition:"admonition",h1:"h1",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"-careers",children:"\ud83e\uddd1\u200d\ud83d\udcbc Careers"}),"\n",(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsx)(n.p,{children:"Our team is currently complete."})}),"\n",(0,t.jsxs)(n.p,{children:["If you are knowledgeable in functional programming / theorem provers and want to work with us, ",(0,t.jsx)("a",{href:"mailto:contact@formal.land",children:"contact us"}),". We provide positions in Paris or remote."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:r(5524).A+"",children:"Coq proof engineer"})}),"\n"]})]})}function m(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},5524:(e,n,r)=>{r.d(n,{A:()=>t});const t=r.p+"assets/files/formal-verification-ocaml-formal-land-f7fc4aec9c67b261b754474cee1e19eb.pdf"},8453:(e,n,r)=>{r.d(n,{R:()=>s,x:()=>c});var t=r(6540);const o={},a=t.createContext(o);function s(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9cf8b934.b74bd8e9.js b/assets/js/9cf8b934.b74bd8e9.js new file mode 100644 index 000000000..cc43f484b --- /dev/null +++ b/assets/js/9cf8b934.b74bd8e9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkformal_land=self.webpackChunkformal_land||[]).push([[440],{7185:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>a,default:()=>p,frontMatter:()=>s,metadata:()=>c,toc:()=>m});var t=r(4848),o=r(8453);const s={},a="\ud83e\uddd1\u200d\ud83d\udcbc Careers",c={id:"company/careers",title:"\ud83e\uddd1\u200d\ud83d\udcbc Careers",description:"Our team is currently complete. In general, we work from Paris or remotely.",source:"@site/docs/company/careers.md",sourceDirName:"company",slug:"/company/careers",permalink:"/docs/company/careers",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"sidebar",previous:{title:"\ud83d\udce3 Claims",permalink:"/docs/company/claims"},next:{title:"\ud83d\udcdc Press",permalink:"/docs/company/press"}},i={},m=[];function l(e){const n={admonition:"admonition",h1:"h1",p:"p",...(0,o.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"-careers",children:"\ud83e\uddd1\u200d\ud83d\udcbc Careers"}),"\n",(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsx)(n.p,{children:"Our team is currently complete. In general, we work from Paris or remotely."})})]})}function p(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>a,x:()=>c});var t=r(6540);const o={},s=t.createContext(o);function a(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.52634624.js b/assets/js/runtime~main.1d7bfe8e.js similarity index 99% rename from assets/js/runtime~main.52634624.js rename to assets/js/runtime~main.1d7bfe8e.js index b920c88a8..b8cc0ea3d 100644 --- a/assets/js/runtime~main.52634624.js +++ b/assets/js/runtime~main.1d7bfe8e.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,c,b,f,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={exports:{}};return d[e].call(c.exports,c,c.exports,r),c.exports}r.m=d,e=[],r.O=(a,c,b,f)=>{if(!c){var d=1/0;for(i=0;iOur team is currently complete.
If you are knowledgeable in functional programming / theorem provers and want to work with us, contact us. We provide positions in Paris or remote.
-