Tech Talk: Verifying C programs in Coq using VST

Abstract C programs are notoriously difficult to reason about, either for safety or full functional correctness. Even with a program logic powerful enough to prove the necessary properties, the proof has the assumption that the compiler behaves exactly the way it is expected to. Verified Software Toolchain (VST) answers this problem by providing a logic […]

Read More

Tech Talk: Vinyl: Records in Haskell & Type Theory

abstract: Records in Haskell are notoriously difficult to compose; many solutions have been proposed. Vinyl lies in the space of library-level approaches, and addresses polymorphism, extensibility, effects and strictness. I describe how Vinyl approaches record families over arbitrary key spaces using a Tarski universe construction, as well as a method for immersing each field of […]

Read More

Tech Talk: Sunroof and a Blank Canvas: A Tale of Two DSLs

Abstract Sunroof is an embedded Haskell Domain Specific Language (DSL) that compiles to JavaScript. Blank Canvas is an embedded Haskell DSL that provides direct access to the HTML5 JavaScript Canvas. Both DSLs superficially provide the same capabilities, but make different trade-offs in the DSL design space. Sunroof uses monadic reification to enable bindings in the […]

Read More

Tech Talk: Getting a Quick Fix on Comonads

Abstract While the monad abstraction has risen to a certain flavor of fame in the Haskell community and beyond, its equally fascinating dual, the comonad, remains relatively unknown. I’ll tell the tale of my exploration into comonadic structures and computation, which led me to the creation of a library for concisely and generically expressing efficient […]

Read More

Tech Talk: Haskell Bytes

Abstract We will take you on a guided tour through the memory of a running Haskell program and get to peek at the raw bytes of Haskell values. We’ll see how uniformity allows for polymorphic functions and data structures, where the garbage collector finds the information it needs and learn to predict how large certain values tend to become. With […]

Read More

Tech Talk: Formal Verification of Cyber-Physical Systems

Abstract Cyber-Physical Systems (CPS) refer to systems in which control, computation and communication converge to achieve complex functionalities. The ubiquitous deployment of cyber-physical systems in safety critical applications including aeronautics, automotive, medical devices and industrial process control, has pressurized the need for the development of automated analysis methods to aid the design of high-confidence systems. The talk will focus on an […]

Read More

Tech Talk: Correct-By-Construction Control Synthesis in Model-Based Design of Autonomous Systems

abstract: How can we affordably build trustworthy autonomous, networked systems? Partly motivated by this question, I describe a shift from the traditional “design+verify” approach to “specify+synthesize” in model-based engineering. I then discuss our recent results on automated synthesis of correct-by-construction, hierarchical control protocols. These results account for hybrid dynamics that are subject to rich temporal logic specifications and heterogenous uncertainties, and that […]

Read More

Interview: Crowd-sourcing Software Verification

Aaron Tomb recently gave an interview with the Machine Intelligence Research Institute (MIRI) about what Galois is doing on DARPA’s Crowd Sourced Formal Verification (CSFV) program to crowd-source the problem of software verification. Read the article here: http://intelligence.org/2014/05/29/aaron-tomb/

Read More

Galois’ Work for DARPA HACMS in the News

Galois continues to advance building secure, hack-proof critical flight control software in its work on SMACCMPilot, part of DARPA’s High Assurance Cyber Military Systems (HACMS) program. We demonstrated technology developed to-date under this program at DARPA I2O’s Demo Day on May 21 at the Pentagon. Read more about the program and what our team is doing in this article recently published […]

Read More

Cryptol Version 2 Released (and open sourced!)

We are pleased to announce the open source release of Cryptol version 2.  Bugs in crypto code have been in the news lately – Cryptol helps developers detect (or avoid) correctness errors in cryptographic code. What Cryptol does is reduce the gap between the reference specification of a cryptographic algorithm and an executable version which […]

Read More