Ackermann Coding
   HOME

TheInfoList



OR:

In mathematics and
computer science Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to practical disciplines (includi ...
, the BIT predicate or Ackermann coding, sometimes written BIT(''i'', ''j''), is a
predicate Predicate or predication may refer to: * Predicate (grammar), in linguistics * Predication (philosophy) * several closely related uses in mathematics and formal logic: **Predicate (mathematical logic) **Propositional function **Finitary relation, o ...
that tests whether the ''j''th
bit The bit is the most basic unit of information in computing and digital communications. The name is a portmanteau of binary digit. The bit represents a logical state with one of two possible values. These values are most commonly represente ...
of the number ''i'' is 1, when ''i'' is written in
binary Binary may refer to: Science and technology Mathematics * Binary number, a representation of numbers using only two digits (0 and 1) * Binary function, a function that takes two arguments * Binary operation, a mathematical operation that ta ...
.


History

The BIT predicate was first introduced as the encoding of
hereditarily finite set In mathematics and set theory, hereditarily finite sets are defined as finite sets whose elements are all hereditarily finite sets. In other words, the set itself is finite, and all of its elements are finite sets, recursively all the way down to t ...
s as
natural number In mathematics, the natural numbers are those numbers used for counting (as in "there are ''six'' coins on the table") and ordering (as in "this is the ''third'' largest city in the country"). Numbers used for counting are called ''cardinal ...
s by
Wilhelm Ackermann Wilhelm Friedrich Ackermann (; ; 29 March 1896 – 24 December 1962) was a German mathematician and logician best known for his work in mathematical logic and the Ackermann function, an important example in the theory of computation. Biography ...
in his 1937 paper ''The Consistency of General Set Theory''. In this encoding, each natural number encodes a
finite set In mathematics, particularly set theory, a finite set is a set that has a finite number of elements. Informally, a finite set is a set which one could in principle count and finish counting. For example, :\ is a finite set with five elements. T ...
, and each finite set is represented by a natural number. If the encoding of a set X is denoted \eta(X), then this encoding is defined recursively by \eta(\)=2^+2^+2^+\cdots In terms of the binary numeral system, if the number n=\eta(X) encodes a finite set X and the ith binary digit of n is 1, then the set \eta^(i) encoded by i is an element of X. Therefore, the BIT predicate of numbers directly corresponds under this encoding to the membership relation between hereditarily finite sets. The Ackermann coding is a
primitive recursive function In computability theory, a primitive recursive function is roughly speaking a function that can be computed by a computer program whose loops are all "for" loops (that is, an upper bound of the number of iterations of every loop can be determined ...
.


Implementation

In programming languages such as C,
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
,
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mos ...
, or
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
that provide a right shift operator >> and a bitwise Boolean and operator &, the BIT predicate BIT(''i'', ''j'') can be implemented by the expression (i>>j)&1. Here the bits of ''i'' are numbered from the low-order bits to high-order bits in the
binary representation A binary number is a number expressed in the base-2 numeral system or binary numeral system, a method of mathematical expression which uses only two symbols: typically "0" (zero) and "1" (one). The base-2 numeral system is a positional notation ...
of ''i'', with the ones bit being numbered as bit 0.


Private information retrieval

In the mathematical study of computer security, the
private information retrieval In cryptography, a private information retrieval (PIR) protocol is a protocol that allows a user to retrieve an item from a server in possession of a database without revealing which item is retrieved. PIR is a weaker version of 1-out-of-''n'' obli ...
problem can be modeled as one in which a client, communicating with a collection of servers that store a binary number ''i'', wishes to determine the result of a BIT predicate BIT(''i'', ''j'') without divulging the value of ''j'' to the servers. describe a method for replicating ''i'' across two servers in such a way that the client can solve the private information retrieval problem using a substantially smaller amount of communication than would be necessary to recover the complete value of ''i''.


Mathematical logic

The BIT predicate is often examined in the context of
first-order logic First-order logic—also known as predicate logic, quantificational logic, and first-order predicate calculus—is a collection of formal systems used in mathematics, philosophy, linguistics, and computer science. First-order logic uses quantifie ...
, where systems of logic result from adding the BIT predicate to first-order logic. In
descriptive complexity ''Descriptive Complexity'' is a book in mathematical logic and computational complexity theory by Neil Immerman. It concerns descriptive complexity theory, an area in which the expressibility of mathematical properties using different types of lo ...
, the
complexity class In computational complexity theory, a complexity class is a set (mathematics), set of computational problems of related resource-based computational complexity, complexity. The two most commonly analyzed resources are time complexity, time and spa ...
FO + BIT resulting from adding the BIT predicate to FO results in a more robust complexity class. The class FO + BIT, of first-order logic with the BIT predicate, is the same as the class FO + PLUS + TIMES, of first-order logic with addition and multiplication predicates.


Construction of the Rado graph

Ackermann in 1937 and
Richard Rado Richard Rado FRS (28 April 1906 – 23 December 1989) was a German-born British mathematician whose research concerned combinatorics and graph theory. He was Jewish and left Germany to escape Nazi persecution. He earned two PhDs: in 1933 from th ...
in 1964 used this predicate to construct the infinite
Rado graph In the mathematical field of graph theory, the Rado graph, Erdős–Rényi graph, or random graph is a countably infinite graph that can be constructed (with probability one) by choosing independently at random for each pair of its vertices whe ...
. In their construction, the vertices of this graph correspond to the non-negative integers, written in binary, and there is an undirected edge from vertex ''i'' to vertex ''j'', for ''i'' < ''j'', when BIT(''j'',''i'') is nonzero..


References

{{DEFAULTSORT:Bit Predicate Binary arithmetic Descriptive complexity Circuit complexity Set theory