kenzo/examples/Chapter2.ipynb
2015-08-19 18:20:11 -05:00

57 KiB

In [1]:
(ql:quickload :kenzo)
To load "kenzo":
  Load 1 ASDF system:
    kenzo
; Loading "kenzo"

Out[1]:
(:KENZO)
In [2]:
(cat:cat-init)
---done---
Out[2]:
NIL

2.2.1 Representation of a reduction

In [3]:
(documentation 'cat:reduction 'type)
Out[3]:
"----------------------------------------------------------------[class-doc]
REDUCTION
Slots: (tcc bcc f g h idnm orgn)
Instances of this class represent reductions of chain complexes.

     ^    h     s ^                 f ° g = 1
     C  ----->    C                          C
      ^                     h ° d + d ° h = 1  - g ° f
    | |                                      ^
  f | | g                                    C
    | |                             f ° h = 0
    v                               h ° g = 0
     C                              h ° h = 0

The class has 7 slots:
                                                               ^
1. TCC, an object of type CHAIN-COMPLEX, the top chain complex C. Its reader
   function is TCC1.

2. BCC, an object of type CHAIN-COMPLEX, the bottom chain complex C. Its reader
   function is BCC1.

3. F, an object of type MORPHISM representing the morphism f. Its reader
   function is F1.

4. G, an object of type MORPHISM representing the morphism g. Its reader
   function is G1.

5. H, an object of type MORPHISM representing the morphism h. Its reader
   function is H1.

9. IDNM, an integer, a system-generated identifier for this object. Its reader
   function is IDNM.

10. ORGN, a list containg a comment indicating the origin of the object. The
    should be unique (per session), since it is used in the implementation for
    caching purposes. Its reader function is ORGN.
-----------------------------------------------------------------------------"

2.2.2 The function $\texttt{build-rdct}$

In [4]:
(documentation 'cat:build-rdct 'function)
Out[4]:
"--------------------------------------------------------------[function-doc]
BUILD-RDCT
Args: (&key f g h orgn)
Returns an instance of the class REDUCTION. The keyword arguments are as
follows:

:F F, an object of type morphism representing the morphism f of a reduction

:G G, an object of type morphism representing the morphism g of a reduction

:H H, an object of type morphism representing the morphism h of a reduction

:ORGN ORGN, a list containing a relevant and carefully chosen comment about
            the origin of the chain complex. This comment should be unique
            for a Kenzo session (between calls of CAT-INIT), as it is used
            for caching purposes.

Use this function instead of creating instances via the standard constructor
MAKE-INSTANCE.
------------------------------------------------------------------------------"

2.2.4 Verification functions

In [5]:
(documentation 'cat:pre-check-rdct 'function)
Out[5]:
"--------------------------------------------------------------[function-doc]
PRE-CHECK-RDCT
Args: (rdct)
Assigns the following Lisp global variables, using morphisms from RDCT and the
differentials and identity morphisms of the underlying chain complexes,
according to these formulas:

*TDD*         = d  ° d
                 ^    ^
                 C    C

*BDD*         = d  ° d
                 C    C

*ID-FG*       = Id  - f ° g
                  C

*ID-GF-DH-HD* = Id  - g ° f - (d ° h + h ° d )
                  ^             ^           ^
                  C             C           C

*HH*          = h ° h
*FH*          = f ° h
*HG*          = h ° g

*DF-FD*       = d  ° f - f ° d
                 C            ^
                              C

*DG-GD*       = d  ° g - g ° d
                 ^            C
                 C

------------------------------------------------------------------------------"
In [6]:
(documentation 'cat:check-rdct-no-wait 'function)
Out[6]:
"--------------------------------------------------------------[function-doc]
CHECK-RDCT-NO-WAIT
Args: ()
Maps combinations of the top and bottom chain complexes of a reduction using
the morphisms created by PRE-CHECK-RDCT. Having no parameters, the
combinations must be provided via the Lisp global variables *TC* and *BC*,
for the top and bottom chain complex, respectively. If the morphisms are
coherent, the result of each mapping is a null combination.
------------------------------------------------------------------------------"

Example

In [7]:
(defun cdelta (dmns)
    (cat:build-chcm
     :cmpr #'cat:l-cmpr
     :basis :locally-effective
     :bsgn '(0)
     :intr-dffr
         #'(lambda (degr gmsm)
            (cat:make-cmbn
             :degr (1- degr)
             :list (do ((rslt cat:+empty-list+
                              (cons (cons sign
                                          (append
                                           (subseq gmsm 0 nark)
                                           (subseq gmsm (1+ nark))))
                                    rslt))
                        (sign 1 (- sign))
                        (nark 0 (1+ nark)))
                       ((> nark degr) rslt))))
     :strt :gnrt
     :orgn `(locally effective version of C_* delta ,dmns)))
Out[7]:
CDELTA
In [8]:
(defun make-f (tdmns bdmns)
    (cat:build-mrph
     :sorc (cdelta tdmns) :trgt (cdelta bdmns) :degr 0
     :intr #'(lambda (degr gmsm)
                (let ((pos (position-if #'(lambda (vertex) (>= vertex bdmns))
                                        gmsm)))
                     (if pos
                         (if (< pos degr)
                             (cat:zero-cmbn degr)
                             (cat:cmbn degr 1 (nconc (butlast gmsm) (list bdmns))))
                         (cat:cmbn degr 1 gmsm))))
     :strt :gnrt
     :orgn `(projection delta ,tdmns => delta ,bdmns)))
Out[8]:
MAKE-F
In [9]:
(defun make-g (tdmns bdmns)
    (cat:build-mrph
     :sorc (cdelta bdmns) :trgt (cdelta tdmns) :degr 0
     :intr #'identity
     :strt :cmbn
     :orgn `(injection delta ,bdmns => delta ,tdmns)))
Out[9]:
MAKE-G
In [10]:
(defun make-h (tdmns bdmns)
    (cat:build-mrph
     :sorc (cdelta tdmns) :trgt (cdelta tdmns) :degr +1
     :intr #'(lambda (degr gmsm)
                (let ((pos (position-if #'(lambda (vertex) (>= vertex bdmns))
                                        gmsm)))
                     (if pos
                         (if (member bdmns gmsm)
                             (cat:zero-cmbn (1+ degr))
                             (cat:cmbn (1+ degr) (cat:-1-expt-n pos)
                                       (append (subseq gmsm 0 pos) (list bdmns)
                                               (subseq gmsm pos))))
                         (cat:zero-cmbn (1+ degr)))))
     :strt :gnrt
     :orgn `(homotopy for delta ,tdmns => ,bdmns)))
Out[10]:
MAKE-H
In [11]:
(defun make-rdct (tdmns bdmns)
    (let ((rdct (cat:build-rdct
                 :f (make-f tdmns bdmns)
                 :g (make-g tdmns bdmns)
                 :h (make-h tdmns bdmns)
                 :orgn `(reduction delta ,tdmns ,bdmns))))
         rdct))
Out[11]:
MAKE-RDCT
In [12]:
(cat:def rdct (make-rdct 6 3))
Out[12]:
[K8 Reduction K1 => K3]
In [13]:
(cat:orgn rdct)
Out[13]:
(REDUCTION DELTA 6 3)
In [14]:
(cat:pre-check-rdct rdct)
---done---
Out[14]:
NIL
In [15]:
(setf cat:*tc* (cat:cmbn 2 1 '(0 1 2) 10 '(1 2 3) 100 '(1 2 4) 1000 '(2 3 4)))
Out[15]:
----------------------------------------------------------------------{CMBN 2}
<1 * (0 1 2)>
<10 * (1 2 3)>
<100 * (1 2 4)>
<1000 * (2 3 4)>
------------------------------------------------------------------------------
In [16]:
(setf cat:*bc* (cat:cmbn 3 4 '(0 1 2 3)))
Out[16]:
----------------------------------------------------------------------{CMBN 3}
<4 * (0 1 2 3)>
------------------------------------------------------------------------------
In [17]:
(cat:check-rdct-no-wait)
*TC* => 
----------------------------------------------------------------------{CMBN 2}
<1 * (0 1 2)>
<10 * (1 2 3)>
<100 * (1 2 4)>
<1000 * (2 3 4)>
------------------------------------------------------------------------------

*BC* => 
----------------------------------------------------------------------{CMBN 3}
<4 * (0 1 2 3)>
------------------------------------------------------------------------------

Checking *TDD* = 0
Result: 
----------------------------------------------------------------------{CMBN 0}
------------------------------------------------------------------------------

Checking *BDD* = 0
Result: 
----------------------------------------------------------------------{CMBN 1}
------------------------------------------------------------------------------

Checking *DF-FD* = 0
Result: 
----------------------------------------------------------------------{CMBN 1}
------------------------------------------------------------------------------

Checking *DG-GD* = 0
Result: 
----------------------------------------------------------------------{CMBN 2}
------------------------------------------------------------------------------

Checking *ID-FG* = 0
Result: 
----------------------------------------------------------------------{CMBN 3}
------------------------------------------------------------------------------

Checking *ID-GF-DH-HD* = 0
Result: 
----------------------------------------------------------------------{CMBN 2}
------------------------------------------------------------------------------

Checking *HH* = 0
Result: 
----------------------------------------------------------------------{CMBN 4}
------------------------------------------------------------------------------

Checking *FH* = 0
Result: 
----------------------------------------------------------------------{CMBN 3}
------------------------------------------------------------------------------

Checking *HG* = 0
Result: 
----------------------------------------------------------------------{CMBN 4}
------------------------------------------------------------------------------

---done---
Out[17]:
NIL
In [18]:
(cat:def trdct (make-rdct 6 4))
Out[18]:
[K35 Reduction K1 => K30]
In [19]:
(cat:def brdct (make-rdct 4 3))
Out[19]:
[K39 Reduction K30 => K3]
In [20]:
(setf rdct (cat:cmps brdct trdct))
Out[20]:
[K45 Reduction K1 => K3]
In [21]:
(cat:pre-check-rdct rdct)
---done---
Out[21]:
NIL
In [22]:
(cat:check-rdct-no-wait)
*TC* => 
----------------------------------------------------------------------{CMBN 2}
<1 * (0 1 2)>
<10 * (1 2 3)>
<100 * (1 2 4)>
<1000 * (2 3 4)>
------------------------------------------------------------------------------

*BC* => 
----------------------------------------------------------------------{CMBN 3}
<4 * (0 1 2 3)>
------------------------------------------------------------------------------

Checking *TDD* = 0
Result: 
----------------------------------------------------------------------{CMBN 0}
------------------------------------------------------------------------------

Checking *BDD* = 0
Result: 
----------------------------------------------------------------------{CMBN 1}
------------------------------------------------------------------------------

Checking *DF-FD* = 0
Result: 
----------------------------------------------------------------------{CMBN 1}
------------------------------------------------------------------------------

Checking *DG-GD* = 0
Result: 
----------------------------------------------------------------------{CMBN 2}
------------------------------------------------------------------------------

Checking *ID-FG* = 0
Result: 
----------------------------------------------------------------------{CMBN 3}
------------------------------------------------------------------------------

Checking *ID-GF-DH-HD* = 0
Result: 
----------------------------------------------------------------------{CMBN 2}
------------------------------------------------------------------------------

Checking *HH* = 0
Result: 
----------------------------------------------------------------------{CMBN 4}
------------------------------------------------------------------------------

Checking *FH* = 0
Result: 
----------------------------------------------------------------------{CMBN 3}
------------------------------------------------------------------------------

Checking *HG* = 0
Result: 
----------------------------------------------------------------------{CMBN 4}
------------------------------------------------------------------------------

---done---
Out[22]:
NIL

Example

In [23]:
(cat:def hmeq (cat:trivial-hmeq (cdelta 4)))
Out[23]:
[K66 Homotopy-Equivalence K30 <= K30 => K30]
In [24]:
(setf hmeq (cat:add hmeq (cat:opps (cat:dffr (cdelta 4)))))
Out[24]:
[K74 Homotopy-Equivalence K69 <= K69 => K69]
In [25]:
(cat:gnrt-? (cat:dffr (cat:rbcc hmeq)) 3 '(0 1 2 3))
Out[25]:
----------------------------------------------------------------------{CMBN 2}
------------------------------------------------------------------------------

2.5.1 Representation of a combination in a bicone

In [26]:
(cat:def comb-bic (cat:cmbn 3 2 (cat:bcnb 'b1) 4 (cat:bcnb 'b1) 6 (cat:bcnb 'b3)
                              3 (cat:bcnb 'c1) 5 (cat:bcnb 'c1) 7 (cat:bcnb 'd1)))
Out[26]:
----------------------------------------------------------------------{CMBN 3}
<2 * <BcnB B1>>
<4 * <BcnB B1>>
<6 * <BcnB B3>>
<3 * <BcnB C1>>
<5 * <BcnB C1>>
<7 * <BcnB D1>>
------------------------------------------------------------------------------
In [27]:
(cat:cmbn-list comb-bic)
Out[27]:
((2 . <BcnB B1>) (4 . <BcnB B1>) (6 . <BcnB B3>) (3 . <BcnB C1>) (5 . <BcnB C1>) (7 . <BcnB D1>))

2.5.2 Useful functions and macros for bicones

Examples

In [28]:
(cat:def comb-b (cat:cmbn 3 2 'b1 4 'b2 6 'b3))
Out[28]:
----------------------------------------------------------------------{CMBN 3}
<2 * B1>
<4 * B2>
<6 * B3>
------------------------------------------------------------------------------
In [29]:
(cat:def comb-c (cat:cmbn 4 3 'c1 5 'c2))
Out[29]:
----------------------------------------------------------------------{CMBN 4}
<3 * C1>
<5 * C2>
------------------------------------------------------------------------------
In [30]:
(cat:def comb-d (cat:cmbn 3 7 'd1))
Out[30]:
----------------------------------------------------------------------{CMBN 3}
<7 * D1>
------------------------------------------------------------------------------
In [31]:
(cat:def comb-bic (cat:make-bicn-cmbn comb-b comb-c comb-d))
Out[31]:
----------------------------------------------------------------------{CMBN 3}
<2 * <BcnB B1>>
<4 * <BcnB B2>>
<6 * <BcnB B3>>
<3 * <BcnC C1>>
<5 * <BcnC C2>>
<7 * <BcnD D1>>
------------------------------------------------------------------------------
In [32]:
(cat:bicn-cmbn-cmbnb comb-bic)
Out[32]:
----------------------------------------------------------------------{CMBN 3}
<2 * B1>
<4 * B2>
<6 * B3>
------------------------------------------------------------------------------
In [33]:
(cat:bicn-cmbn-cmbnc comb-bic)
Out[33]:
----------------------------------------------------------------------{CMBN 4}
<3 * C1>
<5 * C2>
------------------------------------------------------------------------------
In [34]:
(cat:bicn-cmbn-cmbnd comb-bic)
Out[34]:
----------------------------------------------------------------------{CMBN 3}
<7 * D1>
------------------------------------------------------------------------------
In [35]:
(multiple-value-bind (b c d)
    (cat:dispatch-bicn-cmbn comb-bic)
    (list b c d))
Out[35]:
(
----------------------------------------------------------------------{CMBN 3}
<2 * B1>
<4 * B2>
<6 * B3>
------------------------------------------------------------------------------
 
----------------------------------------------------------------------{CMBN 4}
<3 * C1>
<5 * C2>
------------------------------------------------------------------------------
 
----------------------------------------------------------------------{CMBN 3}
<7 * D1>
------------------------------------------------------------------------------
)

2.6 Construction of abicone from 2 reductions

Example

In [36]:
(cat:cat-init)
---done---
Out[36]:
NIL
In [37]:
(defun cdelta (dmns)
    (cat:build-chcm
     :cmpr #'cat:l-cmpr
     :basis #'(lambda (n)
                      (mapcar #'cat:dlop-int-ext (funcall (cat:delta-n-basis dmns) n)))
     :bsgn '(0)
     :intr-dffr
         #'(lambda (degr gmsm)
            (cat:make-cmbn
             :degr (1- degr)
             :list (do ((rslt cat:+empty-list+
                              (cons (cons sign
                                          (append
                                           (subseq gmsm 0 nark)
                                           (subseq gmsm (1+ nark))))
                                    rslt))
                        (sign 1 (- sign))
                        (nark 0 (1+ nark)))
                       ((> nark degr) rslt))))
     :strt :gnrt
     :orgn `(Effective version of C_* delta ,dmns)))
Out[37]:
CDELTA
In [38]:
(cat:def delta3 (cdelta 3))
Out[38]:
[K1 Chain-Complex]
In [39]:
(cat:basis delta3 0)
Out[39]:
((0) (1) (2) (3))
In [40]:
(cat:basis delta3 1)
Out[40]:
((0 1) (0 2) (1 2) (0 3) (1 3) (2 3))
In [41]:
(cat:basis delta3 2)
Out[41]:
((0 1 2) (0 1 3) (0 2 3) (1 2 3))
In [42]:
(cat:basis delta3 3)
Out[42]:
((0 1 2 3))
In [43]:
(cat:basis delta3 4)
Out[43]:
NIL
In [44]:
(cat:def bic (cat:bicone (make-rdct 3 2) (make-rdct 4 2)))
Out[44]:
[K15 Chain-Complex]
In [45]:
(cat:basis bic 0)
Out[45]:
(<BcnB (0)> <BcnB (1)> <BcnB (2)> <BcnB (3)> <BcnC (0 1)> <BcnC (0 2)> <BcnC (1 2)> <BcnD (0)> <BcnD (1)> <BcnD (2)> ...)
In [46]:
(cat:basis bic 1)
Out[46]:
(<BcnB (0 1)> <BcnB (0 2)> <BcnB (1 2)> <BcnB (0 3)> <BcnB (1 3)> <BcnB (2 3)> <BcnC (0 1 2)> <BcnD (0 1)> <BcnD (0 2)> <BcnD (1 2)> ...)
In [47]:
(cat:basis bic 4)
Out[47]:
(<BcnD (0 1 2 3 4)>)
In [48]:
(cat:? bic (cat:cmbn 2 3 (cat:bcnb '(0 1 3)) 4 (cat:bcnc '(0 1 2 3)) 5 (cat:bcnd '(0 1 4))))
Out[48]:
----------------------------------------------------------------------{CMBN 1}
<3 * <BcnB (0 1)>>
<-3 * <BcnB (0 3)>>
<3 * <BcnB (1 3)>>
<12 * <BcnC (0 1 2)>>
<-4 * <BcnC (0 1 3)>>
<4 * <BcnC (0 2 3)>>
<-4 * <BcnC (1 2 3)>>
<5 * <BcnD (0 1)>>
<-5 * <BcnD (0 4)>>
<5 * <BcnD (1 4)>>
------------------------------------------------------------------------------
In [49]:
(cat:? bic (cat:? bic (cat:cmbn 2 3 (cat:bcnb '(0 1 3)) 4 (cat:bcnc '(0 1 2 3)) 5 (cat:bcnd '(0 1 4)))))
Out[49]:
----------------------------------------------------------------------{CMBN 0}
------------------------------------------------------------------------------

2.7 Composition of homotopy equivalences

Example

In [50]:
(cat:cat-init)
---done---
Out[50]:
NIL
In [51]:
(cat:def c (cat:build-chcm
            :cmpr #'cat:s-cmpr
            :basis #'(lambda (dmns) (declare (ignore dmns)) '(a))
            :bsgn 'a
            :intr-dffr #'cat:zero-intr-dffr
            :strt :cmbn
            :orgn '(c)))
Out[51]:
[K1 Chain-Complex]
In [52]:
(cat:def h1 (cat:trivial-hmeq c))
Out[52]:
[K6 Homotopy-Equivalence K1 <= K1 => K1]
In [53]:
(cat:def h2 (cat:cmps h1 h1))
Out[53]:
[K17 Homotopy-Equivalence K1 <= K7 => K1]
In [54]:
(cat:pre-check-rdct (cat:lrdct h2))
---done---
Out[54]:
NIL
In [55]:
(setf cat:*tc* (cat:cmbn 3 1 (cat:bcnb 'a) 10 (cat:bcnc 'a) 100 (cat:bcnd 'a)))
Out[55]:
----------------------------------------------------------------------{CMBN 3}
<1 * <BcnB A>>
<10 * <BcnC A>>
<100 * <BcnD A>>
------------------------------------------------------------------------------
In [56]:
(setf cat:*bc* (cat:cmbn 3 1 'a))
Out[56]:
----------------------------------------------------------------------{CMBN 3}
<1 * A>
------------------------------------------------------------------------------
In [57]:
(cat:check-rdct-no-wait)
*TC* => 
----------------------------------------------------------------------{CMBN 3}
<1 * <BcnB A>>
<10 * <BcnC A>>
<100 * <BcnD A>>
------------------------------------------------------------------------------

*BC* => 
----------------------------------------------------------------------{CMBN 3}
<1 * A>
------------------------------------------------------------------------------

Checking *TDD* = 0
Result: 
----------------------------------------------------------------------{CMBN 1}
------------------------------------------------------------------------------

Checking *BDD* = 0
Result: 
----------------------------------------------------------------------{CMBN 1}
------------------------------------------------------------------------------

Checking *DF-FD* = 0
Result: 
----------------------------------------------------------------------{CMBN 2}
------------------------------------------------------------------------------

Checking *DG-GD* = 0
Result: 
----------------------------------------------------------------------{CMBN 2}
------------------------------------------------------------------------------

Checking *ID-FG* = 0
Result: 
----------------------------------------------------------------------{CMBN 3}
------------------------------------------------------------------------------

Checking *ID-GF-DH-HD* = 0
Result: 
----------------------------------------------------------------------{CMBN 3}
------------------------------------------------------------------------------

Checking *HH* = 0
Result: 
----------------------------------------------------------------------{CMBN 5}
------------------------------------------------------------------------------

Checking *FH* = 0
Result: 
----------------------------------------------------------------------{CMBN 4}
------------------------------------------------------------------------------

Checking *HG* = 0
Result: 
----------------------------------------------------------------------{CMBN 4}
------------------------------------------------------------------------------

---done---
Out[57]:
NIL
In [58]:
(cat:pre-check-rdct (cat:rrdct h2))
---done---
Out[58]:
NIL
In [59]:
(cat:check-rdct-no-wait)
*TC* => 
----------------------------------------------------------------------{CMBN 3}
<1 * <BcnB A>>
<10 * <BcnC A>>
<100 * <BcnD A>>
------------------------------------------------------------------------------

*BC* => 
----------------------------------------------------------------------{CMBN 3}
<1 * A>
------------------------------------------------------------------------------

Checking *TDD* = 0
Result: 
----------------------------------------------------------------------{CMBN 1}
------------------------------------------------------------------------------

Checking *BDD* = 0
Result: 
----------------------------------------------------------------------{CMBN 1}
------------------------------------------------------------------------------

Checking *DF-FD* = 0
Result: 
----------------------------------------------------------------------{CMBN 2}
------------------------------------------------------------------------------

Checking *DG-GD* = 0
Result: 
----------------------------------------------------------------------{CMBN 2}
------------------------------------------------------------------------------

Checking *ID-FG* = 0
Result: 
----------------------------------------------------------------------{CMBN 3}
------------------------------------------------------------------------------

Checking *ID-GF-DH-HD* = 0
Result: 
----------------------------------------------------------------------{CMBN 3}
------------------------------------------------------------------------------

Checking *HH* = 0
Result: 
----------------------------------------------------------------------{CMBN 5}
------------------------------------------------------------------------------

Checking *FH* = 0
Result: 
----------------------------------------------------------------------{CMBN 4}
------------------------------------------------------------------------------

Checking *HG* = 0
Result: 
----------------------------------------------------------------------{CMBN 4}
------------------------------------------------------------------------------

---done---
Out[59]:
NIL
In [60]:
(cat:def h3 (cat:cmps h2 h2))
Out[60]:
[K65 Homotopy-Equivalence K1 <= K55 => K1]
In [61]:
(setf cat:*tc* (cat:cmbn 3 1 (cat:bcnb (cat:bcnb 'a)) 10 (cat:bcnb (cat:bcnc 'a)) 100 (cat:bcnb (cat:bcnd 'a))
                         1000 (cat:bcnc 'a)
                         10000 (cat:bcnd (cat:bcnb 'a)) 5234 (cat:bcnd (cat:bcnc 'a))
                         223 (cat:bcnd (cat:bcnd 'a))))
Out[61]:
----------------------------------------------------------------------{CMBN 3}
<1 * <BcnB <BcnB A>>>
<10 * <BcnB <BcnC A>>>
<100 * <BcnB <BcnD A>>>
<1000 * <BcnC A>>
<10000 * <BcnD <BcnB A>>>
<5234 * <BcnD <BcnC A>>>
<223 * <BcnD <BcnD A>>>
------------------------------------------------------------------------------
In [62]:
(cat:pre-check-rdct (cat:lrdct h3))
---done---
Out[62]:
NIL
In [63]:
(cat:check-rdct-no-wait)
*TC* => 
----------------------------------------------------------------------{CMBN 3}
<1 * <BcnB <BcnB A>>>
<10 * <BcnB <BcnC A>>>
<100 * <BcnB <BcnD A>>>
<1000 * <BcnC A>>
<10000 * <BcnD <BcnB A>>>
<5234 * <BcnD <BcnC A>>>
<223 * <BcnD <BcnD A>>>
------------------------------------------------------------------------------

*BC* => 
----------------------------------------------------------------------{CMBN 3}
<1 * A>
------------------------------------------------------------------------------

Checking *TDD* = 0
Result: 
----------------------------------------------------------------------{CMBN 1}
------------------------------------------------------------------------------

Checking *BDD* = 0
Result: 
----------------------------------------------------------------------{CMBN 1}
------------------------------------------------------------------------------

Checking *DF-FD* = 0
Result: 
----------------------------------------------------------------------{CMBN 2}
------------------------------------------------------------------------------

Checking *DG-GD* = 0
Result: 
----------------------------------------------------------------------{CMBN 2}
------------------------------------------------------------------------------

Checking *ID-FG* = 0
Result: 
----------------------------------------------------------------------{CMBN 3}
------------------------------------------------------------------------------

Checking *ID-GF-DH-HD* = 0
Result: 
----------------------------------------------------------------------{CMBN 3}
------------------------------------------------------------------------------

Checking *HH* = 0
Result: 
----------------------------------------------------------------------{CMBN 5}
------------------------------------------------------------------------------

Checking *FH* = 0
Result: 
----------------------------------------------------------------------{CMBN 4}
------------------------------------------------------------------------------

Checking *HG* = 0
Result: 
----------------------------------------------------------------------{CMBN 4}
------------------------------------------------------------------------------

---done---
Out[63]:
NIL
In [64]:
(cat:pre-check-rdct (cat:rrdct h3))
---done---
Out[64]:
NIL
In [64]:
(cat:check-rdct-no-wait)
*TC* => 
----------------------------------------------------------------------{CMBN 3}
<1 * <BcnB <BcnB A>>>
<10 * <BcnB <BcnC A>>>
<100 * <BcnB <BcnD A>>>
<1000 * <BcnC A>>
<10000 * <BcnD <BcnB A>>>
<5234 * <BcnD <BcnC A>>>
<223 * <BcnD <BcnD A>>>
------------------------------------------------------------------------------

*BC* => 
----------------------------------------------------------------------{CMBN 3}
<1 * A>
------------------------------------------------------------------------------

Checking *TDD* = 0
Result: 
----------------------------------------------------------------------{CMBN 1}
------------------------------------------------------------------------------

Checking *BDD* = 0
Result: 
----------------------------------------------------------------------{CMBN 1}
------------------------------------------------------------------------------

Checking *DF-FD* = 0
Result: 
----------------------------------------------------------------------{CMBN 2}
------------------------------------------------------------------------------

Checking *DG-GD* = 0
Result: 
----------------------------------------------------------------------{CMBN 2}
------------------------------------------------------------------------------

Checking *ID-FG* = 0
Result: 
----------------------------------------------------------------------{CMBN 3}
------------------------------------------------------------------------------

Checking *ID-GF-DH-HD* = 0
Result: 
----------------------------------------------------------------------{CMBN 3}
------------------------------------------------------------------------------

Checking *HH* = 0
Result: 
----------------------------------------------------------------------{CMBN 5}
------------------------------------------------------------------------------

Checking *FH* = 0
Result: 
----------------------------------------------------------------------{CMBN 4}
------------------------------------------------------------------------------

Checking *HG* = 0
Result: 
----------------------------------------------------------------------{CMBN 4}
------------------------------------------------------------------------------

---done---
Out[64]:
NIL