Levi's Lemma
In theoretical computer science and mathematics, especially in the area of combinatorics on words, the Levi lemma states that, for all string (computer science), strings ''u'', ''v'', ''x'' and ''y'', if ''uv'' = ''xy'', then there exists a string ''w'' such that either :''uw = x'' and ''v'' = ''wy'' (if , ''u'', ≤ , ''x'', ) or :''u'' = ''xw'' and ''wv'' = ''y'' (if , ''u'', ≥ , ''x'', ) That is, there is a string ''w'' that is "in the middle", and can be grouped to one side or the other. Levi's lemma is named after Friedrich Wilhelm Levi, who published it in 1944. Applications Levi's lemma can be applied repeatedly in order to solve word equations; in this context it is sometimes called the Nielsen transformation by analogy with the Nielsen transformation, Nielsen transformation for groups. For example, starting with an equation ''xα'' = ''yβ'' where ''x'' and ''y'' are the unknowns, we can transform it (assuming '' ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Monoid Theory
In mathematics, a semigroup is an algebraic structure consisting of a set together with an associative internal binary operation on it. The binary operation of a semigroup is most often denoted multiplicatively (just notation, not necessarily the elementary arithmetic multiplication): , or simply ''xy'', denotes the result of applying the semigroup operation to the ordered pair . Associativity is formally expressed as that for all ''x'', ''y'' and ''z'' in the semigroup. Semigroups may be considered a special case of magmas, where the operation is associative, or as a generalization of groups, without requiring the existence of an identity element or inverses. As in the case of groups or magmas, the semigroup operation need not be commutative, so is not necessarily equal to ; a well-known example of an operation that is associative but non-commutative is matrix multiplication. If the semigroup operation is commutative, then the semigroup is called a ''commutative semigroup'' or ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
String Functions (programming)
String functions are used in computer programming languages to manipulate a string or query information about a string (some do both). Most programming languages that have a string datatype will have some string functions although there may be other low-level ways within each language to handle strings directly. In object-oriented languages, string functions are often implemented as properties and methods of string objects. In functional and list-based languages a string is represented as a list (of character codes), therefore all list-manipulation procedures could be considered string functions. However such languages may implement a subset of explicit string-specific functions as well. For function that manipulate strings, modern object-oriented languages, like C# and Java have immutable strings and return a copy (in newly allocated dynamic memory), while others, like C manipulate the original string unless the programmer copies data to a new string. See for example Concat ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
String Operations
In computer science, in the area of formal language theory, frequent use is made of a variety of string functions; however, the notation used is different from that used for computer programming, and some commonly used functions in the theoretical realm are rarely used when programming. This article defines some of these basic terms. Strings and languages A string is a finite sequence of characters. The empty string is denoted by \varepsilon. The concatenation of two string s and t is denoted by s \cdot t, or shorter by s t. Concatenating with the empty string makes no difference: s \cdot \varepsilon = s = \varepsilon \cdot s. Concatenation of strings is associative: s \cdot (t \cdot u) = (s \cdot t) \cdot u. For example, (\langle b \rangle \cdot \langle l \rangle) \cdot (\varepsilon \cdot \langle ah \rangle) = \langle bl \rangle \cdot \langle ah \rangle = \langle blah \rangle. A language is a finite or infinite set of strings. Besides the usual set operations like union, inters ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Cambridge University Press
Cambridge University Press was the university press of the University of Cambridge. Granted a letters patent by King Henry VIII in 1534, it was the oldest university press in the world. Cambridge University Press merged with Cambridge Assessment to form Cambridge University Press and Assessment under Queen Elizabeth II's approval in August 2021. With a global sales presence, publishing hubs, and offices in more than 40 countries, it published over 50,000 titles by authors from over 100 countries. Its publications include more than 420 academic journals, monographs, reference works, school and university textbooks, and English language teaching and learning publications. It also published Bibles, runs a bookshop in Cambridge, sells through Amazon, and has a conference venues business in Cambridge at the Pitt Building and the Sir Geoffrey Cass Sports and Social Centre. It also served as the King's Printer. Cambridge University Press, as part of the University of Cambridge, was a ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Preimage
In mathematics, for a function f: X \to Y, the image of an input value x is the single output value produced by f when passed x. The preimage of an output value y is the set of input values that produce y. More generally, evaluating f at each element of a given subset A of its domain X produces a set, called the "image of A under (or through) f". Similarly, the inverse image (or preimage) of a given subset B of the codomain Y is the set of all elements of X that map to a member of B. The image of the function f is the set of all output values it may produce, that is, the image of X. The preimage of f is the preimage of the codomain Y. Because it always equals X (the domain of f), it is rarely used. Image and inverse image may also be defined for general binary relations, not just functions. Definition The word "image" is used in three related ways. In these definitions, f : X \to Y is a function from the set X to the set Y. Image of an element If x is a member of X, ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Monogenic Semigroup
In mathematics, a monogenic semigroup is a semigroup generated by a single element. Monogenic semigroups are also called cyclic semigroups. Structure The monogenic semigroup generated by the singleton set is denoted by \langle a \rangle. The set of elements of \langle a \rangle is . There are two possibilities for the monogenic semigroup * ''am'' = ''an'' ⇒ ''m'' = ''n''. * There exist ''m'' ≠ ''n'' such that ''am'' = ''an''. In the former case \langle a \rangle is isomorphic to the semigroup (, +) of natural numbers under addition. In such a case, \langle a \rangle is an ''infinite monogenic semigroup'' and the element ''a'' is said to have ''infinite order''. It is sometimes called the ''free monogenic semigroup'' because it is also a free semigroup with one generator. In the latter case let ''m'' be the smallest positive integer such that ''am'' = ''ax'' for some positive integer ''x'' ≠ ''m'', and let ''r'' be smallest positive integer such that ''am'' = ''a''''m' ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Homomorphism
In algebra, a homomorphism is a morphism, structure-preserving map (mathematics), map between two algebraic structures of the same type (such as two group (mathematics), groups, two ring (mathematics), rings, or two vector spaces). The word ''homomorphism'' comes from the Ancient Greek language: () meaning "same" and () meaning "form" or "shape". However, the word was apparently introduced to mathematics due to a (mis)translation of German meaning "similar" to meaning "same". The term "homomorphism" appeared as early as 1892, when it was attributed to the German mathematician Felix Klein (1849–1925). Homomorphisms of vector spaces are also called linear maps, and their study is the subject of linear algebra. The concept of homomorphism has been generalized, under the name of morphism, to many other structures that either do not have an underlying set, or are not algebraic. This generalization is the starting point of category theory. A homomorphism may also be an isomorphis ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Free Monoid
In abstract algebra, the free monoid on a set is the monoid whose elements are all the finite sequences (or strings) of zero or more elements from that set, with string concatenation as the monoid operation and with the unique sequence of zero elements, often called the empty string and denoted by ε or λ, as the identity element. The free monoid on a set ''A'' is usually denoted ''A''∗. The free semigroup on ''A'' is the sub semigroup of ''A''∗ containing all elements except the empty string. It is usually denoted ''A''+./ref> More generally, an abstract monoid (or semigroup) ''S'' is described as free if it is isomorphic to the free monoid (or semigroup) on some set. As the name implies, free monoids and semigroups are those objects which satisfy the usual universal property defining free objects, in the respective categories of monoids and semigroups. It follows that every monoid (or semigroup) arises as a homomorphic image of a free monoid (or semigroup). ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Trace Monoid
In computer science, a trace is an equivalence class of strings, wherein certain letters in the string are allowed to commute, but others are not. Traces generalize the concept of strings by relaxing the requirement for all the letters to have a definite order, instead allowing for indefinite orderings in which certain reshufflings could take place. In an opposite way, traces generalize the concept of sets with multiplicities by allowing for specifying some incomplete ordering of the letters rather than requiring complete equivalence under all reorderings. The trace monoid or free partially commutative monoid is a monoid of traces. Traces were introduced by Pierre Cartier and Dominique Foata in 1969 to give a combinatorial proof of MacMahon's master theorem. Traces are used in theories of concurrent computation, where commuting letters stand for portions of a job that can execute independently of one another, while non-commuting letters stand for locks, synchronization poin ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Graph Theory
In mathematics and computer science, graph theory is the study of ''graph (discrete mathematics), graphs'', which are mathematical structures used to model pairwise relations between objects. A graph in this context is made up of ''Vertex (graph theory), vertices'' (also called ''nodes'' or ''points'') which are connected by ''Glossary of graph theory terms#edge, edges'' (also called ''arcs'', ''links'' or ''lines''). A distinction is made between undirected graphs, where edges link two vertices symmetrically, and directed graphs, where edges link two vertices asymmetrically. Graphs are one of the principal objects of study in discrete mathematics. Definitions Definitions in graph theory vary. The following are some of the more basic ways of defining graphs and related mathematical structures. Graph In one restricted but very common sense of the term, a graph is an ordered pair G=(V,E) comprising: * V, a Set (mathematics), set of vertices (also called nodes or points); * ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Theoretical Computer Science
Theoretical computer science is a subfield of computer science and mathematics that focuses on the Abstraction, abstract and mathematical foundations of computation. It is difficult to circumscribe the theoretical areas precisely. The Association for Computing Machinery, ACM's Special Interest Group on Algorithms and Computation Theory (SIGACT) provides the following description: History While logical inference and mathematical proof had existed previously, in 1931 Kurt Gödel proved with his incompleteness theorem that there are fundamental limitations on what statements could be proved or disproved. Information theory was added to the field with A Mathematical Theory of Communication, a 1948 mathematical theory of communication by Claude Shannon. In the same decade, Donald Hebb introduced a mathematical model of Hebbian learning, learning in the brain. With mounting biological data supporting this hypothesis with some modification, the fields of neural networks and para ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |