List object
In category theory, an abstract branch of mathematics, and in its applications to logic and theoretical computer science, a list object is an abstract definition of a list, that is, a finite ordered sequence. Formal definitionLet C be a category with finite products and a terminal object 1. A list object over an object A of C is:
such that for any object B of C with maps b : 1 → B and t : A × B → B, there exists a unique f : LA → B such that the following diagram commutes: where〈idA, f〉denotes the arrow induced by the universal property of the product when applied to idA (the identity on A) and f. The notation A* (à la Kleene star) is sometimes used to denote lists over A.[1] Equivalent definitionsIn a category with a terminal object 1, binary coproducts (denoted by +), and binary products (denoted by ×), a list object over A can be defined as the initial algebra of the endofunctor that acts on objects by X ↦ 1 + (A × X) and on arrows by f ↦ [id1,〈idA, f〉].[2] Examples
PropertiesLike all constructions defined by a universal property, lists over an object are unique up to canonical isomorphism. The object L1 (lists over the terminal object) has the universal property of a natural number object. In any category with lists, one can define the length of a list LA to be the unique morphism l : LA → L1 which makes the following diagram commute:[3] References
See also |
Portal di Ensiklopedia Dunia