2011
DOI: 10.2168/lmcs-7(1:2)2011
|View full text |Cite
|
Sign up to set email alerts
|

Semantics of Typed Lambda-Calculus with Constructors

Abstract: Abstract. We present a Curry-style second-order type system with union and intersection types for the lambda-calculus with constructors of Arbiser, Miquel and Rios, an extension of lambda-calculus with a pattern matching mechanism for variadic constructors. We then prove the strong normalisation and the absence of match failure for a restriction of this system, by adapting the standard reducibility method.

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
6
0

Year Published

2012
2012
2020
2020

Publication Types

Select...
3
3
2

Relationship

1
7

Authors

Journals

citations
Cited by 9 publications
(6 citation statements)
references
References 14 publications
0
6
0
Order By: Relevance
“…On pure relational programming (without λ-abstractions), recently Rozhplokas et al [27] have studied the operational and denotational semantics of miniKanren. On λ-calculi with patterns (without full unification), there have been many different approaches to their formulation [16,2,17,25,3]. On λ-calculi with non-deterministic choice (without unification), we should mention works on the λ-calculus extended with erratic [28] as well as with probabilistic choice [26,9].…”
Section: Discussionmentioning
confidence: 99%
“…On pure relational programming (without λ-abstractions), recently Rozhplokas et al [27] have studied the operational and denotational semantics of miniKanren. On λ-calculi with patterns (without full unification), there have been many different approaches to their formulation [16,2,17,25,3]. On λ-calculi with non-deterministic choice (without unification), we should mention works on the λ-calculus extended with erratic [28] as well as with probabilistic choice [26,9].…”
Section: Discussionmentioning
confidence: 99%
“…In the following contents, we represent other arguments by the wildcard " * " and by the symbol {| * ⟼ * |} . 𝐸 is the syntax of constructor pattern matching of the 𝜆-expression 𝐸 [23]. To avoid ambiguity in the following discussion of FEther, the functions represent the programs and functions written in Gallina, and RWprogram represents the real-world programs written in general-purpose programing languages.…”
Section: Lolisamentioning
confidence: 99%
“…In the second case, x in the pattern is required to be Nat yet the type of the argument to vl in vl true is Bool. This is avoided by introducing type application [24] into types: vl x is assigned a type of the form vl @ Nat while vl true is assigned type vl @ Bool; these are then compared. Consider next the pattern x y of upd.…”
Section: Preliminaries On Typing Patterns Expressing Path Polymorphismmentioning
confidence: 99%
“…, c n → s n } · t in which certain occurrences of the constructors c i in t are replaced by their corresponding terms. [24] studies typing to ensure that these constructor substitutions never block on a constant not in their domain. Recursive types are not considered (nor is path polymorphism).…”
Section: Related Workmentioning
confidence: 99%