Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Antal Spector-Zabusky is active.

Publication


Featured researches published by Antal Spector-Zabusky.


international conference on functional programming | 2013

Testing noninterference, quickly

Catalin Hritcu; John Hughes; Benjamin C. Pierce; Antal Spector-Zabusky; Dimitrios Vytiniotis; Arthur Azevedo de Amorim; Leonidas Lampropoulos

Information-flow control mechanisms are difficult to design and labor intensive to prove correct. To reduce the time wasted on proof attempts doomed to fail due to broken definitions, we advocate modern random testing techniques for finding counterexamples during the design process. We show how to use QuickCheck, a property-based random-testing tool, to guide the design of a simple information-flow abstract machine. We find that both sophisticated strategies for generating well-distributed random programs and readily falsifiable formulations of noninterference properties are critically important. We propose several approaches and evaluate their effectiveness on a collection of injected bugs of varying subtlety. We also present an effective technique for shrinking large counterexamples to minimal, easily comprehensible ones. Taken together, our best methods enable us to quickly and automatically generate simple counterexamples for all these bugs.


certified programs and proofs | 2018

Total Haskell is reasonable Coq

Antal Spector-Zabusky; Joachim Breitner; Christine Rizkallah; Stephanie Weirich

We would like to use the Coq proof assistant to mechanically verify properties of Haskell programs. To that end, we present a tool, named hs-to-coq, that translates total Haskell programs into Coq programs via a shallow embedding. We apply our tool in three case studies – a lawful Monad instance, “Hutton’s razor”, and an existing data structure library – and prove their correctness. These examples show that this approach is viable: both that hs-to-coq applies to existing Haskell code, and that the output it produces is amenable to verification.


international conference on functional programming | 2018

Ready, Set, Verify! Applying hs-to-coq to Real-World Haskell Code (Experience Report)

Joachim Breitner; Antal Spector-Zabusky; Yao Li; Christine Rizkallah; John Wiegley; Stephanie Weirich

Good tools can bring mechanical verification to programs written in mainstream functional languages. We use hs-to-coq to translate significant portions of Haskell’s containers library into Coq, and verify it against specifications that we derive from a variety of sources including type class laws, the library’s test suite, and interfaces from Coq’s standard library. Our work shows that it is feasible to verify mature, widely-used, highly optimized, and unmodified Haskell code. We also learn more about the theory of weight-balanced trees, extend hs-to-coq to handle partiality, and – since we found no bugs – attest to the superb quality of well-tested functional code.


international symposium on haskell | 2017

Ode on a random urn (functional pearl)

Leonidas Lampropoulos; Antal Spector-Zabusky; Kenneth Foner

We present the urn, a simple tree-based data structure that supports sampling from and updating discrete probability distributions in logarithmic time. We avoid the usual complexity of traditional self-balancing binary search trees by not keeping values in a specific order. Instead, we keep the tree maximally balanced at all times using a single machine word of overhead: its size. Urns provide an alternative interface for the frequency combinator from the QuickCheck library that allows for asymptotically more efficient sampling from dynamically-updated distributions. They also facilitate backtracking in property-based random testing, and can be applied to such complex examples from the literature as generating well-typed lambda terms or information flow machine states, demonstrating significant speedups.


International Workshop on Bayesian Inference and Maximum Entropy Methods in Science and Engineering | 2017

Schrödinger’s Zebra: Applying Mutual Information Maximization to Graphical Halftoning

Antal Spector-Zabusky; Donald Spector

The graphical process of halftoning is, fundamentally, a communication process: an image made from a continuous set of possible grays, for example, is to be represented recognizably by elements that are only black or white. With this in mind, we ask what a halftoning algorithm would look like that maximizes the mutual information between images and their halftoned renditions. Here, we find such an algorithm and explore its properties. The algorithm is inherently probabilistic and bears an information theoretic similarity to features of quantum mechanical measurements, so we dub the method quantum halftoning. The algorithm provides greater discrimination of medium gray shades, and less so very dark or very light shades, as we show via both the algorithm’s mathematical structure and examples of its application. We note, in passing, some generalized applications of this algorithm. Finally, we conclude by showing that our methodology offers a tool to investigate Bayesian priors of the human visual system, and spell out a scheme to use the results of this paper to do so.


Proceedings of the 1st International Workshop on Type-Driven Development | 2016

choose your own derivative (extended abstract)

Jennifer Paykin; Antal Spector-Zabusky; Kenneth Foner

We discuss a generalization of the synchronization mechanism selective choice. We argue that selective choice can be extended to synchronize arbitrary data structures of events, based on a typing paradigm introduced by McBride: the derivatives of recursive data types. We discuss our work in progress implementing generalized selective choice as a Haskell library based on generic programming.


ieee symposium on security and privacy | 2015

Micro-Policies: Formally Verified, Tag-Based Security Monitors

Arthur Azevedo de Amorim; Maxime Dénès; Nick Giannarakis; Catalin Hritcu; Benjamin C. Pierce; Antal Spector-Zabusky; Andrew Tolmach


arXiv: Programming Languages | 2015

Towards a Fully Abstract Compiler Using Micro-Policies: Secure Compilation for Mutually Distrustful Components

Yannis Juglaret; Catalin Hritcu; Arthur Azevedo de Amorim; Benjamin C. Pierce; Antal Spector-Zabusky; Andrew Tolmach


arXiv: Programming Languages | 2018

Ready, Set, Verify! Applying hs-to-coq to real-world Haskell code.

Joachim Breitner; Antal Spector-Zabusky; Yao Li; Christine Rizkallah; John Wiegley; Stephanie Weirich


Archive | 2015

Formally Verified, Tag-Based Security Monitors

Arthur Azevedo de Amorim; Nick Giannarakis; Benjamin C. Pierce; Antal Spector-Zabusky; Andrew Tolmach

Collaboration


Dive into the Antal Spector-Zabusky's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Andrew Tolmach

Portland State University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Stephanie Weirich

University of Pennsylvania

View shared research outputs
Top Co-Authors

Avatar

Joachim Breitner

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Kenneth Foner

University of Pennsylvania

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge