Binary combinatory logic
![]() | This article provides insufficient context for those unfamiliar with the subject.(July 2020) |
Binary combinatory logic (BCL) uses combinator logic to represent binary states and logical operations in combinator basis. BCL allows for inversely, the formulation of combinatory logic using only the symbols 0 and 1.[1] BCL has applications in the theory of program-size complexity (Kolmogorov complexity).[1][2]i
Definition
S-K Basis
Utilizing K and S combinators, logical functions can be represented in as functions of combinators.
Boolean Algebra | S-K Basis | |
---|---|---|
True(1) | K(KK) | |
False(0) | K(K(SK))S | |
AND | SSK | |
NOT | SS(S(S(S(SK))S))(KK) | |
OR | S(SS)S(SK) | |
NAND | S(S(K(S(SS(K(KK)))))))S | |
NOR | S(S(S(SS(K(K(KK)))))(KS)) | |
XOR | S(S(S(SS)(S(S(SK)))S))K |
Syntax
<term> ::= 00 | 01 | 1 <term> <term>
Semantics
The denotational semantics of BCL may be specified as follows:
[ 00 ] == K
[ 01 ] == S
[ 1 <term1> <term2> ] == ( [<term1>] [<term2>] )
where "[...]
" abbreviates "the meaning of ...
". Here K
and S
are the KS-basis combinators, and ( )
is the application operation, of combinatory logic. (The prefix 1
corresponds to a left parenthesis, right parentheses being unnecessary for disambiguation.)
Thus there are four equivalent formulations of BCL, depending on the manner of encoding the triplet (K, S, left parenthesis). These are (00, 01, 1)
(as in the present version), (01, 00, 1)
, (10, 11, 0)
, and (11, 10, 0)
.
The operational semantics of BCL, apart from eta-reduction (which is not required for Turing completeness), may be very compactly specified by the following rewriting rules for subterms of a given term, parsing from the left:
1100xy → x
11101xyz → 11xz1yz
where x
, y
, and z
are arbitrary subterms. (Note, for example, that because parsing is from the left, 10000
is not a subterm of 11010000
.)
See also
References
- ^ a b Tromp, John (2007), "Binary lambda calculus and combinatory logic", Randomness and complexity (PDF), World Sci. Publ., Hackensack, NJ, pp. 237–260, CiteSeerX 10.1.1.695.3142, doi:10.1142/9789812770837_0014, ISBN 978-981-277-082-0, MR 2427553.
- ^ Devine, Sean (2009), "The insights of algorithmic entropy", Entropy, 11 (1): 85–110, doi:10.3390/e11010085, MR 2534819
- ^ "Combinators: A Centennial View—Stephen Wolfram Writings". writings.stephenwolfram.com. Retrieved 2021-02-15.