Molecular Combinator Reference Manual UPIM Report 2 Technical Report UT-CS-02-489 Bruce J. MacLennan Department of Computer Science University of Tennessee, Knoxville www.cs.utk.edu/˜mclennan November 5, 2002 Abstract This report contains, in summary form, definitions, schematic reactions, and equivalences of all combinators in use by this project. It will be updated as new combinators, equivalences, etc. are used. This research is supported by Nanoscale Exploratory Research grant CCR-0210094 from the National Science Foundation. It has been facilitated by a grant from the University of Tennessee, Knoxville, Center for Information Technology Research. This report may be used for any non-profit purpose provided that the source is credited. 1 Introduction 1. Most of the combinator definitions and equivalences (beyond those peculiar to molecular computation, such as , , and ) are from Curry and Feys [CFC58]. 2. We follow the usual convention in combinatory logic of omitting parentheses that associate to the left. For example, means , and means . 3. In the definitions of the operators, variables are marked with primes (e.g., ) and parenthesized superscripts (e.g., ) to indicate shared complexes. See the description of the (Sharing) Primitive (Section 17). !#"$ &% %$ -,/.102.13 (powers of 4. Notice that the following are distinct and have different meanings: combinators), (polyadic combinators), (sharing), (deferred combinators), (left reduction), (polyadic extension); see Other Notation (p. 14). is also used in the usual way to denote an element in a series , . . . . When subscripts and superscripts of any kind are combined, the subscripts take precedence; thus means . % (' %*) 465% 9 :9 %$ ' %+) 74 % 8 5 % 5. The size of a nonprimitive combinator is expressed in terms of the number of , , and nodes that it contains. Since nonprimitive combinator definitions are binary trees, if they contain no other nodes besides , , and , then the counts satisfy , and the total nodes are . ; < = >?A@BDCFEHG ; < = IJ?AKL>MBGN?OKP Q@RBMCSE:G 6. A combinator is called regular if it does not affect its first argument, thus, T U,WVXVXVY ?UZ [,WVXVXVY % 5]\ Most combinators (e.g., , ^ , , _ , < , ; , , ` , 4 , 4 , a ) are regular. % 2 Definitions of Combinators b 1 Primitive (Application Complex) =T T cN= T T The application ( ) complex represents the application of a combinator to its argument. The application of to , written , is represented by a molecular complex , in which the “operator” binding site of is linked to , the “operand” binding site is linked to , and the “result” site is linked to , the complex into which the result of will be linked. All (or most) of the non-terminal (interior) nodes of a combinator tree are nodes; the terminals (leaves) are primitive combinators (e.g., and ). If the network is not a tree, but has shared nodes or cycles, then (most of) the non-terminal nodes are and (sharing) nodes. (We say “most” because later we may want to define additional interior node types.) = T c ; 2 d < = = Combinator (Elementary Compositor) Definition: Reduction to ;^< ^e?UZfM g (1) ? ;U <;h*< (2) : Ki;jBkKl<mBDni=!?Ao Size: Equivalences: total. S ? T Qpqt _r+ Qpq_s j T t % m,WVXVXV % ?UZ -,^VXVXV % T T Notes: If is regular (p. 2), U,VXVXV ?UZfuv,^VXVXVY , then % 5 Tjt ,hVXVXVY % ?UZ t uv,VXVXVY 5w\ t T That is, is applied to the result of applying to the arguments U,WVXVXVY 3 dyx (3) (4) (5) %. Combinator (Permuting Compositor) Definition: J?UZzM 7w (6) ? S (7) Equivalences: Size: ? oi;jBD{|<mBG}K~=(?eK total. 3 4 Combinator (Elementary Permutator) Definition: ?UZfuw (8) ? ;h ? ; ;h 8<6< ? piUX QpiU/ QpiU (9) (10) (11) Equivalences: Size: 5 i;jBM <mBDi=!?GXo total (Def. 9). Combinator (Pure Permutator) Definition: U?UZ j (12) Equivalences: Size: 6 {;jBD{|<mBGG=(?eKin ? S _ ? pq_ _ (13) (14) total (Def. 13). Primitive (Elementary Deleter) Reaction: U BJU E qB =B (BJU E SBJJ B=0 vc BkKlU E c]BW0 !B vc]BJU E c]BJ Notes: In Eq. 15, represents any primitive combinator (e.g., ; or < (15) (16) (17) (18) ). Notice that in Eq. 17, a deletion cancels a replication in progress. However, in Eq. 18, a deletion does not affect a shared complex, except to cap the deleted sharing link. Reaction Specification: d: D, a: A, x, y, d’: D, p: P, q: Q, q’: Q. d a, a_1 x, a_2 y, d’ q’, p q => (DeleteApplication) d x, d y, p a, a_1 q, a_2 q’. 4 d: D, u, r: R, x, p: P, p’: P, q: Q, q’: Q. d r_1, u r_2, r x, p q, p’ q’ => (DeleteReplicator1) u x, p r_1, p’ r_2, r q, d q’. d: D, u, r: R, x, p: P, p’: P, q: Q, q’: Q. d r_2, u r_1, r x, p q, p’ q’ => (DeleteReplicator2) u x, p r_1, p’ r_2, r q, d q’. d: D, u, v: V, x, p: P, q: Q. d v_1, u v_2, v x, p q => (DeleteSharing1) p v_1, u v_2, v x, d q. d: D, u, v: V, x, p: P, q: Q. d v_2, u v_1, v x, p q => (DeleteSharing2) p v_2, u v_1, v x, d q. d: D, pc: Prim, p: P, q: Q. d pc, p q => (DeletePrimitive) p pc, d q. Notes: In the last (DeletePrimitive) rule, ‘Prim’ stands for any primitive combinator. Therefore, at least at the present time, that rule must be repeated with ‘Prim’ replaced by each primitive combinator species in use (e.g., ‘K’, ‘S’). 7 Combinator (Elementary Identificator) Definition: Reduction to ;^< _?^Zz : _? ;< Size: GX;jBkKl<mBkKL=!?A total (taking _?A;^<< Equivalences: (19) _? < _ ? k< 5 (20) ). (21) (22) 8 Combinator Definition: 9 pic]?UZ c]M cw (23) Combinator (Elementary Cancellator) Definition: Reaction: <?UZ (24) cw=0X<JBJAE c]B=S0X< (25) C % ,WVXVXV % ?UZ (26) Equivalences: Reaction Specification: a: A, b: A, k: K, d: D, q: Q, u, x, y. u a, a_1 b, b_1 k, b_2 x, a_2 y, d q => (Kreaction) u x, d a, a_1 b, b_1 k, b_2 q, a_2 y. ¡ Combinator (Inert Complex) 10 ¢ T -,VXVXV % The (inert) combinator is used when we want to prevent reduction, generally when we are intending to produce a static structure. For example, if the structure is generated, then there is a risk that the reduction rules for will destroy the structure. This is avoided by using the inert combinator, e.g. . Since it is inert, there are no reduction or reaction rules for it. Of course, in practice, there need not be just one inert combinator, and any molecular species that does enter into the computational reactions could be used. T ¢-,VXVXV % £ 11 Primitive (Result Cap) The result cap is inert; it is a place-holder for the “result” binding-site of any group. 12 ¤ Primitive (Argument Cap) The argument cap is inert; it is a place-holder for the “argument” binding-site of any group (in particular, for the “operator” and “operand” sites of an complex). = 6 ¥ 13 Primitive (Elementary Replicator) Reaction: BqBJU E c6Bk¦BW0 c ¦ c§¦ =JBJ= 0BW0 E ¨cN= Q¦©=+ BMnU Notes: In Eq. 27, represents any primitive combinator (e.g., ; or < ). (27) (28) Reaction Specification: r: R, a: A, u, v, x, y, r’: R, a’: A, p: P, p’: P, p’’: P, q: Q, q’: Q, q’’: Q. u r_1, v r_2, r a, a_1 x, a_2 y, p r’_1, p’ r’_2, r’ q, p’’ a’, a’_1 q’, a’_2 q’’ => (ReplicateApplication) u a, v a’, a_1 r_1, a’_1 r_2, a_2 r’_1, a’_2 r’_2, r x, r’ y, p q, p’ q’, p’’ q’’. r: R, pc: Prim, u, v, pc’: Prim, p: P, p’: P, q: Q. u r_1, v r_2, r pc, p q, p’ pc’ => (ReplicatePrimitive) u pc, v pc’, p r_1, p’ r_2, r q. Notes: In the last (ReplicatePrimitive) rule, ‘Prim’ stands for any primitive combinator. Therefore, at least at the present time, that rule must be repeated with ‘Prim’ replaced by each primitive combinator species in use (e.g., ‘K’, ‘S’). 14 ª Combinator (Elementary Formalizer, Replicating) Definition: Reaction: ;|«?UZz Q (29) cw=3/;|BW0 AEW cN= g=u ¬=y ­B;BJU (30) Reaction Specification: a: A, a’: A, a’’: A, s: S, r: R, p: P, p’: P, q: Q, u, x, y, z. 7 u a, a_1 a’, a’_1 a’’, a’’_1 s, a’’_2 x, a’_2 y, a_2 z, p r_1, p’ r_2, r q => (Sreaction) u a, a_1 a’, a’_1 x, a’_2 r_1, a_2 a’’, a’’_1 y, a’’_2 r_2, r z, p s, p’ q. Equivalences: ; ? MY+ 15 ª® (31) Combinator (Elementary Formalizer, Sharing) ¯ ;|?UZfu Q (32) ¯ cN=S3 ;BJ0OEW cN= ¬=u+ g=y¨6MBJ^;©B^ (33) Definition: Reaction: Reaction Specification: a: A, a’: A, a’’: A, s: Ssh, v: V, p: P, p’: P, q: Q, u, x, y, z. u a, a_1 a’, a’_1 a’’, a’’_1 s, a’’_2 x, a’_2 y, a_2 z, p v_1, p’ v_2, v q => (SharingSreaction) u a, a_1 a’, a’_1 x, a’_2 v_1, a_2 a’’, a’’_1 y, a’’_2 v_2, v z, p s, p’ q. Equivalences: ¯ ¯ ; ? ­ (34) Notes: See Sec. 19 for a discussion of this definition. 16 ª]° Combinator (Polyadic Elementary Formalizer) Definition: ; % «,VXVXVY % ± ?^Zzu QU,^VXVXV Q % 8 (35) Reduction to ;^< : ;²,³? ; (36) (37) ; %2´ ,³? ; %]µ ; E GXBG total for ; % ¯ . Size: 7 ° E( q;jBD h ° E:G}/<mBD¶P ° EHG}8=(?GXh ° H Notes: ; can be replicating or sharing depending on whether ; or ; is used in its % recursive definition. If it is sharing, it produces the following structure: ¯ ; % U,VXVXVY % ?UZfu % $ QU, %L· , $ ^VXVXV2 g %~· , Q % (38) Equivalences: ; % ? 4 %2´ ,+_ ¸ 17 (39) Primitive (Sharing Complex) ¯ ¯ ; ¯ The sharing primitive ( ) is used for constructing non-tree structures, including cyclic structures. It is produced by sharing combinators such as , , and . Note that a complex between a combinator and its arguments will block reduction of the combinator, so complexes appear primarily in structured that are being treated as data. Primes and parenthesized superscripts on variables are used to indicate informally the sharing of structures. Thus, if there is a single sharing complex above , then the two links to it will be called and . Notice that both will be “covered” by a sharing complex; if it is necessary to make this explicit, the two links will be written and . If one of these links is replaced by another sharing complex, then the original link and the two new ones will be called , , , and so forth. Obviously such a notation cannot capture all the possible structures of sharing complexes, but it allows the convenient expression of chains of complexes, which is the most common case. To go beyond this, diagrams should be used. ` s¹8$ & 18 º Combinator (Elementary Duplicator, Replicating) Definition: !?UZz« (40) ? ;U_ ? ; ¨S_s ? ;P; <6_# (41) (42) (43) Equivalences: Size: oi;jBD{|<mBG}K~=(?eK total (Def. 41 or 42). 9 19 º® Combinator (Elementary Duplicator, Sharing) Definition: Reduction to ¯ Notes: M,g0 ;^< : ¯ and !0, ¯ ?UZz ( (44) ¯ ¯ D¯ ,g0? ¯ ;U_ (¯ 0,±? ; ¯ _# D,g0? ; ;U <6_s (45) (46) (47) ¯ are two variants, functionally equivalent to , but producing differently ordered links to the sharing ( ) complex (see Equivalences below). In the absence of subscripts, we will take to be , since it is a little more convenient to use. Definition 47 is not very useful, because it needlessly begins replication of the first argument of . Notice that either or may be taken as a primitive sharing operation, since either can be defined in terms of the other. At this time, it looks as though will be the best choice as a primitive, so will be defined by Eq. 45 or 46. Reaction: (48) ¯ ¯ M,g0 ¯ ¯ ; ¯ D,g0 ¯ ; ¯ ¯ ¯ cw=0 (JBJ0YAE cN=S0&BJ »J B U Reaction Specification: w: Wsh, a: A, a’: A, u, x, y, v: V, p: P, p’: P, q: Q. u a, a_1 a’, a’_1 w, a’_2 x, a_2 y, p v_1, p’ v_2, v q => (SharingWreaction) u a, a_1 a’, a’_1 x, a’_2 v_1, a_2 v_2, v y, p’ w, p q. ¯ (49) D¯ ,g0« ^? Z (50) (¯ 0,¨« ^? Z © %,g0 « ^? Z ¼ ½ % $ VXVX¾¨VY¿ À (51) , %2´ Notes: The primes and superscripts on in Eq. 51 represent successive sharings of Equivalences: (see Sec. 17). 20 º Combinator (Pure Duplicator) Definition: (»?UZz& 10 (52) Equivalences: Size:  21 ;jBD|<mBG}~=(?nG (Á? H_ (53) total. Combinator (Elementary Fixed-point, Replicating) ` T ?UZ `u Definition: Reduction to ;^< (54) : ` ? ;P;^<v Q; 8<[ g;P; Q;U Q;P;^</<S Size: ;jBM <mBGG=(?eKin total. (55) Equivalences: ` ? ( ; : ` ? ;P;U_à Q;^ <v Q;U__# ` ? where e?: Q;U_# ` ? :_ µ µ ;^< (56) (57) (58) (59) Notes: Definition 55 by John Tromp [LV97] may be the shortest definition in terms of (12 combinators). Definitions by Curry and Turing are longer (18 and 20, respectively). 22 ®Â Combinator (Elementary Fixed-point, Sharing) Definition: Reaction: ¯ `6?^Z Ä where Äy? T Ä ¯ ¯ cN= `[BJ0OE c]W=B `! B ^ Reaction Specification: y: Ysh, a: A, v: V, x, p: P, p’: P, q: Q. u a, a_1 y, a_2 x, p v_1, p’ v_2, v q => (SharingYreaction) u v_1, v a, a_1 x, a_2 v_2, p’ y, p q. 11 (60) (61) ¯T Notes: The following illustrates the self-sharing cycle created by ` ¯ `T : ? ÄT ? T Ä T ? T T Ä ? T T Ä T ? T T T Ä ? Ä .. . ? T T T T T #"$ T sÅ8$ VXVXV# T Of course, it is the = complex that is shared, not , as the notation suggests. Æ 23 Combinators (Iterators or Church Numerals) Definition: Ç ? < 6 _ ¹ %X´ ,? ;U % Size: Qn ° BG};©Be 7K ° BMn*<-BA 7 ° BDn8=(?GXÈ ° Bko Equivalences: Ç Ç ? %Ç Ç Ç % ? Ç4 Ç 5SÇ ´% Ç Ç5 % ? 5% 5«µ % ? %2É 5 % 24 Ê Ç Ç (62) (63) Ç total for %. (64) (65) (66) (67) Combinator (Dyadic Compositor) Definition: 46Ëce?UZzM Qc§+ 7Ëc (68) Equivalences: 4 ? T t ;P+ j T © t Ì 4% - ,VXVXV8 % ?^Z m,VXVXV % Ì -,WVXVXV % Size: oi;jBD{|<mBG}K~=(?eK total (Def. 69). 12 (69) (70) ÊÍ° 25 Combinator (Polyadic Compositor) Definition: Reduction to ;^< : 4 % U,WVXVXVY % J?UZzM QU,^VXVXV Q % 4 % ? ; %Nµ < 8¯ =(?GX ° EMo total for 4 % . ¯ Size: 7 ° EK;jBO ¬ ° E:G}/<mBA g¶ ° E­q Notes: 4 can be replicating or sharing ( 4 ), depending on whether ; or ; % % % % definition 72. If it is sharing, then the following structure is generated: ¯ 4 % U,^VXVXV % ?UZfM QU, %L· , $ ^VXVXV2 g %~· , Q % (71) (72) is used in (73) Equivalences: 4 %X´ , ? ; %Nµ 4 5% ,WVXVXV % v,WVXVXV 5 ?UZ QU,[,VXVXVY 5 ^VXVXVX g % v,VXVXV 5 4 52% ´ , _,WVXVXV % v,WVXVXV 5 ?UZ [,VXVXV 5 QU,v,^VXVXVY 5 ^VXVXV2 Q % v,VXVXV 5 26 Î (74) (75) (76) Combinator ( Î Formalizer) Definition: Reduction to ;^< awyc¦?UZ M gyc g¦ (77) : a ? Size: Ki{;jBDKL P<-BM ¶i=Í?A¶¶ total. 13 (78) Other Notation 27 Composition Definition: µ ?¼^ Size: Ki;jBkKl<mBkL=!?e¶ total, plus 9 k9*B9 Ï9 . (79) Equivalences: µ _? _ µ ?J µ Q µ ³? ¬ µ µ ¬ µ ³? ^ µ 28 (80) (81) (82) Powers Definition: ¹, ? _ , ? %X´ ? µ % KP ° EMG};B­KP ° EDG}/<ÐB­ ° EMG}8=(?¶h ° EDG} Size: Equivalences: (83) (84) (85) (86) total, plus 5 µ % ? 5´% 5 % ? 5% ^u 5 ? 5 29 ° 9 k9 , for % , °Ñ G . (87) (88) (89) Deferred Combinators Definition: r¹8$ ? %X´ , $ ? ^ % $ Size: K ° ;©BDK ° <-BM ° =­?e ° total, plus 9 :9 , for % $ . 14 (90) (91) (92) Equivalences: T -,VXVXV ?UZ T -,VXVXV8 % % %$ ¹ ¹ 5´% $ ? 5 % $ T T Notes: If is regular (p. 2), U,VXVXV ?UZfuv,^VXVXVY , then T t -,^VXVXV U,VXVXVY ?U% Z t -,VXVXV v5 ,VXVXV % 5]\ rÒY$ Ò Ò T T That is, of by Ó steps. Since , , _ , < , and are regular: rÒY$ defers the action T % $ T -,VXVXV % t ?UZ TT -,WVXVXV % t % $ m,VXVXV % ?UZ -,WVXVXV % w _ % $ ¹ VXVXV % ?UZ ¹ VXVXV8 % < %T $ ¹ VXVXV8 % ?UZ T ¹ VXVXV8 % % $ -,^VXVXV8 % ?UZ -,WVXVXV % 30 (93) (94) (95) (96) (97) (98) (99) Left Reduction Definition: '¹ ) ? _ (100) ', ) ? (101) ' %2´ , ) ? ^ ' %+)iµ (102) Size: ² ° E:G};jBD h ° E:G}/<mBD¶P ° EHG}8=(?G}oP ° EHGX total, plus ° 9 k9 , for . ' + % ) Equivalences: T -,VXVXV ?UZ T T VXVXV2 T T -,¨10*^VXVXV ,8 (103) %L· % T ' %*, ) ¹ -,VXVXV % ?UZ T T m,810¹ VXVXV (104) ' %2´ ) ¹ % '% %+) ¹ %L· , %0 (105) ' %X´ , ) ? µ µ VXVXV µ µ ^ µ ' %X´ , ) ? % $ 0 µ %~· , $ µ VXVXV µ 0 $ µ , $ µ r¹8$ (106) ' %X´ , ) ? u % (107) ' 5´%+) ? T 5 ' %+) µ ' 5) (108) T ' %*) m,VXVXV % %X´ ,±?UZ %X´ ,7m,VXVXV % (109) ; ' %+) ? ; % (110) T T can be called a left reduction [Mac90]. To see this, write in infix form, ' * % ) T§Ô ÄyNotes: © Ô Õ ? Ä and assume Õ associates to the left (so ÔÕ Ä ÕwÖ ?× Ô©Õ Ä ÕÖ ). Then: T Ô Ô ,^VXVXV Ô ? Ô Õ]Ô , Õ VXVXV ÕNÔ ' %+) ¹ % ¹ %\ T For regular, T ?¼ ¨S 0 T *_ (111) ' %*) 15 31 Polyadic Extension Definition: ' ¹, ) ? _ ', ) ? ' %2´ ) ? µ ^ ' %*) ° E:G};jBD h ° E:G}/<mBD¶P ° EHG}8=(?G}oP ° EHGX Size: ² Equivalences: Notes: If T (112) (113) (114) total, plus , ) ? 0 ­ % ' 2 % ´ ' %*) T -,¨10VXVXV8 %2´ ,Ø?UZ T 1 0VXVXV %2´ ,¨-, is regular, T ' %*) T ' %2´ , ) T ' %2´ , ) T ' 5S´%*) ? T 0 ­T % _ ? T µ T µ VXVXV µ % T T ? T s¹8$ µ , $ T µ VXVXV µ % $ ? ' 5) µ 5 ' %+) ° 9 k9 , for (' %+) . (115) (116) (117) (118) (119) (120) References [Bar84] H. P. Barendregt. The Lambda Calculus: Its Syntax and Semantics. NorthHolland, Amsterdam, revised edition, 1984. [Bur75] William H. Burge. Recursive Programming Techniques. Addison-Wesley, Reading, 1975. [CFC58] H. B. Curry, R. Feys, and W. Craig. Combinatory Logic, Volume I. NorthHolland, Amsterdam, 1958. [LV97] M. Li and P. M. B. Vitanyi. An Introduction to Kolmogorov Complexity and its Applications. Springer-Verlag, New York, second edition, 1997. [Mac84] Bruce J. MacLennan. Computable real analysis. Technical Report NPS52-84024, Dept. of Computer Science, Naval Postgraduate School, 1984. [Mac90] Bruce J. MacLennan. Functional Programming: Practice and Theory. AddisonWesley, Reading, 1990. 16