David Sabel

dblp:56/1569 · DBLP profile ↗
← Back
22ranked-venue papers
7as first author
2since 2021 · last 2023
0000-0002-5109-3273ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Theory of computation · 17 · 6 first-author · 1 since 2021Software engineering, systems software and programming languages · 10 · 3 first-author · 2 since 2021Databases, data management, data science and information retrieval · 2Artificial intelligence and machine learning · 1 · 1 first-author
YearPublicationVenuePosition
2023 Program equivalence in a typed probabilistic call-by-need functional language
Manfred Schmidt-Schauß, David Sabel
J. Log. Algebraic Methods Program.2
2022 Contextual Equivalence in a Probabilistic Call-by-Need Lambda-Calculus
abstract
To support the understanding of declarative probabilistic programming languages, we introduce a lambda-calculus with a fair binary probabilistic choice that chooses between its arguments with equal probability. The reduction strategy of the calculus is a call-by-need strategy that performs lazy evaluation and implements sharing by recursive let-expressions. Expected convergence of expressions is the limit of the sum of all successful reduction outputs weighted by their probability. We use contextual equivalence as program semantics: two expressions are contextually equivalent if and only if the expected convergence of the expressions plugged into any program context is always the same. We develop and illustrate techniques to prove equivalences including a context lemma, two derived criteria to show equivalences and a syntactic diagram-based method. This finally enables us to show correctness of a large set of program transformations with respect to the contextual equivalence.
David Sabel, Manfred Schmidt-Schauß, Luca Maio
PPDP1
2019 Nominal unification with atom-variables
Manfred Schmidt-Schauß, David Sabel, Yunus D. K. Kutz
J. Symb. Comput.2
2018 Sequential and Parallel Improvements in a Concurrent Functional Programming Language
abstract
We propose a model for measuring the runtime of concurrent programs by the minimal number of evaluation steps. The focus of this paper are improvements, which are program transformations that improve this number in every context, where we distinguish between sequential and parallel improvements, for one or more processors, respectively. We apply the methods to CHF, a model of Concurrent Haskell extended by futures allowing declarative implementations of concurrent programs. The language CHF is a typed higher-order functional language with concurrent threads, monadic IO and MVars as synchronizing variables. We show that all deterministic reduction rules and several further useful program transformations are sequential and parallel improvements.
Manfred Schmidt-Schauß, David Sabel, Nils Dallmeyer
PPDP2
2017 Alpha-renaming of higher-order meta-expressions
abstract
Motivated by tools for automated deduction on functional programming languages and programs, we propose a formalism to symbolically represent α-renamings for meta-expressions. The formalism is an extension of higher-order meta-syntax which allows one to α-rename all valid ground instances of a meta-expression to fulfill the distinct variable convention. The renaming mechanism may be helpful for several reasoning tasks in deduction systems. We present our approach for a meta-language which uses higher-order operators and meta-notation for recursive let-bindings, contexts, and environments. It is used in the LRSX Tool - a tool to reason on the correctness of program transformations in higher-order program calculi with respect to their operational semantics. Besides introducing symbolic α-renamings, we present and analyze algorithms for simplification of α-renamings, matching, rewriting, and checking α-equivalence of symbolically α-renamed meta-expressions.
David Sabel
PPDP1
2017 Improvements in a call-by-need functional core language: Common subexpression elimination and resource preserving translations
Manfred Schmidt-Schauß, David Sabel
Sci. Comput. Program.2
2016 Unification of program expressions with recursive bindings
abstract
This paper presents an algorithm for unification of meta-expressions of higher-order lambda calculi with recursive bindings. The meta-language uses higher-order abstract syntax. Besides usual unification variables for expressions and term variables, there are context-variables for generalized shapes of contexts, environment variables for sets of bindings, and (flexible) chain-variables as they, for instance, occur in formal descriptions of the operational semantics of lazy functional programming languages with shared environments. To exclude solutions with unintended scoping, the algorithm takes advantage of so-called non-capture constraints. The expressiveness of the meta-language comprises reduction contexts to support reasoning on program evaluation under reduction strategies. The non-deterministic unification algorithm runs in polynomial time provided certain restrictions on the number of occurrences of unification variables hold. The deterministic version of the algorithm will output a finite and concise set of representatives of all solutions. Results on an implementation of the algorithm are presented. The experiments focus on computing critical pairs of equations from program calculi modeling lazy functional languages which support the reasoning on the correctness of program transformations.
Manfred Schmidt-Schauß, David Sabel
PPDP2
2015 Improvements in a functional core language with call-by-need operational semantics
abstract
An improvement is a correct program transformation that optimizes the program, where the criterion is that the number of computation steps until a value is obtained is not increased in any context. This paper investigates improvements an untyped call-by-need lambdacalculus with letrec, case, constructors and seq. Besides showing that several local optimizations are improvements, the main result of the paper is a proof that common subexpression elimination is correct and an improvement, which proves a conjecture and thus closes a gap in the improvement theory of Moran and Sands. We also prove that several different length measures used for improvement in the call-by-need calculus of Moran and Sands and our calculus are equivalent.
Manfred Schmidt-Schauß, David Sabel
PPDP2
2015 Transforming Cycle Rewriting into String Rewriting
abstract
We present new techniques to prove termination of cycle rewriting, that is, string rewriting on cycles, which are strings in which the start and end are connected. Our main technique is to transform cycle rewriting into string rewriting and then apply state of the art techniques to prove termination of the string rewrite system. We present three such transformations, and prove for all of them that they are sound and complete. Apart from this transformational approach, we extend the use of matrix interpretations as was studied before. We present several experiments showing that often our new techniques succeed where earlier techniques fail.
David Sabel, Hans Zantema
RTA1
2015 Observational program calculi and the correctness of translations
Manfred Schmidt-Schauß, David Sabel, Joachim Niehren, Jan Schwinghammer
Theor. Comput. Sci.2
2013 Correctness of an STM Haskell implementation
abstract
A concurrent implementation of software transactional memory in Concurrent Haskell using a call-by-need functional language with processes and futures is given. The description of the small-step operational semantics is precise and explicit, and employs an early abort of conflicting transactions. A proof of correctness of the implementation is given for a contextual semantics with may- and should-convergence. This implies that our implementation is a correct evaluator for an abstract specification equipped with a big-step semantics.
Manfred Schmidt-Schauß, David Sabel
ICFP2
2013 Extending Abramsky's Lazy Lambda Calculus: (Non)-Conservativity of Embeddings
abstract
Our motivation is the question whether the lazy lambda calculus, a pure lambda calculus with the leftmost outermost rewriting strategy, considered under observational semantics, or extensions thereof, are an adequate model for semantic equivalences in real-world purely functional programming languages, in particular for a pure core language of Haskell. We explore several extensions of the lazy lambda calculus: addition of a seq-operator, addition of data constructors and case-expressions, and their combination, focusing on conservativity of these extensions. In addition to untyped calculi, we study their monomorphically and polymorphically typed versions. For most of the extensions we obtain non-conservativity which we prove by providing counterexamples. However, we prove conservativity of the extension by data constructors and case in the monomorphically typed scenario.
Manfred Schmidt-Schauß, Elena Machkasova, David Sabel
RTA3
2013 Algorithms for Extended Alpha-Equivalence and Complexity
abstract
Equality of expressions in lambda-calculi, higher-order programming languages, higher-order programming calculi and process calculi is defined as alpha-equivalence. Permutability of bindings in let-constructs and structural congruence axioms extend alpha-equivalence. We analyse these extended alpha-equivalences and show that there are calculi with polynomial time algorithms, that a multiple-binding "let" may make alpha-equivalence as hard as finding graph-isomorphisms, and that the replication operator in the pi-calculus may lead to an EXPSPACE-hard alpha-equivalence problem.
Manfred Schmidt-Schauß, Conrad Rau, David Sabel
RTA3
2013 A Two-Valued Logic for Properties of Strict Functional Programs Allowing Partial Functions
David Sabel, Manfred Schmidt-Schauß
J. Autom. Reason.1
2012 Conservative Concurrency in Haskell
abstract
The calculus CHF models Concurrent Haskell extended by concurrent, implicit futures. It is a lambda and process calculus with concurrent threads, monadic concurrent evaluation, and includes a pure functional lambda-calculus PF which comprises data constructors, case-expressions, letrec-expressions, and Haskell's seq. Our main result is conservativity of CHF as extension of PF. This allows us to argue that compiler optimizations and transformations from pure Haskell remain valid in Concurrent Haskell even if it is extended by futures. We also show that conservativity does no longer hold if the extension includes Concurrent Haskell and unsafe Interleave IO.
David Sabel, Manfred Schmidt-Schauß
LICS1
2011 A contextual semantics for concurrent Haskell with futures
abstract
In this paper we analyze the semantics of a higher-order functional language with concurrent threads, monadic IO and synchronizing variables as in Concurrent Haskell. To assure declarativeness of concurrent programming we extend the language by implicit, monadic, and concurrent futures. As semantic model we introduce and analyze the process calculus CHF, which represents a typed core language of Concurrent Haskell extended by concurrent futures. Evaluation in CHF is defined by a small-step reduction relation. Using contextual equivalence based on may- and should-convergence as program equivalence, we show that various transformations preserve program equivalence. We establish a context lemma easing those correctness proofs. An important result is that call-by-need and call-by-name evaluation are equivalent in CHF, since they induce the same program equivalence. Finally we show that the monad laws hold in CHF under mild restrictions on Haskell's seq-operator, which for instance justifies the use of the do-notation.
David Sabel, Manfred Schmidt-Schauß
PPDP1
2011 Counterexamples to applicative simulation and extensionality in non-deterministic call-by-need lambda-calculi with letrec
Manfred Schmidt-Schauß, David Sabel, Elena Machkasova
Inf. Process. Lett.2
2010 Simulation in the Call-by-Need Lambda-Calculus with letrec
abstract
This paper shows the equivalence of applicative similarity and contextual approximation, and hence also of bisimilarity and contextual equivalence, in the deterministic call-by-need lambda calculus with letrec. Bisimilarity simplifies equivalence proofs in the calculus and opens a way for more convenient correctness proofs for program transformations. Although this property may be a natural one to expect, to the best of our knowledge, this paper is the first one providing a proof. The proof technique is to transfer the contextual approximation into Abramsky's lazy lambda calculus by a fully abstract and surjective translation. This also shows that the natural embedding of Abramsky's lazy lambda calculus into the call-by-need lambda calculus with letrec is an isomorphism between the respective term-models. We show that the equivalence property proven in this paper transfers to a call-by-need letrec calculus developed by Ariola and Felleisen.
Manfred Schmidt-Schauß, David Sabel, Elena Machkasova
RTA2
2010 Closures of may-, should- and must-convergences for contextual equivalence
Manfred Schmidt-Schauß, David Sabel
Inf. Process. Lett.2
2010 On generic context lemmas for higher-order calculi with sharing
Manfred Schmidt-Schauß, David Sabel
Theor. Comput. Sci.2
2008 Safety of Nöcker's strictness analysis
abstract
Abstract This paper proves correctness of Nöcker's method of strictness analysis, implemented in the Clean compiler, which is an effective way for strictness analysis in lazy functional languages based on their operational semantics. We improve upon the work Clark, Hankin and Hunt did on the correctness of the abstract reduction rules in two aspects. Our correctness proof is based on a functional core language and a contextual semantics, thus proving a wider range of strictness-based optimizations as correct, and our method fully considers the cycle detection rules, which contribute to the strength of Nöcker's strictness analysis. Our algorithm SAL is a reformulation of Nöcker's strictness analysis algorithm in a functional core language LR. This is a higher order call-by-need lambda calculus with case , constructors, letrec , and seq , which is extended during strictness analysis by set constants like Top or Inf , denoting sets of expressions, which indicate different evaluation demands. It is also possible to define new set constants by recursive equations with a greatest fixpoint semantics. The operational semantics of LR is a small-step semantics. Equality of expressions is defined by a contextual semantics that observes termination of expressions. Basically, SAL is a nontermination checker. The proof of its correctness and hence of Nöcker's strictness analysis is based mainly on an exact analysis of the lengths of evaluations, i.e., normal-order reduction sequences to WHNF. The main measure being the number of “essential” reductions in evaluations. Our tools and results provide new insights into call-by-need lambda calculi, the role of sharing in functional programming languages, and into strictness analysis in general. The correctness result provides a foundation for Nöcker's strictness analysis in Clean, and also for its use in Haskell.
Manfred Schmidt-Schauß, David Sabel, Marko Schütz
J. Funct. Program.2
2008 A call-by-need lambda calculus with locally bottom-avoiding choice: context lemma and correctness of transformations
abstract
We present a higher-order call-by-need lambda calculus enriched with constructors,caseexpressions, recursiveletrecexpressions, aseqoperator for sequential evaluation and a non-deterministic operatorambthat is locally bottom-avoiding. We use a small-step operational semantics in the form of a single-step rewriting system that defines a (non-deterministic) normal-order reduction. This strategy can be made fair by adding resources for book-keeping. As equational theory, we use contextual equivalence (that is, terms are equal if, when plugged into any program context, their termination behaviour is the same), in which we use a combination of may- and must-convergence, which is appropriate for non-deterministic computations. We show that we can drop the fairness condition for equational reasoning, since the valid equations with respect to normal-order reduction are the same as for fair normal-order reduction. We develop a number of proof tools for proving correctness of program transformations. In particular, we prove a context lemma for both may- and must- convergence that restricts the number of contexts that need to be examined for proving contextual equivalence. Combining this with so-called complete sets of commuting and forking diagrams, we show that all the deterministic reduction rules and some additional transformations preserve contextual equivalence. We also prove a standardisation theorem for fair normal-order reduction. The structure of the ordering ≤cis also analysed, and we show that Ω is not a least element and ≤calready implies contextual equivalence with respect to may-convergence.
David Sabel, Manfred Schmidt-Schauß
Math. Struct. Comput. Sci.1