Non-idempotent intersection types in logical form

11/05/2019
by   Thomas Ehrhard, et al.
0

Intersection types are an essential tool in the analysis of operational and denotational properties of lambda-terms and functional programs. Among them, non-idempotent intersection types provide precise quantitative information about the evaluation of terms and programs. However, unlike simple or second-order types, intersection types cannot be considered as a logical system because the application rule (or the intersection rule, depending on the presentation of the system) involves a condition expressing that the proofs of premises satisfy a very strong uniformity condition: the underlying lambda-terms must be the same. Using earlier work introducing an indexed version of Linear Logic, we show that non-idempotent typing can be given a logical form in a system where formulas represent hereditarily indexed families of intersection types.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/30/2022

Linear Rank Intersection Types

Non-idempotent intersection types provide quantitative information about...
research
09/01/2017

A simple en,ex marking rule for degenerate intersection points in 2D polygon clipping

A simple en,ex rule to mark the intersection points of 2D input polygon ...
research
04/26/2022

Structural Rules and Algebraic Properties of Intersection Types

In this paper we define several notions of term expansion, used to defin...
research
04/23/2019

Intersection Types for Unboundedness Problems

Intersection types have been originally developed as an extension of sim...
research
02/15/2019

Types by Need (Extended Version)

A cornerstone of the theory of lambda-calculus is that intersection type...
research
07/30/2020

Logic of fusion

The starting point of this work is the observation that the Curry-Howard...
research
03/21/2022

Curry and Howard Meet Borel

We show that an intuitionistic version of counting propositional logic c...

Please sign up or login with your details

Forgot password? Click here to reset