perm filename COMMEN[1,LMM] blob sn#034813 filedate 1973-04-09 generic text, type T, neo UTF8
PRINTCOMMENTS)
CYCLIC

VALENCE(X)
                                                (* This function finds 
                                                the VALENCE of an atom 
                                                or STRUCTURE or 
                                                STRUCFORM)

FVPARTITION1(N VL S)


          (* This function is a sub-function of FVPARTITIONS -
          I'm not too sure what it does offhand)



FVPART1(N MAXSUM MAXOCCUR)
                                                (* Again , i'm not too 
                                                sure what this function 
                                                does)

MINLOOPS(VALENCELIST)


          (* This function computes the minimum number of 
          loops that any STRUCTURE with the given VALENCELIST 
          must have -
          See cycgen paper for derivation of formula)



MAXLOOPS(VALENCELIST)


          (* This function computes the maximum number of 
          loops that any STRUCTURE with the given VALENCELIST 
          may have -
          See cycgen paper for derivation of formula)



SUPERATOMPARTITIONS(CL U)


          (* This function finds all partitions of CL and 
          unsaturation U into superatom parts and remaining 
          atoms, according to the constraints given in the 
          cycgen paper about valid superatom parts -
          The value is a list of SUPERATOMPARTITION records)



MAXUNSATL(PC U)


          (* This function, i think, takes a composition list 
          of composition lists (pc) and an unsaturation 
          (U) and returns a list of the maximum unsaturation 
          that may be assigned to each individual part in pc 
          such that the final structures will each have 
          correct TOTAL unsaturation and a free VALENCE of at 
          least one)



COMPUTEFV(U CL)


          (* This function computes the free VALENCE of a 
          composition and saturation -
          I.e. Any STRUCTURE with the given composition and 
          unsaturation will have the resulting number of free 
          valences)



ROWS(LL)


          (* Ll is a list of lists -
          If one envisions it as a matrix, this function 
          computes the transpose)



BIVALENTPARTITIONS(VL)


          (* This function takes a valence list 
          (starting with bivalents) and partitions 
          (CAR VL) into (number of EDGES IN a STRUCTURE built 
          on (CDR VL)) parts)



TRIMZEROS(L)


          (* This function takes a list of numbers and returns 
          the list with trailing zeros removed)



TD(VL J)


          (* This function takes a VALENCE list starting with 
          j-valents and returns the TOTAL VALENCE)



M2/2(N)
                                                (* Silly function -
                                                Computes (n/2) -1)

LOOPPARTITIONS1(P VL J)
                                                (* SUBFUNCTION OF 
                                                LOOPPARTITIONS -
                                                DONT REMEMBER WHAT IT 
                                                DOES)

JLIST(LL N)
                                                (* AGAIN, I DON'T 
                                                REMEMBER WHAT THIS ONE 
                                                DOES)

LPROWS(LPP VL)
                                                (* AGAIN, I DON'T 
                                                REMEMBER WHAT THIS ONE 
                                                DOES)

LOOPPARTITIONS(P VL)
                                                (* THIS FUNCTION FINDS 
                                                ALL LOOP PARTITIONS -
                                                I'M NOT SURE HOW, 
                                                THOUGH)

CLPARTLP1(CL ROW N)
                                                (* Again, i don't 
                                                remember what this one 
                                                does)

STRUCTURESWITHATOMS(CLL STRUC)


          (* CLL is a list of composition lists the first CL 
          contains bivalent atoms, the second, trivalent 
          atoms, and so forth -
          Struc is a STRUCTURE -
          STRUCTURESWITHATOMS finds all ways of attaching the 
          given atoms to the STRUCTURE by labelling)



NUMPARTITIONS(N NUMPARTS MINPART MAXPART)


          (* This function finds all partitions of the number 
          N into numparts parts, WHERE each part is greater or 
          equal to minpart and less than or equal to maxpart -
          The result is a list of partitions, WHERE a 
          partition here is a list of numbers, the sum of 
          which is N)



NUMPARTITIONS*(U MN MAXIMA OCCURLIST)
                                                (* Again, i don't 
                                                remember what this one 
                                                does)

FVPARTITIONS(FV VL)


          (* This function finds all ways of partitioning free 
          valences fv among the "ATOMS" of vl 
          (vl is a VALENCE list) according to appropriate 
          constraints)


↑LSTRGEN

STARTUPNIL


          (* This function does all of the things necessary to 
          LOAD the STRUCTURE generator)


↑LCL

CLDIFF(CL1 CL2)


          (* This function computes the DIFFERENCE of two 
          composition lists -
          Zero terms are eliminated)



CLCOUNT(CL)
                                                (* This function 
                                                computes the number of 
                                                elements IN a 
                                                composition list)

CLPARTS(CL PARTSIZE)


          (* This function finds all SUB compositions of the 
          composition list cl1 which are of SIZE parsizze, and 
          returns a list of the possibilities -
          I.e. (CLPARTS ' ((A . 3) (B . 2)) 2) returns 
          (((a . 2)) , ((a . 1) (b . 1)), 
          ((b . 2))))



CLPARTITIONSN(CL N MINPARTSIZE MAXPARTSIZE)


          (* This function finds all partitions of CL into N 
          parts WHERE each part has a CLCOUNT of at least 
          MINPARTSIZE and at most MAXPARTSIZE)



CLPARTITIONS(CL PARTSIZES)


          (* PARTSIZES IS a list of numbers -
          This function finds all partitions of CL into PARTS 
          WHERE each PART IS of the corresponding SIZE IN 
          PARTSIZES -
          The sum of PARTSIZES must be equal to the CLCOUNT of 
          CL or ELSE the value will be NIL -
          The value IS a list of partitions;
          a partition IS a list of composition lists)



CLCREATE(L)


          (* This function takes a list which may have 
          duplicates, and returns a composition list which 
          corresponds to it -
          I.e. (CLCREATE ' (A A A B B C)) returns 
          ((a . 3) (b . 2) (C . 1)))



CLINSERT(ITEM CL)
                                                (* This function returns
                                                the composition list CL 
                                                with "ITEM" inserted)

CL=PARTS(CL NPARTS PARTSIZE)


          (* This function finds all partitions of CL into 
          NPARTS parts, where every part is of size PARTSIZE -
          NPARTS*PARTSIZE must be equal to the CLCOUNT of CL)



CLBYVALENCE(CL)


          (* CL must be a composition list of things with a 
          VALENCE -
          This function returns a list of composition lists;
          the first CL contains those things with VALENCE 2 -
          The second those with VALENCE 3, and so on)



CLPARTITIONSL(CL LL)
                                                (* Damn if i can 
                                                remember what this one 
                                                does)

CLEXPAND(CL)


          (* This function is the inverse of CLCREATE -
          It takes a composition list and returns a list with 
          the appropriate number of copies of each item IN the 
          composition list -
          I.e. (CLEXPAND ' ((A . 3) (B . 2))) gives 
          (a a a b b))


↑LGENLISP

GROUPRADS(RADCLIST)


          (* This function takes a composition list of lists, 
          and returns all possible selections of items from 
          those lists; e.g. doing GROUPRADS on 
          (((a b C D e) . 3) ((F g H i) . 2)) will return all 
          lists in which three elements come from 
          (a b C D e) and 2 elements come from 
          (F g H i) -
          Duplication is allowed; i.e. 
          (a a a F F) will be among the resulting lists)



GROUPRADS1(RADLIST N RADSLIST)
                                                (* Subfunction of 
                                                GROUPRADS)

FIX+(X)
                                                (* Rounds a number 
                                                upward)

GROUPBY(FN L)


          (* FN is a functional argument, l is a list -
          This function groups l by the value of FN applied to 
          its elements -
          It returns a list of groups -
          The CDR of a GROUP contains elements of l which all 
          have the same value of FN -
          The CAR is that value -
          Can be used to GROUP a list of atom names by their 
          VALENCE, for EXAMPLE)



*CARLIST(L)
                                                (* (MAPCAR L 
                                                (FUNCTION CAR)))

CDRLIST(L)
                                                (* (MAPCAR L 
                                                (FUNCTION CDR)))

LCARLIST(L)
                                                (* (MAPCAR L 
                                                (FUNCTION CARLIST)))

LCDRLIST(L)
                                                (* (MAPCAR L 
                                                (FUNCTION CDRLIST)))

DELETE(I L)
                                                (* Returns l with the 
                                                first instance of i 
                                                deleted)

DIFF(L1 L2)


          (* Returns the list of elements of l1 which are not 
          elements of l2)



ORDPAIR(X1 X2)


          (* Returns either (CONS X1 X2) or 
          (CONS X2 X1) depending on whether x1<x2 or not -
          Uses a generalized ordering in which anumbers are in 
          order numerically, and less than atoms which are 
          ordered alphabetically, and are less than lists 
          which are ordered first by their CAR and then by 
          their CDR)



MAXREST(VL J)
                                                (* Silly function used 
                                                somewhere -
                                                Again damn if i know)

MAX(X Y)
                                                (* MAX of X and Y)

MIN(X Y)
                                                (* MIN of X and Y -
                                                Uses INTEGER arithmetic)

TWICE(X)
                                                (* X*2)

LEQ(X Y)
                                                (* Generalized ordering 
                                                function -
                                                See ORDPAIR)

*PLUS(L)
                                                (* L is a list of 
                                                integers -
                                                *PLUS computes their 
                                                sum)

LMASSOC(X Y Z)


          (* This is similar to the ASSOC on the 360 -
          If there is an element of Y whose CAR is equal to Y, 
          returns its CDR -
          Otherwise returns z)



*MAX(L)
                                                (* L is a list of 
                                                integers -
                                                *MAX returns their 
                                                maximum)
↑LNIL
←
(OUFILE NEWCOMMENTS]
U.D.F.
OUFILE

←$

←(\(OUTN\NFILE(NEWCOMMENTS]
T
←PRINTCOMMENTS]
NIL
←HOST
SU-AI
←LISTFILE##
CLOSEF]
NEWCOMMENTS.;1
←LISTFILE(NEWCOMMENTS]

 ISI-TENEX 1.31.6, ISI-TENEX EXEC 1.50.1
@FTP
USC-ISI FTP User process 1.17.0
*C SU-AI
 Connection opened
 Assuming 36-bit connections.

*LOG 1,LMM
< GREETINGS FROM STANFORD'S FTP SERVER.
< IMPLEMENTED COMMANDS: USER,TYPE,MODE,BYTE,RETR,STOR.
< IMAGE TYPE ONLY AT PRESENT
< REPORT PROBLEMS TO RALPH GORIN (REG).
*TE
*SE NEWCOMMENTS.;1 [Confirm]

 to remote-file NEWCOMMENTS
< STOR COMMAND OK, PLEASE BEGIN TRANSFER
< DATA TRANSFER COMPLETE, FROM YOU TO US

2517. bytes transferred, run time = 1070. MS,
 Elapsed time = 6640. MS, Rate = 13646. Baud.

*

*QUIT
@QUIT
NIL
←↑C
@DEL NEWCOMMENTS
@DIR,
@@RE
@@CH
@@SI
@@DA
@@

   <MASINTER>
                PGS WRITE     

 VVL6.  ;2        7  5-APR-73 
 DRAW.TEM;2       6  5-APR-73 
 VVL.   ;5        3  5-APR-73 
 IMDRAW.COM;10   39  5-APR-73 
    .   ;12      22  5-APR-73 
 RSEMAX.;1        1  5-APR-73 
 RSE.ABS;1        3  5-APR-73 
    .REL;1        1  5-APR-73 
    .F40;2        1  5-APR-73 
 FINDNDS.;1       1  5-APR-73 
 ACCT.  ;7        5  1-APR-73 
 ACCTDAT.APR;1    2  1-APR-73 
 EDITSTRUC2.;1    4 30-MAR-73 
 EDITSTRUC.;17    7 30-MAR-73 
 BGBMATCH.;11     8 28-MAR-73 
 OLDMESS.TXT;1    2 26-MAR-73 
 GENPAT.;16       3 25-MAR-73 
 MATCH. ;18       5 25-MAR-73 
 PARSE. ;19       3 25-MAR-73 
 COLLECT.;20      2 25-MAR-73 
 ANALPAT.;11      5 25-MAR-73 
 MATCH.WRITEUP;1   4 25-MAR-73 
 FILDIR.COM;3     2 25-MAR-73 
    .   ;3        2 25-MAR-73 
 LISP.INITOLD;1   9 24-MAR-73 
 XGP.   ;3        1 24-MAR-73 
 PRAD.  ;8        2 24-MAR-73 
 ACYCLIC.FUDGE;2   1 17-MAR-73 
 URINE. ;14       3 14-MAR-73 
 URINESUPERATOMS.;2   1 14-MAR-73 
 COMMENT.;3       4 12-MAR-73 
 CL .   ;12       4 12-MAR-73 
 XFORMS.;1        5 11-MAR-73 
 STRUCTURE.DOC;1   2  6-MAR-73 
 ACCTDAT.MAR;1    1  1-MAR-73 
 INIT.COM;5       1 15-FEB-73 
    .   ;9        4 15-FEB-73 
 SAVEFIX.;1       1 15-FEB-73 
 DIALOG.;2        1 15-FEB-73 
 DICT.COM;9       4  7-FEB-73 
    .   ;12       4  7-FEB-73 
 DRAWX.SAV;1      9  2-FEB-73 
    .F4 ;2        6  2-FEB-73 
 EXPLAIN.;9       6 31-JAN-73 
 CYCLIC.COM;1    13 13-JAN-73 
 TREE.  ;9        2 13-JAN-73 
 TOTAL.COM;13    21 13-JAN-73 
    .   ;29      15 13-JAN-73 
 TOP-LEVEL.;6     2 13-JAN-73 
 STRUCTURE.;10    4 13-JAN-73 
 STRGEN.SYS;32  259 13-JAN-73 
    .   ;13       1 13-JAN-73 
 NEWGEN.;3        2 13-JAN-73 
 LABELER.;3       7 13-JAN-73 
 KLOOP. ;17       3 13-JAN-73 
 IO .   ;9        2 13-JAN-73 
 GROUP.COM;4      6 13-JAN-73 
    .   ;5        3 13-JAN-73 
 GENLISP.COM;7    4 13-JAN-73 
    .   ;7        2 13-JAN-73 
 EXTRA.COM;1      1 13-JAN-73 
    .   ;1        1 13-JAN-73 
 EXPLAIN.COM;7   10 13-JAN-73 
 EXPAND.COM;34   11 13-JAN-73 
    .   ;71       4 13-JAN-73 
 EXAMPLE.COM;11   5 13-JAN-73 
    .   ;14       2 13-JAN-73 
 DRAW.SAV;4      16 13-JAN-73 
    .COM;8        3 13-JAN-73 
    .   ;10       2 13-JAN-73 
 CYCLIC.;9        8 13-JAN-73 
 CL .COM;8        7 13-JAN-73 

@ARCHIVE ACCTDAT.MAR
@AR↑C
@TYP FOR ? ↑C
@CONT
]
NIL
←(CADR (CATALOG '(6]
NIL
←(TURNON]
($RINGS KLOOPEDRINGS RINGSKELETONS DAISIES CATALOG NOFV-RINGS RINGS
GENMOL PERMRADS STRUCTURESWITHATOMS ATTACHBIVALENTS ATTACHBIVS&LOOPS
ATTACHFVS MOLECULES)
←REDO CADR
(STRUCTURE ((CTENTRY 6 (NIL) 5 1 5) (CTENTRY 5 (NIL) 6 6 4) (CTENTRY
4 (NIL) 3 5 3) (CTENTRY 3 (NIL) 4 4 2) (CTENTRY 2 (NIL) 1 3 1) (CTENTRY
1 (NIL) 2 6 2)) (6 A A A) 6 NIL)
←FIX
EDIT
*P
(CADR (CATALOG &))
*MBD DRAWS
*OK
    6
  6 0     5  1  5
  5 0     6  6  4
  4 0     3  5  3
  3 0     4  4  2
  2 0     1  3  1
  1 0     2  6  2
 (6 A A A)
END*
END*
←REDO
    6
  6 0     5  1  5
  5 0     6  6  4
  4 0     3  5  3
  3 0     4  4  2
  2 0     1  3  1
  1 0     2  6  2
 (6 A A A)
END*
END*
←FIX
EDIT
*P
(DRAWS (CADR &))
*(1 DRAWS\S]
*OK


 (6 A A A)                                                              


0        
*=       
* =      
*  =     
0   0    
 =   *   
  =   *  
   =   * 
    0   0
     *  =
      * =
       *=
        0


CPU TIME: 1.01  ELAPSED TIME: 2.00
NO EXECUTION ERRORS DETECTED

EXIT.
↑C
NIL
←LOAD(IMDRAW.COM]
COMPILED ON  5-APR-73 15:01:40
FILE CREATED  5-APR-73 14:59:23
IMDRAWFNS
IMDRAWVARS

GC: 28
111, 623 FREE WORDS
(MIN REDEFINED)
(MAX REDEFINED)

GC: 1
π1446, 8102 FREE WORDS
INTERRUPTED BEFORE RATOM

(RATOM BROKEN)
:FILELST
(COMMENT NEWFILE.COM EXPLAIN EXPLAIN.COM KLOOP KLOOP.COM TREE TREE.COM
TOP-LEVEL TOP-LEVEL.COM STRUCTURE STRUCTURE.COM NEWGEN NEWGEN.COM
MORETOT LAYOUT LAYOUT.COM LABELER LABELER.COM IO IO.COM INIT INIT.COM
GROUP GROUP.COM GENLISP GENLISP.COM EXPAND EXPAND.COM EXAMPLE 
EXAMPLE.COM DRAW DRAW.COM CYCLIC CYCLIC.COM CL CL.COM STRGEN STRGEN.COM
TOTAL TOTAL.COM)
:(SETQ FILELST]
(FILELST RESET)
NIL
:OK
RATOM
(LAYOUT REDEFINED)
(ANALIN REDEFINED)
(SORTLN REDEFINED)
(STRLNA REDEFINED)
(FINDNDS REDEFINED)
(STKNDS REDEFINED)
(SETND REDEFINED)
(RTLIN REDEFINED)
(CONCT REDEFINED)
(OUTNDS REDEFINED)
(CKINT REDEFINED)
(SLOPE REDEFINED)
(SRTLNA REDEFINED)
(DRAW REDEFINED)
(DRAWS REDEFINED)
(PRINRAD REDEFINED)
(PRINENTRY REDEFINED)
IMDRAW.COM;10
←REDO DRAW

NON-NUMERIC ARG
NIL
IN ELT

(BROKEN)
:BTV
ELT

   Y1 0
   Y NIL
   X NIL
SRTLNA

   Y1 0
   Y NIL
   X3 NIL
   X2 NIL
   X1 0
   X NIL
   L NIL
SORTLN

   X1 NIL

   X (NIL)
LAYOUT

   CTAB NIL

   ID NIL
   STRUC (STRUCTURE ((CTENTRY 6 (NIL) 5 1 5) (CTENTRY 5 (NIL) 6 6
4) (CTENTRY 4 (NIL) 3 5 3) (CTENTRY 3 (NIL) 4 4 2) (CTENTRY 2 (NIL)
1 3 1) (CTENTRY 1 (NIL) 2 6 2)) (6 A A A) 6 NIL)
DRAWS

   TITLE NIL
   CTAB NIL
   O NIL

   RAD NIL
   STRUC (STRUCTURE ((CTENTRY 6 (NIL) 5 1 5) (CTENTRY 5 (NIL) 6 6
4) (CTENTRY 4 (NIL) 3 5 3) (CTENTRY 3 (NIL) 4 4 2) (CTENTRY 2 (NIL)
1 3 1) (CTENTRY 1 (NIL) 2 6 2)) (6 A A A) 6 NIL)
DRAW

**TOP**

:BTV
ELT

   Y1 0
   Y NIL
   X NIL
SRTLNA

   Y1 0
   Y NIL
   X3 NIL
   X2 NIL
   X1 0
   X NIL
   L NIL
SORTLN

   X1 NIL

   X (NIL)
LAYOUT

   CTAB NIL

   ID NIL
   STRUC (STRUCTURE ((CTENTRY 6 (NIL) 5 1 5) (CTENTRY 5 (NIL) 6 6
4) (CTENTRY 4 (NIL) 3 5 3) (CTENTRY 3 (NIL) 4 4 2) (CTENTRY 2 (NIL)
1 3 1) (CTENTRY 1 (NIL) 2 6 2)) (6 A A A) 6 NIL)
DRAWS

   TITLE NIL
   CTAB NIL
   O NIL

   RAD NIL
   STRUC (STRUCTURE ((CTENTRY 6 (NIL) 5 1 5) (CTENTRY 5 (NIL) 6 6
4) (CTENTRY 4 (NIL) 3 5 3) (CTENTRY 3 (NIL) 4 4 2) (CTENTRY 2 (NIL)
1 3 1) (CTENTRY 1 (NIL) 2 6 2)) (6 A A A) 6 NIL)
DRAW

**TOP**

:
(BROKEN)
:ED##
GETD(DRAWS]
#557415
:(EDITE(COPY(CADR (CATALOG @(6\6\(\@'(6]
EDIT
*P
(STRUCTURE (& & & & & &) (6 A A A) 6 NIL)
*SW 1 2
*P
((& & & & & &) STRUCTURE (6 A A A) 6 NIL)
*UNDO
SW UNDONE.
*SW 1 3
*P
((6 A A A) (& & & & & &) STRUCTURE 6 NIL)
*RO 2
*P
((6 A A A) (& & & & & & STRUCTURE 6 NIL))
*UNDO
RO UNDONE.
*P
((6 A A A) (& & & & & &) STRUCTURE 6 NIL)
*RI 2

(RI 2)  ?
*LO 2
*P
((6 A A A) (CTENTRY 6 & 5 1 5) (CTENTRY 5 & 6 6 4) (CTENTRY 4 & 3
5 3) (CTENTRY 3 & 4 4 2) (CTENTRY 2 & 1 3 1) (CTENTRY 1 & 2 6 2))
*3 P##
2 P
(CTENTRY 6 (NIL) 5 1 5)
*LP (1)
...NX
5 OCCURRENCES.
*0 PP
  ((6 A A A)
   (6 (NIL)
      5 1 5)
   (5 (NIL)
      6 6 4)
   (4 (NIL)
      3 5 3)
   (3 (NIL)
      4 4 2)
   (2 (NIL)
      1 3 1)
   (1 (NIL)
      2 6 2))
*R (NIL)
...C
*P
((6 A A A) (6 C 5 1 5) (5 C 6 6 4) (4 C 3 5 3) (3 C 4 4 2) (2 C 1
3 1) (1 C 2 6 2))
*(E(LAYOUT(##]



      C
     * =
    *   =
   *     =
  *       =
 *         =
C           C
=           *
=           *
=           *
=           *
=           *
C           C
 *         =
  *       =
   *     =
    *   =
     * =
      C

(6 A A A)



NIL
*E LOADFNS((##
E (BREAK LAYOUT]
(LAYOUT)
*E (DRAWS (CADR (CATALOG @6]
U.B.A.
@6

E  ?
*FIX
EDIT
*STOP

*E FIX
EDIT
*P
(DRAWS (CADR &))
*R @6 '(6]
*P
(DRAWS (CADR &))
*PP
  (DRAWS (CADR (CATALOG ')))
*F '
*P
... ')
*(N (6]
*OK

   (LAYOUT BROKEN)
:?=
X = (NIL)
:BTV

   X (NIL)
LAYOUT

   CTAB NIL

   ID NIL
   STRUC (STRUCTURE ((CTENTRY 6 (NIL) 5 1 5) (CTENTRY 5 (NIL) 6 6
4) (CTENTRY 4 (NIL) 3 5 3) (CTENTRY 3 (NIL) 4 4 2) (CTENTRY 2 (NIL)
1 3 1) (CTENTRY 1 (NIL) 2 6 2)) (6 A A A) 6 NIL)
DRAWS
;EVAL;

   LISPXVALUE NIL
   LISPXHIST (π SIDE (0 (((QUOTE (6))) ' (6))))
   LISPXLINE NIL
   LISPXLISTFLG T
   HELPCLOCK -1391163

   LISPXID *
LISPX
ERRORSET

   LISPXVALUE NIL
   LISPXHIST (((DRAWS (CADR (CATALOG (QUOTE (6)))))) * π HISTORY
(FIX) GROUP ((π SIDE (0 (((QUOTE (6))) ' (6))))) EDIT ((((DRAWS (CADR
(CATALOG (QUOTE (6))))))) NIL ((N (((QUOTE (6))) (CATALOG (QUOTE (6)))
(CADR (CATALOG (QUOTE (6)))) (DRAWS (CADR (CATALOG (QUOTE (6)))))
((DRAWS (CADR (CATALOG (QUOTE (6))))))) (((QUOTE (6))) ')) (R ((DRAWS
(CADR (CATALOG (QUOTE (6))))) ((DRAWS (CADR (CATALOG (QUOTE (6)))))))
(((QUOTE (6))) @6))) ((QUOTE (6))) (CATALOG (QUOTE (6))) (CADR (CATALOG
(QUOTE (6)))) (DRAWS (CADR (CATALOG (QUOTE (6))))) ((DRAWS (CADR (
CATALOG (QUOTE (6))))))) EDITHIST (NIL ((OK) * π) (((N (6))) * (N
(((QUOTE (6))) (CATALOG (QUOTE (6))) (CADR (CATALOG (QUOTE 
(LAYOUT BROKEN)
:
(LAYOUT BROKEN)
:STOP

E  ?
*P
((6 A A A) (6 C 5 1 5) (5 C 6 6 4) (4 C 3 5 3) (3 C 4 4 2) (2 C 1
3 1) (1 C 2 6 2))
*ST##
E PATSELECT
((6 16 18) (5 17 17) (4 17 16) (3 16 15) (2 15 16) (1 15 17))
*E SUBSYS(TELNET]

User Telnet 2.7 8-Sep-72.  Type HELP<cr> for help.
#SAIL is complete.#

SU-AI (SAIL) PDP-10. Login by "LOG NET,GUE<return>". Report problems
with NCP/FTP to Ralph Gorin (REG), (415) 321-2300 x 4971. If this is 
your first use of our system, please type "SEND HOS<return>" and tell
us who you are and why you're here. Please "TYPE SYSTEM.USE[NET,GUE]"
if you've never read it.  Thanks.


#DISconnect 
#QUIT 131073
*E KFORK(T]
NIL
*E (BREAK PATMATCH]
(PATMATCH)
*P##
P
((6 A A A) (6 C 5 1 5) (5 C 6 6 4) (4 C 3 5 3) (3 C 4 4 2) (2 C 1
3 1) (1 C 2 6 2))
*(LAYOUT(@@\@\@##]

(LAYOUT (##))  ?
*!E

   (LAYOUT BROKEN)
:?=
X = ((6 A A A) (6 C 5 1 5) (5 C 6 6 4) (4 C 3 5 3) (3 C 4 4 2) (2
C 1 3 1) (1 C 2 6 2))
:EVAL

      (PATMATCH BROKEN)
:PATSELECT
((6 16 18) (5 17 17) (4 17 16) (3 16 15) (2 15 16) (1 15 17))
:CURPAT
(HEX ((1 2 6) (2 3 1) (3 4 2) (4 5 3) (5 6 4) (6 5 1)) (1 (6) ((1
6 (1 6 5 4 3 2)))) ((6 1) (5 1) (4 1) (3 1) (2 1) (1 1)) (((5 . 6)
1) ((4 . 5) 1) ((3 . 4) 1) ((2 . 3) 1) ((1 . 2) 1) ((1 . 6) 1)) ((1
1 3) (2 2 2) (3 2 1) (4 1 0) (5 0 1) (6 0 2)))
:(SETQ CURPAT (SETQ PATSELECT NIL]
(PATSELECT RESET)
(CURPAT RESET)
NIL
:EVAL
      PATMATCH EVALUATED
:CURPAT
(HEX ((1 2 6) (2 3 1) (3 4 2) (4 5 3) (5 6 4) (6 5 1)) (1 (6) ((1
6 (1 6 5 4 3 2)))) ((6 1) (5 1) (4 1) (3 1) (2 1) (1 1)) (((5 . 6)
1) ((4 . 5) 1) ((3 . 4) 1) ((2 . 3) 1) ((1 . 2) 1) ((1 . 6) 1)) ((1
1 3) (2 2 2) (3 2 1) (4 1 0) (5 0 1) (6 0 2)))
:PATSELECT
((6 16 18) (5 17 17) (4 17 16) (3 16 15) (2 15 16) (1 15 17))
:CALLS(PATMTCH]
=PATMATCH
((FACES REEDITFACE PATFACE FACEMATCH PATNODFC NODEPICK1 NODEPICK2
PATPOINTS PATPTS) (X1 X2 Y) (PATS CURPAT PATSELECT))
:(SETQ PATSELECT (SETQ CURPAT]
(CURPAT RESET)
(PATSELECT RESET)
NIL
:(B##
##
PP PPAT##
PP PATMATCH
(PATMATCH NOT PRINTABLE)
PATMATCH
:(BREAK FACES]
(FACES)
:EVAL

         (FACES BROKEN)
:?=
π
:CURPAT
NIL
:CALLS(FACES]
((FACEF1 EDITFACE) (X FOR-VALUE MAX*X) (FACE FACENUM NMX))
:FACE
(1 (6) ((1 6 (1 2 3 4 5 6))))
:STOP
(PATMATCH BROKEN)
:(SETQ FACE NIL]
(FACE RESET)
NIL
:EVAL

         (FACES BROKEN)
:FACE
NIL
:FACENM\MUM
1
:(SETQ FACENUM]
(FACENUM RESET)
NIL
:]
NIL
:NMX
6
:EVAL
         FACES EVALUATED
:FACE
(1 (6) ((1 6 (1 2 3 4 5 6))))
:FACENUM
1
:↑C
@CONT
LOGOUT]
@DET
 DETACHING JOB # 7