English
Related papers

Related papers: Refinement Types as Higher Order Dependency Pairs

200 papers

Refinement types enrich a language's type system with logical predicates that circumscribe the set of values described by the type, thereby providing software developers a tunable knob with which to inform the type system about what…

Programming Languages · Computer Science 2020-10-16 Ranjit Jhala , Niki Vazou

Refinement types sharpen systems of simple and dependent types by offering expressive means to more precisely classify well-typed terms. We present a system of refinement types for LF in the style of recent formulations where only canonical…

Programming Languages · Computer Science 2015-07-01 William Lovas , Frank Pfenning

Dependently typed programming languages allow sophisticated properties of data to be expressed within the type system. Of particular use in dependently typed programming are indexed types that refine data by computationally useful…

Logic in Computer Science · Computer Science 2015-07-01 Robert Atkey , Patricia Johann , Neil Ghani

Dependency pairs are a key concept at the core of modern automated termination provers for first-order term rewriting systems. In this paper, we introduce an extension of this technique for a large class of dependently-typed higher-order…

Logic in Computer Science · Computer Science 2020-07-16 Frédéric Blanqui , Guillaume Genestier , Olivier Hermant

Refinement types are types equipped with predicates that specify preconditions and postconditions of underlying functional languages. We propose a general semantic construction of dependent refinement type systems from underlying type…

Logic in Computer Science · Computer Science 2020-10-19 Satoshi Kura

Verification of higher-order probabilistic programs is a challenging problem. We present a verification method that supports several quantitative properties of higher-order probabilistic programs. Usually, extending verification methods to…

Logic in Computer Science · Computer Science 2024-07-04 Satoshi Kura , Hiroshi Unno

Refinement types turn typechecking into lightweight verification. The classic form of refinement type is the datasort refinement, in which datasorts identify subclasses of inductive datatypes. Existing type systems for datasort refinements…

Programming Languages · Computer Science 2020-11-17 Jana Dunfield

Session types capture precise protocol structure in concurrent programming, but do not specify properties of the exchanged values beyond their basic type. Refinement types are a form of dependent types that can address this limitation,…

Logic in Computer Science · Computer Science 2012-11-20 Pedro Baltazar , Dimitris Mostrous , Vasco T. Vasconcelos

We present a method for synthesizing recursive functions that provably satisfy a given specification in the form of a polymorphic refinement type. We observe that such specifications are particularly suitable for program synthesis for two…

Programming Languages · Computer Science 2016-04-22 Nadia Polikarpova , Ivan Kuraj , Armando Solar-Lezama

This article is concerned with automated complexity analysis of term rewrite systems. Since these systems underlie much of declarative programming, time complexity of functions defined by rewrite systems is of particular interest. Among…

Logic in Computer Science · Computer Science 2011-06-02 Nao Hirokawa , Georg Moser

Refinement types decorate types with assertions that enable automatic verification. Like assertions, refinements are limited to binders that are in scope, and hence, cannot express higher-order specifications. Ghost variables circumvent…

Programming Languages · Computer Science 2021-05-06 Anish Tondwalkar , Matthew Kolosick , Ranjit Jhala

We revisit the static dependency pair method for proving termination of higher-order term rewriting and extend it in a number of ways: (1) We introduce a new rewrite formalism designed for general applicability in termination proving of…

Logic in Computer Science · Computer Science 2019-04-08 Carsten Fuhs , Cynthia Kop

Rewriting is a framework for reasoning about functional programming. The dependency pair criterion is a well-known mechanism to analyze termination of term rewriting systems. Functional specifications with an operational semantics based on…

Logic in Computer Science · Computer Science 2019-11-04 Ariane Alves Almeida , Mauricio Ayala-Rincon

The static dependency pair method is a method for proving the termination of higher-order rewrite systems a la Nipkow. It combines the dependency pair method introduced for first-order rewrite systems with the notion of strong computability…

Logic in Computer Science · Computer Science 2011-09-21 Sho Suzuki , Keiichirou Kusakari , Frédéric Blanqui

This dissertation introduces executable refinement types, which refine structural types by semi-decidable predicates, and establishes their metatheory and accompanying implementation techniques. These results are useful for undecidable type…

Programming Languages · Computer Science 2014-03-14 Kenneth Knowles

In this tutorial I will present how a combination of linear and dependent type can be useful to describe different properties about higher order programs. Linear types have been proved particularly useful to express properties of functions;…

Programming Languages · Computer Science 2013-07-01 Marco Gaboardi

We study the derivational complexity of rewrite systems whose termination is provable in the dependency pair framework using the processors for reduction pairs, dependency graphs, or the subterm criterion. We show that the derivational…

Logic in Computer Science · Computer Science 2011-03-29 Georg Moser , Andreas Schnabl

Refinement types enable lightweight verification of functional programs. Algorithms for statically inferring refinement types typically work by reduction to solving systems of constrained Horn clauses extracted from typing derivations. An…

Programming Languages · Computer Science 2020-11-11 Zvonimir Pavlinovic , Yusen Su , Thomas Wies

We propose a novel method for inferring refinement types of higher-order functional programs. The main advantage of the proposed method is that it can infer maximally preferred (i.e., Pareto optimal) refinement types with respect to a…

Programming Languages · Computer Science 2015-05-19 Kodai Hashimoto , Hiroshi Unno

Refinement types are a popular way to specify and reason about key program properties. In this paper, we introduce RTR, a new system that adds refinement types to Ruby. RTR is built on top of RDL, a Ruby type checker that provides basic…

Programming Languages · Computer Science 2017-11-28 Milod Kazerounian , Niki Vazou , Austin Bourgerie , Jeffrey S. Foster , Emina Torlak
‹ Prev 1 2 3 10 Next ›