Galois, Inc. » Functional Programming
19 FOLLOWERS
This section features articles on Functional Programming. Galois develops technology to guarantee the trustworthiness of systems where failure is unacceptable by applying cutting edge scientific techniques.
Galois, Inc. » Functional Programming
2y ago
Microsoft Research recently published a pre-release of Lean 4. Prior versions of Lean focused on being a proof assistant – a software tool that facilitates the development of rigorous mathematical proof through a form of interactive human-machine teaming. The main application of Lean so far has been to digitize theoretical mathematics.
A major goal of Lean 4 is to make Lean a good programming language rather than just a proof assistant. The syntax has been reworked in many ways to make it easier to write a wider variety of programs. An optimizing compiler that generates efficie ..read more
Galois, Inc. » Functional Programming
2y ago
At Galois, we develop formal verification tools that rely on a variety of automated solvers for answering mathematical queries. The main solvers we use are called Satisfiability Modulo Theories (SMT) solvers. These solvers offer the ability to answer questions such as “find me inputs for which a mathematical property holds.” We have found these tools to be very useful. There are a variety of solvers developed that support different problem domains and are very efficient at solving complex constraint systems. Among other things, we have used them to verify the correctness of many cr ..read more
Galois, Inc. » Functional Programming
2y ago
Check out these ICFP presentations by Galois team members:
Efficient Lookup-Table Protocol in Secure Multiparty Computation Video Presentation
John Launchbury: watch video – http://www.youtube.com/watch?v=I79PwWpUx9c
Paper
John Launchbury, Iavor S. Diatchki, Thomas DuBuisson, and Andy Adams-Moran. 2012. Efficient lookup-table protocol in secure multiparty computation. In “Proceedings of the 17th ACM SIGPLAN International Conference on Functional Programming” (ICFP ’12). ACM, New York, NY, USA, 189-200.
Experience Report: A Do-It-Yourself High Assurance Compiler Video Presentation
Lee Pike: wat ..read more
Galois, Inc. » Functional Programming
2y ago
Galois is pleased to host the following tech talk. These talks are open to the interested public. Please join us!
title:Combining Denotational and Operational Semantics for Scalable Proof Development
speakers:Adam Foltzer
time:Tuesday, 19 July 2011, 10:30am
location:
Galois Inc.
421 SW 6th Ave. Suite 300,
Portland, OR, USA
(3rd floor of the Commonwealth building)
abstract:Interpreters offer a convenient and intuitive way for programmers to reason about language behavior through denotational semantics. However in a setting like Coq, where all recursive functions must provably terminate, it is i ..read more
Galois, Inc. » Functional Programming
2y ago
Galois is in the business of building trustworthy software. Such software will have well-defined behavior, and that behavior is assured in some way, whether via model checking, testing, or formal verification. SMT solvers — extensions to SAT solvers with support for variables of non-boolean type — offer powerful automation for solving a variety of assurance problems in software. We use them, for example, in Cryptol, to prove the equivalence (or otherwise) of algorithm implementations.
For a while now, Galois has been interested in connecting automated solvers to our programming language of cho ..read more
Galois, Inc. » Functional Programming
2y ago
Performing consistent builds is critical in software development, but the current system in GHC/Haskell of per-user and per-system GHC package databases interferes with this need for consistency. It is difficult to precisely identify the dependencies of a given project, and changes necessary to enable one project to build may render another project inoperable. If each project had a separate package database, each project could be built in a sandbox.
Galois has released cabal-dev: a tool for managing development builds of Haskell projects within sandboxes.
Both cabal-install repositories ..read more
Galois, Inc. » Functional Programming
2y ago
Copilot is an embedded domain-specific language designed by Galois, that allows you to generate assured, embedded C code from programs written essentially as Haskell lists (using Atom as a backend for the C code generation).
Lee Pike has written a tutorial on how to use Copilot to program an Arduino controller to play “Jingle Bells”. Read the full tutorial on Lee’s Critical Systems Blog…
The post Copilot and the Arduino appeared first on Galois, Inc ..read more
Galois, Inc. » Functional Programming
2y ago
During BelHac, the Ghent Haskell Hackathon in November, we took an afternoon session for a “Functional Programming in Industry” impromptu workshop. The following are slides I presented on Galois’ experience building a business using our functional programming expertise, in particular, Haskell.
The talk describes three case studies where “functional thinking” helped shape the solution to the client’s problem, whether via types, semantics, abstractions or otherwise. The examples are taken from the Cryptol, Embedded Systems and Secure Networking research programs at Galois. A PDF of the slid ..read more
Galois, Inc. » Functional Programming
2y ago
Galois is offering a four‐day Cryptol course for those interested in exploring the capabilities of the Cryptol workbench.The course is highly participatory: we will work on a series of exercises for each new topic, using the Cryptol toolset interactively. Prospective participants should have experience writing programs and some knowledge of cryptography. Those who complete the course will have the skills necessary to develop high‐assurance, high‐performance cryptographic algorithms in Cryptol. A tentative outline and further information can be found in the course flyer.
The post Cryptol C ..read more
Galois, Inc. » Functional Programming
2y ago
John Launchbury presented the Orc language for concurrent scripting at the Haskell Workshop, 2010 in Baltimore.
Concurrent Orchestration in Haskell
John Launchbury
Trevor Elliott
The talk slides are available in PDF or online.
We present a concurrent scripting language embedded in Haskell, emulating the functionality of the Orc orchestration language by providing many-valued (real) non-determinism in the context of concurrent effects. We provide many examples of its use, as well as a brief description of how we use the embedded Orc DSL in practice. We describe the a ..read more