PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Programming with intersection types and bounded polymorphism
Programming with intersection types and bounded polymorphism
Soft typing with conditional types
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The type and effect discipline
Information and Computation
Refinement types for ML
Intersection and union types: syntax and semantics
Information and Computation
Region-based memory management
Information and Computation
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dependent types in practical programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Intersection types and computational effects
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
Refinement-Type Checker for Standard ML
AMAST '97 Proceedings of the 6th International Conference on Algebraic Methodology and Software Technology
The Essence of Principal Typings
ICALP '02 Proceedings of the 29th International Colloquium on Automata, Languages and Programming
What are Principal Typings and What are They Good For?
What are Principal Typings and What are They Good For?
Dependent types in practical programming
Dependent types in practical programming
A calculus with polymorphic and polyvariant flow types
Journal of Functional Programming
From Polyvariant flow information to intersection and union types
Journal of Functional Programming
Practical refinement-type checking
Practical refinement-type checking
Type assignment for intersections and unions in call-by-value languages
FOSSACS'03/ETAPS'03 Proceedings of the 6th International conference on Foundations of Software Science and Computation Structures and joint European conference on Theory and practice of software
Lightweight object specification with typestates
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Dependent ML An approach to practical programming with dependent types
Journal of Functional Programming
Refined typechecking with Stardust
PLPV '07 Proceedings of the 2007 workshop on Programming languages meets program verification
Proceedings of the 3rd workshop on Programming languages meets program verification
Refinement types and computational duality
Proceedings of the 3rd workshop on Programming languages meets program verification
Refinement Types as Proof Irrelevance
TLCA '09 Proceedings of the 9th International Conference on Typed Lambda Calculi and Applications
On the Values of Reducibility Candidates
TLCA '09 Proceedings of the 9th International Conference on Typed Lambda Calculi and Applications
Greedy bidirectional polymorphism
Proceedings of the 2009 ACM SIGPLAN workshop on ML
Intersection and Union Types in the λμμ~-calculus
Electronic Notes in Theoretical Computer Science (ENTCS)
Decision procedures for algebraic data types with abstractions
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A substructural type system for delimited continuations
TLCA'07 Proceedings of the 8th international conference on Typed lambda calculi and applications
On-demand refinement of dependent types
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
Semantic subtyping with an SMT solver
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
An empirical study of object protocols in the wild
Proceedings of the 25th European conference on Object-oriented programming
Union and intersection types for secure protocol implementations
TOSCA'11 Proceedings of the 2011 international conference on Theory of Security and Applications
Subject reduction vs intersection / union types in λµµ
VoCS'08 Proceedings of the 2008 international conference on Visions of Computer Science: BCS International Academic Conference
Elaborating intersection and union types
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Complete and easy bidirectional typechecking for higher-rank polymorphism
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Polymorphic functions with set-theoretic types: part 1: syntax, semantics, and evaluation
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Journal of Computer Security - Foundational Aspects of Security
Hi-index | 0.00 |
In prior work we introduced a pure type assignment system that encompasses a rich set of property types, including intersections, unions, and universally and existentially quantified dependent types. This system was shown sound with respect to a call-by-value operational semantics with effects, yet is inherently undecidable.In this paper we provide a decidable formulation for this system based on bidirectional checking, combining type synthesis and analysis following logical principles. The presence of unions and existential quantification requires the additional ability to visit subterms in evaluation position before the context in which they occur, leading to a tridirectional type system. While soundness with respect to the type assignment system is immediate, completeness requires the novel concept of contextual type annotations, introducing a notion from the study of principal typings into the source program.