Network


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

Hotspot


Dive into the research topics where Joachim Breitner is active.

Publication


Featured researches published by Joachim Breitner.


international conference on functional programming | 2014

Safe zero-cost coercions for Haskell

Joachim Breitner; Richard A. Eisenberg; Simon L. Peyton Jones; Stephanie Weirich

Generative type abstractions -- present in Haskell, OCaml, and other languages -- are useful concepts to help prevent programmer errors. They serve to create new types that are distinct at compile time but share a run-time representation with some base type. We present a new mechanism that allows for zero-cost conversions between generative type abstractions and their representations, even when such types are deeply nested. We prove type safety in the presence of these conversions and have implemented our work in GHC.


interactive theorem proving | 2016

Visual Theorem Proving with the Incredible Proof Machine

Joachim Breitner

The Incredible Proof Machine is an easy and fun to use program to conduct formal proofs. It employs a novel, intuitive proof representation based on port graphs, which is akin to, but even more natural than, natural deduction. In particular, we describe a way to determine the scope of local assumptions and variables implicitly. Our practical classroom experience backs these claims.


symposium/workshop on haskell | 2015

Formally proving a compiler transformation safe

Joachim Breitner

We prove that the Call Arity analysis and transformation, as implemented in the Haskell compiler GHC, is safe, i.e. does not impede the performance of the program. We formalized syntax, semantics, the analysis and the transformation in the interactive theorem prover Isabelle to obtain a machine-checked proof and hence a level of rigor rarely obtained for compiler optimization safety theorems. The proof is modular and introduces trace trees as a suitable abstraction in abstract cardinality analyses. We discuss the breadth of the formalization gap.


principles of security and trust | 2016

On Improvements of Low-Deterministic Security

Joachim Breitner; Jürgen Graf; Martin Hecker; Martin Mohr; Gregor Snelting

Low-security observable determinism LSOD, as introduced by Roscoe and Zdancewic [18, 24], is the simplest criterion which guarantees probabilistic noninterference for concurrent programs. But LSOD prohibits any, even secure low-nondeterminism. Giffhorn developed an improvement, named RLSOD, which allows some secure low-nondeterminism, and can handle full Java with high precision [5]. In this paper, we describe a new generalization of RLSOD. By applying aggressive program analysis, in particular dominators for multi-threaded programs, precision can be boosted and false alarms minimized. We explain details of the new algorithm, and provide a soundness proof. The improved RLSOD is integrated into the JOANA tool; a case study is described. We thus demonstrate that low-deterministic security is a highly precise and practically mature software security analysis method.


Journal of Functional Programming | 2018

The adequacy of Launchbury's natural semantics for lazy evaluation

Joachim Breitner

In his seminal paper “A Natural Semantics for Lazy Evaluation”, John Launchbury proves his semantics correct with respect to a denotational semantics, and outlines a proof of adequacy. Previous attempts to rigorize the adequacy proof, which involves an intermediate natural semantics and an intermediate resourced denotational semantics, have failed. We devised a new, direct proof that skips the intermediate natural semantics. It is the first rigorous adequacy proof of Launchbury’s semantics. We have modeled our semantics in the interactive theorem prover Isabelle and machine-checked our proofs. This does not only provide a maximum level of rigor, but also serves as a tool for further work, such as a machine-checked correctness proof of a compiler transformation.


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.


Archive | 2018

Illi Isabellistes Se Custodes Egregios Praestabant

Simon Bischof; Joachim Breitner; Denis Lohner; Gregor Snelting

We present two new results in machine-checked formalizations of programming languages. (1) Probabilistic Noninterference is a central notion in software security analysis. We present the first Isabelle formalization of low-security observational determinism (“LSOD”), together with a proof that LSOD implies probabilistic noninterference. The formalization of LSOD uses a flow-sensitive definition of low-equivalent traces, which drastically improves precision. (2) We present the first full and machine-checked proof that Launchbury’s well-known semantics of the lazy lambda calculus is correct as well as adequate. The proof catches a bug in Launchbury’s original proof, which was open for many years.


Journal of Computer Security | 2018

Low-deterministic security for low-nondeterministic programs

Simon Bischof; Joachim Breitner; Jürgen Graf; Martin Hecker; Martin Mohr; Gregor Snelting

We present a new algorithm, together with a full soundness proof, which guarantees probabilistic noninterference (PN) for concurrent programs. The algorithm follows the “low-deterministic security” (LSOD) approach, but for the first time allows general low-nondeterminism as long as PN is not violated. The algorithm is based on the earlier observation by Giffhorn and Snelting that low-nondeterminism is secure as long as it is not influenced by high events [1]. It uses a new system of classification flow equations in multi-threaded programs, together with inter-thread / interprocedural dominators. Compared to LSOD and even [1], precision is boosted and false alarms are minimized. We explain details of the new algorithm and its soundness proof. The algorithm is integrated into the JOANA software security tool, and can handle full Java with arbitrary threads. We apply JOANA to a multi-threaded e-voting system, and show how the algorithm eliminates false alarms. We thus demonstrate that low-deterministic security is a highly precise and practically mature software security analysis method.


The Archive of Formal Proofs | 2016

The meta theory of the Incredible Proof Machine.

Joachim Breitner; Denis Lohner


The Archive of Formal Proofs | 2013

The Correctness of Launchbury's Natural Semantics for Lazy Evaluation.

Joachim Breitner

Collaboration


Dive into the Joachim Breitner's collaboration.

Top Co-Authors

Avatar

Stephanie Weirich

University of Pennsylvania

View shared research outputs
Top Co-Authors

Avatar

Gregor Snelting

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Denis Lohner

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Jürgen Graf

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Martin Hecker

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Martin Mohr

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Simon Bischof

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge