Hom functorIn mathematics, specifically in , hom-sets (i.e. sets of morphisms between ) give rise to important functors to the . These functors are called hom-functors and have numerous applications in category theory and other branches of mathematics. Let C be a (i.e. a for which hom-classes are actually sets and not proper classes). For all objects A and B in C we define two functors to the as follows: {| class=wikitable |- ! Hom(A, –) : C → Set ! Hom(–, B) : C → Set |- | This is a covariant functor given by: Hom(A, –) maps each object X in C to the set of morphisms, Hom(A, X) Hom(A, –) maps each morphism f : X → Y to the function Hom(A, f) : Hom(A, X) → Hom(A, Y) given by for each g in Hom(A, X).
Monoidal categoryIn mathematics, a monoidal category (or tensor category) is a equipped with a bifunctor that is associative up to a natural isomorphism, and an I that is both a left and right identity for ⊗, again up to a natural isomorphism. The associated natural isomorphisms are subject to certain coherence conditions, which ensure that all the relevant s commute. The ordinary tensor product makes vector spaces, abelian groups, R-modules, or R-algebras into monoidal categories. Monoidal categories can be seen as a generalization of these and other examples.
Simply typed lambda calculusThe simply typed lambda calculus (), a form of type theory, is a typed interpretation of the lambda calculus with only one type constructor () that builds function types. It is the canonical and simplest example of a typed lambda calculus. The simply typed lambda calculus was originally introduced by Alonzo Church in 1940 as an attempt to avoid paradoxical use of the untyped lambda calculus. The term simple type is also used to refer extensions of the simply typed lambda calculus such as products, coproducts or natural numbers (System T) or even full recursion (like PCF).
Exponential objectIn mathematics, specifically in , an exponential object or map object is the generalization of a function space in set theory. with all and exponential objects are called . Categories (such as of ) without adjoined products may still have an exponential law. Let be a category, let and be of , and let have all with .
Symmetric monoidal categoryIn , a branch of mathematics, a symmetric monoidal category is a (i.e. a category in which a "tensor product" is defined) such that the tensor product is symmetric (i.e. is, in a certain strict sense, naturally isomorphic to for all objects and of the category). One of the prototypical examples of a symmetric monoidal category is the over some fixed field k, using the ordinary tensor product of vector spaces.
Enriched categoryIn , a branch of mathematics, an enriched category generalizes the idea of a by replacing hom-sets with objects from a general . It is motivated by the observation that, in many practical applications, the hom-set often has additional structure that should be respected, e.g., that of being a vector space of morphisms, or a topological space of morphisms. In an enriched category, the set of morphisms (the hom-set) associated with every pair of objects is replaced by an in some fixed monoidal category of "hom-objects".
Closed categoryIn , a branch of mathematics, a closed category is a special kind of . In a , the external hom (x, y) maps a pair of objects to a set of s. So in the , this is an object of the category itself. In the same vein, in a closed category, the (object of) morphisms from one object to another can be seen as lying inside the category. This is the internal hom [x, y]. Every closed category has a forgetful functor to the category of sets, which in particular takes the internal hom to the external hom.
Category of ringsIn mathematics, the category of rings, denoted by Ring, is the whose objects are rings (with identity) and whose morphisms are ring homomorphisms (that preserve the identity). Like many categories in mathematics, the category of rings is , meaning that the class of all rings is proper. The category Ring is a meaning that the objects are sets with additional structure (addition and multiplication) and the morphisms are functions that preserve this structure.
Cartesian monoidal categoryIn mathematics, specifically in the field known as , a where the monoidal ("tensor") product is the is called a cartesian monoidal category. Any with finite products (a "finite product category") can be thought of as a cartesian monoidal category. In any cartesian monoidal category, the terminal object is the monoidal unit. , a monoidal finite coproduct category with the monoidal structure given by the coproduct and unit the initial object is called a cocartesian monoidal category, and any finite coproduct category can be thought of as a cocartesian monoidal category.
Compact closed categoryIn , a branch of mathematics, compact closed categories are a general context for treating dual objects. The idea of a dual object generalizes the more familiar concept of the dual of a finite-dimensional vector space. So, the motivating example of a compact closed category is FdVect, the having finite-dimensional vector spaces as s and linear maps as s, with tensor product as the structure. Another example is , the category having sets as objects and relations as morphisms, with .
Category of relationsIn mathematics, the Rel has the class of sets as and binary relations as . A morphism (or arrow) R : A → B in this category is a relation between the sets A and B, so R ⊆ A × B. The composition of two relations R: A → B and S: B → C is given by (a, c) ∈ S o R ⇔ for some b ∈ B, (a, b) ∈ R and (b, c) ∈ S. Rel has also been called the "category of correspondences of sets". The category Rel has the Set as a (wide) , where the arrow f : X → Y in Set corresponds to the relation F ⊆ X × Y defined by (x, y) ∈ F ⇔ f(x) = y.
EvalIn some programming languages, eval , short for the English evaluate, is a function which evaluates a string as though it were an expression in the language, and returns a result; in others, it executes multiple lines of code as though they had been included instead of the line including the eval. The input to eval is not necessarily a string; it may be structured representation of code, such as an abstract syntax tree (like Lisp forms), or of special type such as code (as in Python).
Cartesian closed categoryIn , a is Cartesian closed if, roughly speaking, any morphism defined on a of two can be naturally identified with a morphism defined on one of the factors. These categories are particularly important in mathematical logic and the theory of programming, in that their internal language is the simply typed lambda calculus. They are generalized by , whose internal language, linear type systems, are suitable for both quantum and classical computation.
ApplyIn mathematics and computer science, apply is a function that applies a function to arguments. It is central to programming languages derived from lambda calculus, such as LISP and Scheme, and also in functional languages. It has a role in the study of the denotational semantics of computer programs, because it is a continuous function on complete partial orders. Apply is also a continuous function in homotopy theory, and, indeed underpins the entire theory: it allows a homotopy deformation to be viewed as a continuous path in the space of functions.
Linear logicLinear logic is a substructural logic proposed by Jean-Yves Girard as a refinement of classical and intuitionistic logic, joining the dualities of the former with many of the constructive properties of the latter. Although the logic has also been studied for its own sake, more broadly, ideas from linear logic have been influential in fields such as programming languages, game semantics, and quantum physics (because linear logic can be seen as the logic of quantum information theory), as well as linguistics, particularly because of its emphasis on resource-boundedness, duality, and interaction.
Tensor product of modulesIn mathematics, the tensor product of modules is a construction that allows arguments about bilinear maps (e.g. multiplication) to be carried out in terms of linear maps. The module construction is analogous to the construction of the tensor product of vector spaces, but can be carried out for a pair of modules over a commutative ring resulting in a third module, and also for a pair of a right-module and a left-module over any ring, with result an abelian group.
Cartesian productIn mathematics, specifically set theory, the Cartesian product of two sets A and B, denoted A × B, is the set of all ordered pairs (a, b) where a is in A and b is in B. In terms of set-builder notation, that is A table can be created by taking the Cartesian product of a set of rows and a set of columns. If the Cartesian product rows × columns is taken, the cells of the table contain ordered pairs of the form (row value, column value).