letnondeterministic-suite

Thu Apr 24 16:11:41+0200 2025

Creative Commons LicenseCreative Commons LicenseCreative Commons License

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License

Table of contents
  1. test/letnondeterministic/choose-null?: pass
  2. test/letnondeterministic/choose: pass
  3. test/letnondeterministic/choose§: pass
  4. test/letnondeterministic/choose-rec: pass
  5. test/letnondeterministic/choose+nested: pass
  6. test/letnondeterministic/choose+nested+¿: pass
  7. test/letnondeterministic/choose+double: pass
  8. test/letnondeterministic/choose+fair+fibs: pass
  9. test/letnondeterministic/choose+fair: pass
  10. test/letnondeterministic/odd: pass
  11. test/letnondeterministic/parlor: pass
  12. test/letnondeterministic/parlor+sorted: pass
  13. test/letnondeterministic/coin: pass
  14. test/letnondeterministic/coin+cut: pass
  15. test/letnondeterministic/graph+cycles/bfs: pass
  16. test/letnondeterministic/temporal-graphs: pass

Tests summary

scheme code
((ran 16) (failed 0))

1. test/letnondeterministic/choose-null?: pass

scheme code
(define (test/letnondeterministic/choose-null? _)
  (⊦= '() (letnondeterministic (? ¿ ⊦ • !) (? '()))))

Captured stdout:

((left 0) (tried 1) (accepted 0) (ratio 0.0) (distribution ()))

2. test/letnondeterministic/choose: pass

scheme code
(define (test/letnondeterministic/choose _)
  (⊦= '(1 2 3) (letnondeterministic (? ¿ ⊦ • !) (? '(1 2 3)))))

Captured stdout:

((left 0)
 (tried 7)
 (accepted 3)
 (ratio 0.428571428571429)
 (distribution
   ((3 0.333333333333333) (2 0.333333333333333) (1 0.333333333333333))))

3. test/letnondeterministic/choose§: pass

scheme code
(define (test/letnondeterministic/choose§ _)
  (⊦= '(1 2 3)
        (letnondeterministic
          (? ¿ ⊦ • !)
          (? (cons§ 1 (cons§ 2 (cons§ 3 '())))))))

Captured stdout:

((left 0)
 (tried 7)
 (accepted 3)
 (ratio 0.428571428571429)
 (distribution
   ((3 0.333333333333333) (2 0.333333333333333) (1 0.333333333333333))))

4. test/letnondeterministic/choose-rec: pass

scheme code
(define (test/letnondeterministic/choose-rec _)
  (⊦= '(0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584)
        (§->list
          (stop§
            (λ (v) (> v 3000))
            (letnondeterministic§ (? ¿ ⊦ • !) (? (fibs§ 0 1)))))))

5. test/letnondeterministic/choose+nested: pass

scheme code
(define (test/letnondeterministic/choose+nested _)
  (⊦= '(1 4 3 1 5 3)
        (letnondeterministic (? ¿ ⊦ • !) (? `(1 ,(? '(4 5)) 3)))))

Captured stdout:

((left 0)
 (tried 17)
 (accepted 6)
 (ratio 0.352941176470588)
 (distribution
   ((3 0.333333333333333)
    (1 0.333333333333333)
    (4 0.166666666666667)
    (5 0.166666666666667))))

6. test/letnondeterministic/choose+nested+¿: pass

scheme code
(define (test/letnondeterministic/choose+nested+¿ _)
  (⊦= '(1 4 3 1 5 3)
        (letnondeterministic (? ¿ ⊦ • !) (? `(1 ,(¿ '(4 5)) 3)))))

Captured stdout:

((left 0)
 (tried 17)
 (accepted 6)
 (ratio 0.352941176470588)
 (distribution
   ((3 0.333333333333333)
    (1 0.333333333333333)
    (4 0.166666666666667)
    (5 0.166666666666667))))

7. test/letnondeterministic/choose+double: pass

scheme code
(define (test/letnondeterministic/choose+double _)
  (⊦= '(5 6 6 7 7 8)
        (letnondeterministic (? ¿ ⊦ • !) (+ (? '(1 2 3)) (? '(4 5))))))

Captured stdout:

((left 0)
 (tried 19)
 (accepted 6)
 (ratio 0.315789473684211)
 (distribution
   ((6 0.333333333333333)
    (7 0.333333333333333)
    (5 0.166666666666667)
    (8 0.166666666666667))))

8. test/letnondeterministic/choose+fair+fibs: pass

scheme code
(define (test/letnondeterministic/choose+fair+fibs _)
  (⊦= '((a 0)
          (b 0)
          (c 0)
          (a 1)
          (b 1)
          (c 1)
          (a 1)
          (b 1)
          (c 1)
          (a 2)
          (b 2)
          (c 2)
          (a 3)
          (b 3)
          (c 3)
          (a 5)
          (b 5)
          (c 5)
          (a 8)
          (b 8)
          (c 8))
        (letnondeterministic
          21
          (? ¿ ⊦ • !)
          (? (interleave§
               (map§ (lambda (v) (list 'a v)) (fibs§ 0 1))
               (map§ (lambda (v) (list 'b v)) (fibs§ 0 1))
               (map§ (lambda (v) (list 'c v)) (fibs§ 0 1)))))))

9. test/letnondeterministic/choose+fair: pass

scheme code
(define (test/letnondeterministic/choose+fair _)
  (⊦= '((a 1) (b 1) (a 2) (b 2) (a 3))
        (letnondeterministic
          (? ¿ ⊦ • !)
          (? (interleave§ '((a 1) (a 2) (a 3)) '((b 1) (b 2)))))))

Captured stdout:

((left 0)
 (tried 11)
 (accepted 5)
 (ratio 0.454545454545455)
 (distribution (((b 2) 0.2) ((a 3) 0.2) ((a 1) 0.2) ((a 2) 0.2) ((b 1) 0.2))))

10. test/letnondeterministic/odd: pass

scheme code
(define (test/letnondeterministic/odd _)
  (⊦= '(1 3)
        (letnondeterministic
          (? ¿ ⊦ • !)
          (let1 (v (? '(1 2 3))) (⊦ (odd? v)) v))))

Captured stdout:

((left 0)
 (tried 7)
 (accepted 2)
 (ratio 0.285714285714286)
 (distribution ((1 0.5) (3 0.5))))

11. test/letnondeterministic/parlor: pass

scheme code
(define (test/letnondeterministic/parlor _)
  (⊦= '((1 1 5)
          (1 2 4)
          (1 3 3)
          (1 4 2)
          (1 5 1)
          (2 1 4)
          (2 2 3)
          (2 3 2)
          (2 4 1)
          (3 1 3)
          (3 2 2)
          (3 3 1)
          (4 1 2)
          (4 2 1)
          (5 1 1))
        (letnondeterministic
          (? ¿ ⊦ • !)
          (define (two-numbers)
            (list (? '(1 2 3 4 5)) (? '(1 2 3 4 5)) (? '(1 2 3 4 5))))
          (define (parlor sum)
            (let ((nums (two-numbers))) (⊦ (eq? (apply + nums) sum)) nums))
          (parlor 7))))

Captured stdout:

((left 0)
 (tried 311)
 (accepted 15)
 (ratio 0.0482315112540193)
 (distribution
   (((1 1 5) 0.0666666666666667)
    ((1 3 3) 0.0666666666666667)
    ((1 5 1) 0.0666666666666667)
    ((3 1 3) 0.0666666666666667)
    ((3 3 1) 0.0666666666666667)
    ((5 1 1) 0.0666666666666667)
    ((1 2 4) 0.0666666666666667)
    ((1 4 2) 0.0666666666666667)
    ((2 1 4) 0.0666666666666667)
    ((2 2 3) 0.0666666666666667)
    ((2 3 2) 0.0666666666666667)
    ((2 4 1) 0.0666666666666667)
    ((3 2 2) 0.0666666666666667)
    ((4 1 2) 0.0666666666666667)
    ((4 2 1) 0.0666666666666667))))

12. test/letnondeterministic/parlor+sorted: pass

scheme code
(define (test/letnondeterministic/parlor+sorted _)
  (⊦= '((1 1 5) (1 2 4) (1 3 3) (2 2 3))
        (letnondeterministic
          (? ¿ ⊦ • !)
          (define (two-numbers)
            (list (? '(1 2 3 4 5)) (? '(1 2 3 4 5)) (? '(1 2 3 4 5))))
          (define (parlor sum)
            (let ((nums (two-numbers)))
              (⊦ (and (eq? (apply + nums) sum) (sorted? nums <)))
              nums))
          (parlor 7))))

Captured stdout:

((left 0)
 (tried 311)
 (accepted 4)
 (ratio 0.0128617363344051)
 (distribution (((1 2 4) 0.25) ((2 2 3) 0.25) ((1 1 5) 0.25) ((1 3 3) 0.25))))

13. test/letnondeterministic/coin: pass

scheme code
(define (test/letnondeterministic/coin _)
  (⊦= '(((la 1 1) (la 1 2))
          ((la 1 1) (la 1 2) (la 2 1) (la 2 2) (ny 1 1))
          ((la 1 1)
           (la 1 2)
           (la 2 1)
           (la 2 2)
           (ny 1 1)
           (ny 1 2)
           (ny 2 1)
           (ny 2 2)
           (bos 1 1)
           (bos 1 2)
           (bos 2 1)
           (bos 2 2)))
        (letnondeterministic
          (? ¿ ⊦ • !)
          (define (coin? x) (member? x '((la 1 2) (ny 1 1) (bos 2 2))))
          (let* ((*paths* '())
                 (attempts '())
                 (city (? '(la ny bos)))
                 (store (? '(1 2)))
                 (box (? '(1 2)))
                 (triple (list city store box)))
            (push! triple attempts)
            (⊦ (coin? triple))
            (reverse attempts)))))

Captured stdout:

((left 0)
 (tried 43)
 (accepted 3)
 (ratio 0.0697674418604651)
 (distribution
   ((((la 1 1) (la 1 2) (la 2 1) (la 2 2) (ny 1 1)) 0.333333333333333)
    (((la 1 1)
      (la 1 2)
      (la 2 1)
      (la 2 2)
      (ny 1 1)
      (ny 1 2)
      (ny 2 1)
      (ny 2 2)
      (bos 1 1)
      (bos 1 2)
      (bos 2 1)
      (bos 2 2))
     0.333333333333333)
    (((la 1 1) (la 1 2)) 0.333333333333333))))

14. test/letnondeterministic/coin+cut: pass

scheme code
(define (test/letnondeterministic/coin+cut _)
  (⊦= '(((la 1 1) (la 1 2))
          ((la 1 1) (la 1 2) (ny 1 1))
          ((la 1 1) (la 1 2) (ny 1 1) (bos 1 1) (bos 1 2) (bos 2 1) (bos 2 2)))
        (letnondeterministic
          (? ¿ ⊦ • !)
          (define (coin? x) (member? x '((la 1 2) (ny 1 1) (bos 2 2))))
          (let* ((*paths* '())
                 (attempts '())
                 (city (? '(la ny bos)))
                 (flag (•))
                 (store (? '(1 2)))
                 (_ (•))
                 (box (? '(1 2)))
                 (triple (list city store box)))
            (push! triple attempts)
            (⊦ (coin? triple))
            (! flag)
            (reverse attempts)))))

Captured stdout:

((left 0)
 (tried 23)
 (accepted 3)
 (ratio 0.130434782608696)
 (distribution
   ((((la 1 1) (la 1 2) (ny 1 1)) 0.333333333333333)
    (((la 1 1) (la 1 2)) 0.333333333333333)
    (((la 1 1) (la 1 2) (ny 1 1) (bos 1 1) (bos 1 2) (bos 2 1) (bos 2 2))
     0.333333333333333))))

15. test/letnondeterministic/graph+cycles/bfs: pass

scheme code
(define (test/letnondeterministic/graph+cycles/bfs _)
  (⊦= '((a b c a) (a b c e a) (a b d e a))
        (letnondeterministic
          (? ¿ ⊦ • !)
          (define (neighbors node)
            (letassoc
              (node '((a (b)) (b (c d)) (c (a e)) (d (e)) (e (a))))
              (else '())))
          (define (path node1 node2 seen)
            (⊦ (not (member? node1 seen)))
            (let1 (n (? (neighbors node1)))
                  (if (eq? n node2)
                    (list node2)
                    (cons n (path n node2 (cons node1 seen))))))
          (let* ((source 'a) (p (path source 'a '()))) (cons source p)))))

Captured stdout:

((left 0)
 (tried 17)
 (accepted 3)
 (ratio 0.176470588235294)
 (distribution
   (((a b d e a) 0.333333333333333)
    ((a b c a) 0.333333333333333)
    ((a b c e a) 0.333333333333333))))

16. test/letnondeterministic/temporal-graphs: pass

scheme code
(define (test/letnondeterministic/temporal-graphs _)
  (define graph-simple
    `((a ((b (1 2 3))))
      (b ((c (2 5)) (d ,ℕ)))
      (c ((a (2 3 4 5 6)) (e ,ℕ)))
      (d ((e (3 4 5))))
      (e ((a ,ℕ)))))
  (define (V g) (map car g))
  (⊦= '(((a b) ((a 1) (b 2)))
          ((a b) ((a 1) (b 3)))
          ((a c) ((a 1) (b 2) (c 5)))
          ((a c) ((a 1) (b 3) (c 5)))
          ((a d) ((a 1) (b 2) (d 3)))
          ((a d) ((a 1) (b 2) (d 4)))
          ((a d) ((a 1) (b 2) (d 5)))
          ((a d) ((a 1) (b 2) (d 6)))
          ((a d) ((a 1) (b 2) (d 7)))
          ((a d) ((a 1) (b 3) (d 4)))
          ((a d) ((a 1) (b 3) (d 5)))
          ((a d) ((a 1) (b 3) (d 6)))
          ((a d) ((a 1) (b 3) (d 7)))
          ((a e) ((a 1) (b 2) (c 5) (e 6)))
          ((a e) ((a 1) (b 2) (c 5) (e 7)))
          ((a e) ((a 1) (b 2) (d 3) (e 4)))
          ((a e) ((a 1) (b 2) (d 3) (e 5)))
          ((a e) ((a 1) (b 2) (d 4) (e 5)))
          ((a e) ((a 1) (b 3) (c 5) (e 6)))
          ((a e) ((a 1) (b 3) (c 5) (e 7)))
          ((a e) ((a 1) (b 3) (d 4) (e 5)))
          ((b a) ((b 1) (c 2) (a 3)))
          ((b a) ((b 1) (c 2) (a 4)))
          ((b a) ((b 1) (c 2) (a 5)))
          ((b a) ((b 1) (c 2) (a 6)))
          ((b a) ((b 1) (c 2) (e 3) (a 4)))
          ((b a) ((b 1) (c 2) (e 3) (a 5)))
          ((b a) ((b 1) (c 2) (e 3) (a 6)))
          ((b a) ((b 1) (c 2) (e 3) (a 7)))
          ((b a) ((b 1) (c 2) (e 4) (a 5)))
          ((b a) ((b 1) (c 2) (e 4) (a 6)))
          ((b a) ((b 1) (c 2) (e 4) (a 7)))
          ((b a) ((b 1) (c 2) (e 5) (a 6)))
          ((b a) ((b 1) (c 2) (e 5) (a 7)))
          ((b a) ((b 1) (c 2) (e 6) (a 7)))
          ((b a) ((b 1) (c 5) (a 6)))
          ((b a) ((b 1) (c 5) (e 6) (a 7)))
          ((b a) ((b 1) (d 2) (e 3) (a 4)))
          ((b a) ((b 1) (d 2) (e 3) (a 5)))
          ((b a) ((b 1) (d 2) (e 3) (a 6)))
          ((b a) ((b 1) (d 2) (e 3) (a 7)))
          ((b a) ((b 1) (d 2) (e 4) (a 5)))
          ((b a) ((b 1) (d 2) (e 4) (a 6)))
          ((b a) ((b 1) (d 2) (e 4) (a 7)))
          ((b a) ((b 1) (d 2) (e 5) (a 6)))
          ((b a) ((b 1) (d 2) (e 5) (a 7)))
          ((b a) ((b 1) (d 3) (e 4) (a 5)))
          ((b a) ((b 1) (d 3) (e 4) (a 6)))
          ((b a) ((b 1) (d 3) (e 4) (a 7)))
          ((b a) ((b 1) (d 3) (e 5) (a 6)))
          ((b a) ((b 1) (d 3) (e 5) (a 7)))
          ((b a) ((b 1) (d 4) (e 5) (a 6)))
          ((b a) ((b 1) (d 4) (e 5) (a 7)))
          ((b c) ((b 1) (c 2)))
          ((b c) ((b 1) (c 5)))
          ((b d) ((b 1) (d 2)))
          ((b d) ((b 1) (d 3)))
          ((b d) ((b 1) (d 4)))
          ((b d) ((b 1) (d 5)))
          ((b d) ((b 1) (d 6)))
          ((b d) ((b 1) (d 7)))
          ((b e) ((b 1) (c 2) (e 3)))
          ((b e) ((b 1) (c 2) (e 4)))
          ((b e) ((b 1) (c 2) (e 5)))
          ((b e) ((b 1) (c 2) (e 6)))
          ((b e) ((b 1) (c 2) (e 7)))
          ((b e) ((b 1) (c 5) (e 6)))
          ((b e) ((b 1) (c 5) (e 7)))
          ((b e) ((b 1) (d 2) (e 3)))
          ((b e) ((b 1) (d 2) (e 4)))
          ((b e) ((b 1) (d 2) (e 5)))
          ((b e) ((b 1) (d 3) (e 4)))
          ((b e) ((b 1) (d 3) (e 5)))
          ((b e) ((b 1) (d 4) (e 5)))
          ((c a) ((c 1) (a 2)))
          ((c a) ((c 1) (a 3)))
          ((c a) ((c 1) (a 4)))
          ((c a) ((c 1) (a 5)))
          ((c a) ((c 1) (a 6)))
          ((c a) ((c 1) (e 2) (a 3)))
          ((c a) ((c 1) (e 2) (a 4)))
          ((c a) ((c 1) (e 2) (a 5)))
          ((c a) ((c 1) (e 2) (a 6)))
          ((c a) ((c 1) (e 2) (a 7)))
          ((c a) ((c 1) (e 3) (a 4)))
          ((c a) ((c 1) (e 3) (a 5)))
          ((c a) ((c 1) (e 3) (a 6)))
          ((c a) ((c 1) (e 3) (a 7)))
          ((c a) ((c 1) (e 4) (a 5)))
          ((c a) ((c 1) (e 4) (a 6)))
          ((c a) ((c 1) (e 4) (a 7)))
          ((c a) ((c 1) (e 5) (a 6)))
          ((c a) ((c 1) (e 5) (a 7)))
          ((c a) ((c 1) (e 6) (a 7)))
          ((c b) ((c 1) (a 2) (b 3)))
          ((c d) ((c 1) (a 2) (b 3) (d 4)))
          ((c d) ((c 1) (a 2) (b 3) (d 5)))
          ((c d) ((c 1) (a 2) (b 3) (d 6)))
          ((c d) ((c 1) (a 2) (b 3) (d 7)))
          ((c e) ((c 1) (a 2) (b 3) (d 4) (e 5)))
          ((c e) ((c 1) (e 2)))
          ((c e) ((c 1) (e 3)))
          ((c e) ((c 1) (e 4)))
          ((c e) ((c 1) (e 5)))
          ((c e) ((c 1) (e 6)))
          ((c e) ((c 1) (e 7)))
          ((d a) ((d 1) (e 3) (a 4)))
          ((d a) ((d 1) (e 3) (a 5)))
          ((d a) ((d 1) (e 3) (a 6)))
          ((d a) ((d 1) (e 3) (a 7)))
          ((d a) ((d 1) (e 4) (a 5)))
          ((d a) ((d 1) (e 4) (a 6)))
          ((d a) ((d 1) (e 4) (a 7)))
          ((d a) ((d 1) (e 5) (a 6)))
          ((d a) ((d 1) (e 5) (a 7)))
          ((d e) ((d 1) (e 3)))
          ((d e) ((d 1) (e 4)))
          ((d e) ((d 1) (e 5)))
          ((e a) ((e 1) (a 2)))
          ((e a) ((e 1) (a 3)))
          ((e a) ((e 1) (a 4)))
          ((e a) ((e 1) (a 5)))
          ((e a) ((e 1) (a 6)))
          ((e a) ((e 1) (a 7)))
          ((e b) ((e 1) (a 2) (b 3)))
          ((e c) ((e 1) (a 2) (b 3) (c 5)))
          ((e d) ((e 1) (a 2) (b 3) (d 4)))
          ((e d) ((e 1) (a 2) (b 3) (d 5)))
          ((e d) ((e 1) (a 2) (b 3) (d 6)))
          ((e d) ((e 1) (a 2) (b 3) (d 7))))
        (letnondeterministic
          -1
          (? ¿ ⊦ • !)
          (define (path p node1 node2 seen maxlen maxt)
            (let* ((lastpair (car p))
                   (l (caddr lastpair))
                   (_ (⊦ (< l (add1 maxlen))))
                   (pair (? (letassoc (node1 graph-simple) (else '()))))
                   (n (car pair))
                   (_ (⊦ (not (member? n seen))))
                   (t₁ (? (cadr pair) (λ (t) (< t maxt))))
                   (t₀ (cadr lastpair))
                   (_ (⊦ (> t₁ t₀)))
                   (newp (cons (list n t₁ (add1 l)) p)))
              (cond ((eq? n node2) (reverse newp))
                    (else (path newp n node2 (cons node1 seen) maxlen maxt)))))
          (let* ((vertices (V graph-simple))
                 (source (? vertices))
                 (destination (? vertices))
                 (p (path (list (list source 1 1))
                          source
                          destination
                          '()
                          15
                          7)))
            (list (list source destination)
                  (map (λ (triple) (list (car triple) (cadr triple))) p))))))

Captured stdout:

((left 0)
 (tried 4013)
 (accepted 130)
 (ratio 0.0323947171692001)
 (distribution
   ((((a b) ((a 1) (b 2))) 0.00769230769230769)
    (((a b) ((a 1) (b 3))) 0.00769230769230769)
    (((a c) ((a 1) (b 2) (c 5))) 0.00769230769230769)
    (((a c) ((a 1) (b 3) (c 5))) 0.00769230769230769)
    (((a d) ((a 1) (b 2) (d 3))) 0.00769230769230769)
    (((a d) ((a 1) (b 2) (d 4))) 0.00769230769230769)
    (((a d) ((a 1) (b 2) (d 5))) 0.00769230769230769)
    (((a d) ((a 1) (b 2) (d 6))) 0.00769230769230769)
    (((a d) ((a 1) (b 2) (d 7))) 0.00769230769230769)
    (((a d) ((a 1) (b 3) (d 4))) 0.00769230769230769)
    (((a d) ((a 1) (b 3) (d 5))) 0.00769230769230769)
    (((a d) ((a 1) (b 3) (d 6))) 0.00769230769230769)
    (((a d) ((a 1) (b 3) (d 7))) 0.00769230769230769)
    (((a e) ((a 1) (b 2) (c 5) (e 6))) 0.00769230769230769)
    (((a e) ((a 1) (b 2) (c 5) (e 7))) 0.00769230769230769)
    (((a e) ((a 1) (b 2) (d 3) (e 4))) 0.00769230769230769)
    (((a e) ((a 1) (b 2) (d 3) (e 5))) 0.00769230769230769)
    (((a e) ((a 1) (b 2) (d 4) (e 5))) 0.00769230769230769)
    (((a e) ((a 1) (b 3) (c 5) (e 6))) 0.00769230769230769)
    (((a e) ((a 1) (b 3) (c 5) (e 7))) 0.00769230769230769)
    (((a e) ((a 1) (b 3) (d 4) (e 5))) 0.00769230769230769)
    (((b a) ((b 1) (c 2) (a 3))) 0.00769230769230769)
    (((b a) ((b 1) (c 2) (a 4))) 0.00769230769230769)
    (((b a) ((b 1) (c 2) (a 5))) 0.00769230769230769)
    (((b a) ((b 1) (c 2) (a 6))) 0.00769230769230769)
    (((b a) ((b 1) (c 2) (e 3) (a 4))) 0.00769230769230769)
    (((b a) ((b 1) (c 2) (e 3) (a 5))) 0.00769230769230769)
    (((b a) ((b 1) (c 2) (e 3) (a 6))) 0.00769230769230769)
    (((b a) ((b 1) (c 2) (e 3) (a 7))) 0.00769230769230769)
    (((b a) ((b 1) (c 2) (e 4) (a 5))) 0.00769230769230769)
    (((b a) ((b 1) (c 2) (e 4) (a 6))) 0.00769230769230769)
    (((b a) ((b 1) (c 2) (e 4) (a 7))) 0.00769230769230769)
    (((b a) ((b 1) (c 2) (e 5) (a 6))) 0.00769230769230769)
    (((b a) ((b 1) (c 2) (e 5) (a 7))) 0.00769230769230769)
    (((b a) ((b 1) (c 2) (e 6) (a 7))) 0.00769230769230769)
    (((b a) ((b 1) (c 5) (a 6))) 0.00769230769230769)
    (((b a) ((b 1) (c 5) (e 6) (a 7))) 0.00769230769230769)
    (((b a) ((b 1) (d 2) (e 3) (a 4))) 0.00769230769230769)
    (((b a) ((b 1) (d 2) (e 3) (a 5))) 0.00769230769230769)
    (((b a) ((b 1) (d 2) (e 3) (a 6))) 0.00769230769230769)
    (((b a) ((b 1) (d 2) (e 3) (a 7))) 0.00769230769230769)
    (((b a) ((b 1) (d 2) (e 4) (a 5))) 0.00769230769230769)
    (((b a) ((b 1) (d 2) (e 4) (a 6))) 0.00769230769230769)
    (((b a) ((b 1) (d 2) (e 4) (a 7))) 0.00769230769230769)
    (((b a) ((b 1) (d 2) (e 5) (a 6))) 0.00769230769230769)
    (((b a) ((b 1) (d 2) (e 5) (a 7))) 0.00769230769230769)
    (((b a) ((b 1) (d 3) (e 4) (a 5))) 0.00769230769230769)
    (((b a) ((b 1) (d 3) (e 4) (a 6))) 0.00769230769230769)
    (((b a) ((b 1) (d 3) (e 4) (a 7))) 0.00769230769230769)
    (((b a) ((b 1) (d 3) (e 5) (a 6))) 0.00769230769230769)
    (((b a) ((b 1) (d 3) (e 5) (a 7))) 0.00769230769230769)
    (((b a) ((b 1) (d 4) (e 5) (a 6))) 0.00769230769230769)
    (((b a) ((b 1) (d 4) (e 5) (a 7))) 0.00769230769230769)
    (((b c) ((b 1) (c 2))) 0.00769230769230769)
    (((b c) ((b 1) (c 5))) 0.00769230769230769)
    (((b d) ((b 1) (d 2))) 0.00769230769230769)
    (((b d) ((b 1) (d 3))) 0.00769230769230769)
    (((b d) ((b 1) (d 4))) 0.00769230769230769)
    (((b d) ((b 1) (d 5))) 0.00769230769230769)
    (((b d) ((b 1) (d 6))) 0.00769230769230769)
    (((b d) ((b 1) (d 7))) 0.00769230769230769)
    (((b e) ((b 1) (c 2) (e 3))) 0.00769230769230769)
    (((b e) ((b 1) (c 2) (e 4))) 0.00769230769230769)
    (((b e) ((b 1) (c 2) (e 5))) 0.00769230769230769)
    (((b e) ((b 1) (c 2) (e 6))) 0.00769230769230769)
    (((b e) ((b 1) (c 2) (e 7))) 0.00769230769230769)
    (((b e) ((b 1) (c 5) (e 6))) 0.00769230769230769)
    (((b e) ((b 1) (c 5) (e 7))) 0.00769230769230769)
    (((b e) ((b 1) (d 2) (e 3))) 0.00769230769230769)
    (((b e) ((b 1) (d 2) (e 4))) 0.00769230769230769)
    (((b e) ((b 1) (d 2) (e 5))) 0.00769230769230769)
    (((b e) ((b 1) (d 3) (e 4))) 0.00769230769230769)
    (((b e) ((b 1) (d 3) (e 5))) 0.00769230769230769)
    (((b e) ((b 1) (d 4) (e 5))) 0.00769230769230769)
    (((c a) ((c 1) (a 2))) 0.00769230769230769)
    (((c a) ((c 1) (a 3))) 0.00769230769230769)
    (((c a) ((c 1) (a 4))) 0.00769230769230769)
    (((c a) ((c 1) (a 5))) 0.00769230769230769)
    (((c a) ((c 1) (a 6))) 0.00769230769230769)
    (((c a) ((c 1) (e 2) (a 3))) 0.00769230769230769)
    (((c a) ((c 1) (e 2) (a 4))) 0.00769230769230769)
    (((c a) ((c 1) (e 2) (a 5))) 0.00769230769230769)
    (((c a) ((c 1) (e 2) (a 6))) 0.00769230769230769)
    (((c a) ((c 1) (e 2) (a 7))) 0.00769230769230769)
    (((c a) ((c 1) (e 3) (a 4))) 0.00769230769230769)
    (((c a) ((c 1) (e 3) (a 5))) 0.00769230769230769)
    (((c a) ((c 1) (e 3) (a 6))) 0.00769230769230769)
    (((c a) ((c 1) (e 3) (a 7))) 0.00769230769230769)
    (((c a) ((c 1) (e 4) (a 5))) 0.00769230769230769)
    (((c a) ((c 1) (e 4) (a 6))) 0.00769230769230769)
    (((c a) ((c 1) (e 4) (a 7))) 0.00769230769230769)
    (((c a) ((c 1) (e 5) (a 6))) 0.00769230769230769)
    (((c a) ((c 1) (e 5) (a 7))) 0.00769230769230769)
    (((c a) ((c 1) (e 6) (a 7))) 0.00769230769230769)
    (((c b) ((c 1) (a 2) (b 3))) 0.00769230769230769)
    (((c d) ((c 1) (a 2) (b 3) (d 4))) 0.00769230769230769)
    (((c d) ((c 1) (a 2) (b 3) (d 5))) 0.00769230769230769)
    (((c d) ((c 1) (a 2) (b 3) (d 6))) 0.00769230769230769)
    (((c d) ((c 1) (a 2) (b 3) (d 7))) 0.00769230769230769)
    (((c e) ((c 1) (a 2) (b 3) (d 4) (e 5))) 0.00769230769230769)
    (((c e) ((c 1) (e 2))) 0.00769230769230769)
    (((c e) ((c 1) (e 3))) 0.00769230769230769)
    (((c e) ((c 1) (e 4))) 0.00769230769230769)
    (((c e) ((c 1) (e 5))) 0.00769230769230769)
    (((c e) ((c 1) (e 6))) 0.00769230769230769)
    (((c e) ((c 1) (e 7))) 0.00769230769230769)
    (((d a) ((d 1) (e 3) (a 4))) 0.00769230769230769)
    (((d a) ((d 1) (e 3) (a 5))) 0.00769230769230769)
    (((d a) ((d 1) (e 3) (a 6))) 0.00769230769230769)
    (((d a) ((d 1) (e 3) (a 7))) 0.00769230769230769)
    (((d a) ((d 1) (e 4) (a 5))) 0.00769230769230769)
    (((d a) ((d 1) (e 4) (a 6))) 0.00769230769230769)
    (((d a) ((d 1) (e 4) (a 7))) 0.00769230769230769)
    (((d a) ((d 1) (e 5) (a 6))) 0.00769230769230769)
    (((d a) ((d 1) (e 5) (a 7))) 0.00769230769230769)
    (((d e) ((d 1) (e 3))) 0.00769230769230769)
    (((d e) ((d 1) (e 4))) 0.00769230769230769)
    (((d e) ((d 1) (e 5))) 0.00769230769230769)
    (((e a) ((e 1) (a 2))) 0.00769230769230769)
    (((e a) ((e 1) (a 3))) 0.00769230769230769)
    (((e a) ((e 1) (a 4))) 0.00769230769230769)
    (((e a) ((e 1) (a 5))) 0.00769230769230769)
    (((e a) ((e 1) (a 6))) 0.00769230769230769)
    (((e a) ((e 1) (a 7))) 0.00769230769230769)
    (((e b) ((e 1) (a 2) (b 3))) 0.00769230769230769)
    (((e c) ((e 1) (a 2) (b 3) (c 5))) 0.00769230769230769)
    (((e d) ((e 1) (a 2) (b 3) (d 4))) 0.00769230769230769)
    (((e d) ((e 1) (a 2) (b 3) (d 5))) 0.00769230769230769)
    (((e d) ((e 1) (a 2) (b 3) (d 6))) 0.00769230769230769)
    (((e d) ((e 1) (a 2) (b 3) (d 7))) 0.00769230769230769))))