
(/VERSIONCHECK 2) 

(PUT '|TABLEAU;tableau;L$;1| '|SPADreplace| '(XLAM (|lls|) |lls|)) 

(DEFUN |TABLEAU;tableau;L$;1| (|lls| $) |lls|) 

(PUT '|TABLEAU;listOfLists;$L;2| '|SPADreplace| '(XLAM (|x|) |x|)) 

(DEFUN |TABLEAU;listOfLists;$L;2| (|x| $) |x|) 

(DEFUN |TABLEAU;makeupv| (|n| |ls| $)
  (PROG (|v| |s| #0=#:G1823 |i| #1=#:G1822)
    (RETURN
      (SEQ (LETT |v|
                 (SPADCALL |n| (SPADCALL " " (QREFELT $ 13))
                     (QREFELT $ 16))
                 . #2=(|TABLEAU;makeupv|))
           (SEQ (LETT |s| NIL . #2#) (LETT #0# |ls| . #2#)
                (LETT |i| 1 . #2#) (LETT #1# (LENGTH |ls|) . #2#) G190
                (COND
                  ((OR (QSGREATERP |i| #1#) (ATOM #0#)
                       (PROGN (LETT |s| (CAR #0#) . #2#) NIL))
                   (GO G191)))
                (SEQ (EXIT (SPADCALL |v| |i|
                               (SPADCALL (SPADCALL |s| (QREFELT $ 17))
                                   (QREFELT $ 18))
                               (QREFELT $ 20))))
                (LETT |i|
                      (PROG1 (QSADD1 |i|) (LETT #0# (CDR #0#) . #2#)) . #2#)
                (GO G190) G191 (EXIT NIL))
           (EXIT |v|))))) 

(DEFUN |TABLEAU;maketab| (|lls| $)
  (PROG (|sz| #0=#:G1829 |i| #1=#:G1830 |ll|)
    (RETURN
      (SEQ (LETT |ll|
                 (COND
                   ((NULL |lls|) (LIST (SPADCALL (QREFELT $ 21))))
                   ('T
                    (SEQ (LETT |sz| (LENGTH (|SPADfirst| |lls|))
                               . #2=(|TABLEAU;maketab|))
                         (EXIT (PROGN
                                 (LETT #0# NIL . #2#)
                                 (SEQ (LETT |i| NIL . #2#)
                                      (LETT #1# |lls| . #2#) G190
                                      (COND
                                        ((OR (ATOM #1#)
                                          (PROGN
                                            (LETT |i| (CAR #1#) . #2#)
                                            NIL))
                                         (GO G191)))
                                      (SEQ
                                       (EXIT
                                        (LETT #0#
                                         (CONS
                                          (SPADCALL
                                           (|TABLEAU;makeupv| |sz| |i|
                                            $)
                                           (QREFELT $ 23))
                                          #0#) . #2#)))
                                      (LETT #1# (CDR #1#) . #2#)
                                      (GO G190) G191
                                      (EXIT (NREVERSE0 #0#)))))))) . #2#)
           (EXIT (SPADCALL |ll| (QREFELT $ 24))))))) 

(DEFUN |TABLEAU;coerce;$Of;5| (|x| $)
  (|TABLEAU;maketab| (SPADCALL |x| (QREFELT $ 10)) $)) 

(DEFUN |Tableau| (#0=#:G1832)
  (PROG ()
    (RETURN
      (PROG (#1=#:G1833)
        (RETURN
          (COND
            ((LETT #1#
                   (|lassocShiftWithFunction| (LIST (|devaluate| #0#))
                       (HGET |$ConstructorCache| '|Tableau|)
                       '|domainEqualList|)
                   . #2=(|Tableau|))
             (|CDRwithIncrement| #1#))
            ('T
             (UNWIND-PROTECT
               (PROG1 (|Tableau;| #0#) (LETT #1# T . #2#))
               (COND
                 ((NOT #1#) (HREM |$ConstructorCache| '|Tableau|))))))))))) 

(DEFUN |Tableau;| (|#1|)
  (PROG (DV$1 |dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|) . #0=(|Tableau|))
        (LETT |dv$| (LIST '|Tableau| DV$1) . #0#)
        (LETT $ (GETREFV 26) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
        (|haddProp| |$ConstructorCache| '|Tableau| (LIST DV$1)
            (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 (|List| (|List| |#1|)))
        $)))) 

(MAKEPROP '|Tableau| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) '|Rep|
             (|List| (|List| 6)) |TABLEAU;tableau;L$;1|
             |TABLEAU;listOfLists;$L;2| (|String|) (|OutputForm|)
             (0 . |message|) (|NonNegativeInteger|) (|List| 12)
             (5 . |new|) (11 . |coerce|) (16 . |box|) (|Integer|)
             (21 . |setelt|) (28 . |empty|) (|List| $)
             (32 . |blankSeparate|) (37 . |pile|)
             |TABLEAU;coerce;$Of;5|)
          '#(|tableau| 42 |listOfLists| 47 |coerce| 52) 'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 25
                                '(1 12 0 11 13 2 15 0 14 12 16 1 6 12 0
                                  17 1 12 0 0 18 3 15 12 0 19 12 20 0
                                  12 0 21 1 12 0 22 23 1 12 0 22 24 1 0
                                  0 8 9 1 0 8 0 10 1 0 12 0 25)))))
          '|lookupComplete|)) 
