'#<> D:\Documents\college\Artificial Intelligence\sudoku.lisp by NIL on LIGHTNING at 2006/10/2 11:38:31\ using 8.0 [Windows] (Sep 9, 2006 9:34).\ Optimization settings at wfasl time:\ ((SAFETY 1) (SPACE 1) (SPEED 1) (COMPILATION-SPEED 1) (DEBUG 2)) *) 8.0 [Windows] (Sep 9, 2006 9:34)AG955<*SOURCE-PATHNAME* PATHNAME DABSOLUTE  DocumentscollegeArtificial Intelligencesudokulisp UNSPECIFIC 8D:\Documents\college\Artificial Intelligence\sudoku.lisp+\Documents\college\Artificial Intelligence\  /*UV$WtWVFɋuÐ NULL 0+ @ sudoku.lispLN<TOP-LEVEL-FORM <QAG956@<SUDOKU4 /*UV$WtWVFɋuÐ NULL 0+ @<TOP-LEVEL-FORM <QAG957@<SUDOKU9               /*UV$WtWVFɋuÐ NULL 0+ @<TOP-LEVEL-FORM <pQ@FULL /DUV4tWtWwEEWW;}u EɋuÉEWW;}uEW[EWWtW3Ҩu;u}EW[EWWtWW';uڐ MATRIX02{NRET MATRIX ROW p3+ @ VALIDGROUP  COUNT-EQL /MUV4tWEtWwE]É]WW;}u EɋuËUE؋^W'3Ҳu;$EW[EWWtWËW';u3ҋ]u ;tΉ}ɋËW';t GROUP02{NGROUP RET ITEM p3+ @INT-SQRT SQRT  FLOOR_1RET /,UV$tWtW^׋^ɋu NUM0+ @ CHECKROWS  VALIDGROUP /X,UV,tWtWwEEWW;}u EɋuË^;u}EW[EWWtW͐ SUDOKU02{NRET SUDOKU p3+ @ CHECKCOLS NTHCDR  VALIDGROUP /~UV<tWtWwEEjE؉E܋E؋ ]u;E|EɋuËU܋W';tvEԋ]É]WW9E؋^W'WWW+ЋEԋW'EԋEW[EWWtW;}u‹EW[W[^;u}^3Ҳ]upE؀tWE?Ë_W' SUDOKU02{NRET SUDOKU COL TEMP p3+ @ CHECKBOXES INT-SQRT  VALIDGROUP NTHCDR SUBSEQ /B!UVdtWtWwEE܋׋^3ۋЉEÉ]ԋ u ;|EɋuÉU؋W';tUjẺU؋]E̋ u-;|>3Ҳ]uspmEԀtW]ԋU؋E닋Ӊ]ЋW';tŋ]ЋV]jEċ]EĉU u.;|?EW[W[^;}Ë_W'뉋Ӊ]ȋW';tċ]uďE]ȋEUԋW' ]]ËU܋^W'WWEEŰW'EEŰW' ]u}uEEprEU uRP^"׋ЋEW'E3Ҳ]uNpHN3Ҳ]uYpSÈtW]zЋE_W'GU_W'E뀋Ë_W'EĀtW]ȋUË_W'룐 SUDOKU02{NRET BASELEN SUDOKU ROWBASE COLBASE I TEMP  p3+ @ VALIDSUDOKU FULL  CHECKROWS  CHECKCOLS /V+UV,tWtWE^;uɋuËE^;tE^;t܋E^ SUDOKU02{NSUDOKU p3+ @SETELEM /QUVDtWUtWE܋E3Ҩu;u EW[ЋEW+ɋuËW';uEWWEEW[]3Ҳu&])UpUԃ uRP3ɱ~ЋEW+뭉E؋ËW'EԋE LISTCG.BASEINDEXVAL02{NINDEX LIST p3+ @ SETMATRIXELEM SETELEM /kUVDtWUtWEE3Ҩu=;uFEWWU uRP^׋W+E؋EW[ЋE؋W'ɋuËW';uEWWW+E܋EW[]3Ҳu/])Up'UЃuuRP3ɱPЋE܋W'량EԋËW'EЋE MATRIXROWCOLVAL02{NMATRIX ROW p3+ @EXPAND  SETMATRIXELEM /xUVTtWUtW}؉EjEԉE܋Eԋ ]u;E|EɋuËU܋W';t]UuEЉŰU3u[UEpSËŨuuRP^׋W+ЋE؋W'E3Ҳ]u+p%EԀtWE\]ȋ_W']ȉE뜋Ë_W'ѐ SUDOKUROWCOL0 2{N ROW SUDOKU STATES I p3+ @ EXPAND-FIRST NTHCDR EXPAND /@UVDtWtW}܉E䋟jE؉EE؋ ]u;E|EɋuËUW';tE䋟jEԉEЋEԋ ]u(;E|33Ҳ]ukpeE؀tWE눋UЋW';t͋E؋U^W'WWЋEԋ^W'WW3u(;u1EU؃ uRP^׉E뉋Ë_W'둋W';u3Ҳ]upEԀtWE7Ë_W' SUDOKU02{NSUDOKU LIST ROW COL p3+ @BFSOLVER  VALIDSUDOKU  EXPAND-FIRST /ZUV4||WU~-tWW+ЋE䋟W'jE;u ɋuÉ}ΉEWWE܋^;tE܋E܋^׋ЋE䋟W'W[E3Ҳ]upEtWE딋Ë_W' PROBLEM &OPTIONAL FRINGE02{NFRINGE J CUR p3+ @DFSOLVER  VALIDSUDOKU  EXPAND-FIRST /\UV4||WU~-tWW+ЋE䋟W'jE;u ɋuÉ}ΉEWWE܋^;tE܋EW[EE܋^׋U䋟W'E3Ҳ]upEtWE됋Ë_W' PROBLEM &OPTIONAL FRINGE02{NFRINGE J CUR p3+ @CHECKCOL NTHCDR  VALIDGROUP /HUV4tWUtWwEvE܉EWW9E^W'WWW+ЋE܋W'E܋EW[EWWtW;}u‹EW[W[^;u}EɋuÐ SUDOKUCOL02{NRET COL TEMP SUDOKU p3+ @CHECKBOX INT-SQRT /_2OP  FLOOR_1RET  VALIDGROUP NTHCDR SUBSEQ /UVdtWUtWE܋׋^wEvE؋ЋEU^W'^׉EԋEU^W'^׉EjEȋ]Eȋ u$;|5EW[W[^";u}EɋuËӉ]ЋW';t΋]uȏE]ЋEUԋW' ]]ËU܋^&W'WWEċEŰW'EEŰW' ]uWuEEpLEċU uRP^*׋ЋE؋W'E3Ҳ]u(p"(ЋE_W'mU_W'E릋Ë_W'EȀtW] SUDOKUROWCOL0 2{N RET BASELEN SUDOKU TEMP ROWBASE COLBASE I ROW  p3+ @GETALLOWEDVALUES  SETMATRIXELEM NTHCDR  VALIDGROUP CHECKCOL CHECKBOX /fUVTtWUtWvE؉EjEԉE܋Eԋ ]u;E|EW[W[ɋuËU܋W';t]UuẺUȋU3ueUEp]ËUȃuuRP^׋ЋEUЋ^W'WW^;u;3Ҳ]p}EԀtWEM]ċ_W']ĉE뒋EЋU^"W';tEЋU uRP^&;tU3u0p*ËW+ЋE؋W'EmË_W'v_W' SUDOKUROWCOL0 2{N ROW SUDOKU VALS I TEMP p3+ @EXPAND-ALLOWED GETALLOWEDVALUES  SETMATRIXELEM /FUVDtWtW}܉EU uRP^׉EWWFEԋEUuuRP^׋W+ЋE܋W'E܋EW[EWWtW;}uEɋu SUDOKUROWCOL02{NSUDOKU ROW STATES I p3+ @ EXPAND-BEST EXPAND-ALLOWED NTHCDR GETALLOWEDVALUES /p8UVdtWtWjEjE܉}؉}ԉE䋟׋3uGpA3ҋ‰U u;;|LE䋟jẺEЋE̋ ]uw;E|_W'뵋Ӊ]W';t]E׉]W+ЋEԋW'E3Ҳ]EtW]UUUЋW';uEU uRP^ɋuËE䋟jEȉEċEȋ ]u@;E|K3Ҳ]ÈtWEË_W'\UċW';tE̋U^W'WWЋEȋ^W'WW3uV;u_EŨ uRP^׉E׉EEԋ׋ ]uI];}RË_W'SW';u3Ҳ]u@p:EȀtWEЋEW';tȕEuȏEuE봋Ë_W'뼐 SUDOKU0 2{N SUDOKU BESTROW BESTCOL LIST BESTVALS ROW COL I TEMPVALS  p3+ @ SMARTBFSOLVER  VALIDSUDOKU  EXPAND-BEST /ZUV4||WU~-tWW+ЋE䋟W'jE;u ɋuÉ}ΉEWWE܋^;tE܋E܋^׋ЋE䋟W'W[E3Ҳ]upEtWE딋Ë_W' PROBLEM &OPTIONAL FRINGE02{NFRINGE J CUR p3+ @ SMARTDFSOLVER  VALIDSUDOKU  EXPAND-BEST /\UV4||WU~-tWW+ЋE䋟W'jE;u ɋuÉ}ΉEWWE܋^;tE܋EW[EE܋^׋U䋟W'E3Ҳ]upEtWE됋Ë_W' PROBLEM &OPTIONAL FRINGE02{NFRINGE J CUR p3+ 2xAG977@<TOP-LEVEL-FORM <SETS SUDOKU9 SUDOKU4 *SOURCE-PATHNAME*  REFERENCES !!!FULL  MACRO-CALLS SETQ =  DIRECT-CALLS CDR =_2OP NOT NULL CAR  VALIDGROUP !!! COUNT > ! ! !  COUNT-EQL >_2OP ! !!INT-SQRT ! SQRT  FLOOR_1RET !FLOOR  CHECKROWS !!! ! !! !! CHECKCOLS !+ 1+ !NTH LIST APPEND >= ! +_2OP REST !! NTHCDR CONS  APPEND_2OP ! !!>=_2OP LENGTH   CHECKBOXES !!* !!!! ! ! !"!! *_2OP !!!#!SUBSEQ !%!&!'! VALIDSUDOKU ! !!!! SETELEM ! -_2OP !-!FIRST ! !"!$!  !- !  SETMATRIXELEM ! !.!1! !"!!/!-!$!%!  !!0!!! EXPAND !!!!!! ! !!!1!$!%!&!' EXPAND-FIRST !!!!! ! ! !!!2!#!! !&!'BFSOLVER ! !!! !"!3!,!!/! !!$!% !!!!DFSOLVER ! !!!3! !"!,!!/! !!$!% !!!!CHECKCOL !!!!!! !"!! !#!$!%! !! CHECKBOX !!!)!!!! / ! ! ! !"!! !*!!!#!!+!%!&/_2OP !!'!GETALLOWEDVALUES !!!!!!! ! !$!%!7!6!#!!! !!!1! !"!&!'EXPAND-ALLOWED !!!!! ! !1!$!%! !!!:  EXPAND-BEST ! !;<_2OP !:!#!! !$!%!&!'!! !< !! !!!! !  SMARTBFSOLVER ! !!! !"!<!,!!/! !!$!% !!!! SMARTDFSOLVER ! !!!<! !"!,!!/! !!$!% !!!!UPDATE-XREF-INFO /(UV$WtWF^׋ɋuÐ NULL 0+ @32x<TOP-LEVEL-FORM <RQ32yAG978@< SMARTDFSOLVER OPERATOR !! SMARTBFSOLVER !!! EXPAND-BEST !!!EXPAND-ALLOWED !!!GETALLOWEDVALUES !!!CHECKBOX !!!CHECKCOL !!!DFSOLVER !!!BFSOLVER !! ! EXPAND-FIRST !! !EXPAND !! ! SETMATRIXELEM !! !SETELEM !! ! VALIDSUDOKU !!! CHECKBOXES !!! CHECKCOLS !!! CHECKROWS !!!INT-SQRT !!! VALIDGROUP !!!FULL !!! LOAD-SCM-INFO /(UV$WtWF^׋ɋuÐ NULL 0+ @32y<TOP-LEVEL-FORM <RQ3AG979@<FULL  .DE-ARGS. M VALIDGROUP !INT-SQRT ! CHECKROWS ! CHECKCOLS ! CHECKBOXES ! VALIDSUDOKU !SETELEM ! SETMATRIXELEM !EXPAND ! EXPAND-FIRST !BFSOLVER !DFSOLVER !CHECKCOL !CHECKBOX !GETALLOWEDVALUES !EXPAND-ALLOWED ! EXPAND-BEST ! SMARTBFSOLVER ! SMARTDFSOLVER !STORE-DOC-FORMS /(UV$WtWF^׋ɋuÐ NULL 0+ @<TOP-LEVEL-FORM <RQ