In type theory, a refinement type[1][2][3] is a type endowed with a predicate which is assumed to hold for any element of the refined type. Refinement types can express preconditions when used as function arguments or postconditions when used as return types: for instance, the type of a function which accepts natural numbers and returns natural numbers greater than 5 may be written as . Refinement types are thus related to behavioral subtyping.
^Freeman, T.; Pfenning, F. (1991). "Refinement types for ML" (PDF). Proceedings of the ACM Conference on Programming Language Design and Implementation. pp. 268–277. doi:10.1145/113445.113468.
^Hayashi, S. (1993). "Logic of refinement types". Proceedings of the Workshop on Types for Proofs and Programs. pp. 157–172. CiteSeerX 10.1.1.38.6346. doi:10.1007/3-540-58085-9_74.
^Denney, E. (1998). "Refinement types for specification". Proceedings of the IFIP International Conference on Programming Concepts and Methods. Vol. 125. Chapman & Hall. pp. 148–166. CiteSeerX 10.1.1.22.4988.
In type theory, a refinementtype is a type endowed with a predicate which is assumed to hold for any element of the refined type. Refinementtypes can...
similar type. A refinementtype is a type endowed with a predicate which is assumed to hold for any element of the refined type. For instance, the type of...
of intersection types. A restricted form is refinementtypes. Union types are types describing values that belong to either of two types. For example, in...
state of the object. Typestates are capable of representing behavioral typerefinements such as "method A must be invoked before method B is invoked, and method...
colloquially classified is whether the language's type system makes it strongly typed or weakly typed (loosely typed). However, there is no precise technical definition...
Substructural type systems are a family of type systems analogous to substructural logics where one or more of the structural rules are absent or only...
name of the types. Nominal systems are used to determine if types are equivalent, as well as if a type is a subtype of another. Nominal type systems contrast...
directly. Types of democracy can be found across time, space, and language. The foregoing examples are just a few of the thousands of refinements of, and...
Type inference, sometimes called type reconstruction,: 320 refers to the automatic detection of the type of an expression in a formal language. These...
computer science, type safety and type soundness are the extent to which a programming language discourages or prevents type errors. Type safety is sometimes...
high-powered, liquid-cooled, in-line aero engines. They also featured refinements such as retractable undercarriages, fully enclosed cockpits, and low-drag...
inheritance). With duck typing, an object is of a given type if it has all methods and properties required by that type. Duck typing may be viewed as a usage-based...
language Haskell which allows specifying correctness properties by using refinementtypes. Properties are verified using a satisfiability modulo theories (SMT)...
In mesh generation, Delaunay refinements are algorithms for mesh generation based on the principle of adding Steiner points to the geometry of an input...
dependent type is a type whose definition depends on a value. It is an overlapping feature of type theory and type systems. In intuitionistic type theory...
type system (or property-based type system) is a major class of type systems in which type compatibility and equivalence are determined by the type's...
types are refinementtypes. Intersection types are useful for describing overloaded functions. For example, if number => number is the type of function...
variable-types on the same basis as value-types) Class-based programming Top typeRefinementtype Behavioral subtyping Copestake, Ann. Implementing typed feature...
The Volkswagen Type 2 is a forward control light commercial vehicle introduced in 1950 by the German automaker Volkswagen as its second car model. Known...
U-106 U-107 U-108 U-109 U-110 U-111 U-122 U-123 U-124 The Type IXC was a further refinement of the class with storage for an additional 43 tonnes of fuel...
Gradual typing is a type system in which some variables and expressions may be given types and the correctness of the typing is checked at compile time...
abstract type (also known as existential types) is a type in a nominative type system that cannot be instantiated directly; by contrast, a concrete type can...
00, 000 and 0000, where the number of zeroes indicates its refinement. Polish flour type numbers, as is the case in Germany, indicate the amount of ash...