Tue 9 Jan 2018 11:00 - 11:30 at Rose - Functional Programming

Verifiable computing (VC) uses cryptography to delegate computation to untrusted workers. But in most VC schemes, the delegated program must first be arithmetized – expressed as a circuit with multiplication and addition over a finite field. Previous work has compiled subsets of languages like C, LLVM, and bespoke assembly to arithmetic circuits. In this paper, we report on a new DSL for VC, called Snaarkl (``Snorkel''), that supports encodings of language features familiar from functional programming such as products, case analysis, and inductive datatypes. We demonstrate that simple constraint-minimization techniques are an effective means of optimizing and solving the resulting encodings, and therefore of generating and constructing witnesses for small circuits.

Tue 9 Jan

Displayed time zone: Tijuana, Baja California change

10:30 - 12:00
Functional ProgrammingPADL at Rose
10:30
30m
Talk
Hygienic Source-Code Generation Using Functors
PADL
A: Karl Crary Carnegie Mellon University
11:00
30m
Talk
Snaarkl: Somewhat Practical, Pretty Much Declarative Verifiable Computing in Haskell
PADL
A: Gordon Stewart Ohio University, A: Samuel Merten , A: Logan Leland
11:30
30m
Talk
Rewriting High-Level Spreadsheet Structures into Higher-Order Functional Programs
PADL
A: Florian Biermann IT University of Copenhagen, Wensheng Dou Institute of Software, Chinese Academy of Sciences, China, A: Peter Sestoft IT University of Copenhagen