English
Related papers

Related papers: A Relational Solver for Constraint-based Type Infe…

200 papers

We present an implementation of the relational programming language miniKanren as a set of combinators and syntax extensions for OCaml. The key feature of our approach is polymorphic unification, which can be used to unify data structures…

Programming Languages · Computer Science 2019-01-01 Dmitrii Kosarev , Dmitry Boulytchev

We present a statically typed embedding of relational programming (specifically a dialect of miniKanren with disequality constraints) in Haskell. Apart from handling types, our dialect extends standard relational combinator repertoire with…

Programming Languages · Computer Science 2024-09-02 Nikolai Kudasov , Artem Starikov

Relational programming enables program synthesis through a verifier-to-solver approach. An earlier paper introduced a functional conversion that mitigated some of the inherent performance overhead. However, the conversion was inelegant: it…

Programming Languages · Computer Science 2025-11-04 Igor Engel , Ekaterina Verbitskaia

We present {Kanren} (read: set-Kanren), an extension to miniKanren with constraints for reasoning about sets and association lists. {Kanren} includes first-class set objects, a functionally complete family of set-theoretic constraints…

Programming Languages · Computer Science 2025-10-06 Rafaello Sanna , William E. Byrd , Nada Amin

We present a formal study of semantics for the relational programming language miniKanren. First, we formulate a denotational semantics which corresponds to the minimal Herbrand model for definite logic programs. Second, we present…

Programming Languages · Computer Science 2020-09-18 Dmitry Rozplokhas , Andrey Vyatkin , Dmitry Boulytchev

We present Walrus, a functional relational programming language embedded in Haskell that extends the miniKanren model with type-polymorphic unification, on-demand laziness, and a range of usability features aimed at practical development.…

Programming Languages · Computer Science 2025-10-30 Santiago Cuéllar , Naomi Spargo , Jonathan Daugherty , David Darais

Over the past decade, reactive frameworks and languages have become the dominant programming paradigm in front-end web development. In this paradigm, user actions change application state, and those changes propagate reactively to derived…

Programming Languages · Computer Science 2024-09-02 Evan Donahue

We study conjunctive partial deduction, an advanced specialization technique aimed at improving the performance of logic programs, in the context of relational programming language miniKanren. We identify a number of issues, caused by…

Programming Languages · Computer Science 2021-09-08 Ekaterina Verbitskaia , Daniil Berezun , Dmitry Boulytchev

Sized types are a modular and theoretically well-understood tool for checking termination of recursive and productivity of corecursive definitions. The essential idea is to track structural descent and guardedness in the type system to make…

Programming Languages · Computer Science 2010-12-23 Andreas Abel

Synthesizing programs using example input/outputs is a classic problem in artificial intelligence. We present a method for solving Programming By Example (PBE) problems by using a neural model to guide the search of a constraint logic…

Machine Learning · Computer Science 2018-10-29 Lisa Zhang , Gregory Rosenblatt , Ethan Fetaya , Renjie Liao , William E. Byrd , Matthew Might , Raquel Urtasun , Richard Zemel

In this article, we give a brief overview of the current state and future potential of symbolic computation within the Python statistical modeling and machine learning community. We detail the use of miniKanren as an underlying framework…

Programming Languages · Computer Science 2020-06-01 Brandon T. Willard

miniKanren is a lightweight embedded language for logic and relational programming. Many of its useful features come from a distinctive search strategy, called interleaving search. However, with interleaving search conventional ways of…

Programming Languages · Computer Science 2022-03-07 Dmitry Rozplokhas , Dmitry Boulytchev

We propose semiringKanren, a relational programming language where each relation expression denotes a semiring array. We formalize a type system that restricts the arrays to finite size. We then define a semantics that is parameterized by…

Programming Languages · Computer Science 2025-09-29 Dmitri Volkov , Yafei Yang , Chung-chieh Shan

We present a framework for building CLP languages with symbolic constraints based on microKanren, a domain-specific logic language shallowly embedded in Racket. We rely on Racket's macro system to generate a constraint solver and other…

Programming Languages · Computer Science 2017-01-04 Jason Hemann , Daniel P. Friedman

We address the problem of local type inference for a language based on System F with context-free session types. We present an algorithm that leverages the bidirectional type checking approach to propagate type information, enabling first…

Programming Languages · Computer Science 2025-05-28 Bernardo Almeida , Andreia Mordido , Vasco T. Vasconcelos

Type classes are an elegant extension to traditional, Hindley-Milner based typing systems. They are used in modern, typed languages such as Haskell to support controlled overloading of symbols. Haskell 98 supports only single-parameter and…

Programming Languages · Computer Science 2007-05-23 Kevin Glynn , Martin Sulzmann , Peter J. Stuckey

We present a type system that combines, in a controlled way, first-order polymorphism with intersectiontypes, union types, and subtyping, and prove its safety. We then define a type reconstruction algorithm that issound and terminating.…

Programming Languages · Computer Science 2023-11-20 Giuseppe Castagna , Mickaël Laurent , Kim Nguyen

First-order resolution has been used for type inference for many years, including in Hindley- Milner type inference, type-classes, and constrained data types. Dependent types are a new trend in functional languages. In this paper, we show…

Logic in Computer Science · Computer Science 2018-05-01 František Farka , Ekaterina Komendantskya , Kevin Hammond

Linear and substructural types are powerful tools, but adding them to standard functional programming languages often means introducing extra annotations and typing machinery. We propose a lightweight substructural type system design that…

Programming Languages · Computer Science 2015-02-18 Edward Gan , Jesse A. Tov , Greg Morrisett

This work presents a new approach for implementing polymorphism for bottom-up relational languages, without monomorphization. We begin by introducing semiringKanren, a bottom-up weighted relational programming language. We extend this base…

Programming Languages · Computer Science 2026-05-18 Dmitri Volkov
‹ Prev 1 2 3 10 Next ›