(let ((cn (cp:make-network 'test (cp:make-value-model boolean? boolean=?)))) (let ((j1 (cp:make-connector 'j1 cn)) (j2 (cp:make-connector 'j2 cn)) (p1 (cp:make-connector 'p1 cn)) (p2 (cp:make-connector 'p2 cn)) (t (cp:make-connector 't cn))) (cp:assume-value t #t) (cp:make-constraint cp:boolean-not #f cn j1 p1) (cp:make-constraint cp:boolean-not #f cn j2 p2) (cp:make-constraint cp:boolean-or #f cn t j1 j2) (cp:make-constraint cp:boolean-or #f cn t p1 p2) (cp:assume-value j2 #t) (fresh-line) (write-char #\;) (write-line (cp:value-of j1)) (write-char #\;) (write-line (cp:value-of j2)) (write-char #\;) (write-line (cp:value-of p1)) (write-char #\;) (write-line (cp:value-of p2)) )) ;#f ;#t ;#t ;#f ;Unspecified return value (let ((cn (cp:make-network 'test (cp:make-value-model boolean? boolean=?)))) (let ((j1 (cp:make-connector 'j1 cn)) (j2 (cp:make-connector 'j2 cn)) (p1 (cp:make-connector 'p1 cn)) (p2 (cp:make-connector 'p2 cn)) (t (cp:make-connector 't cn))) (cp:assume-value t #t) (cp:make-constraint cp:boolean-not #f cn j1 p1) (cp:make-constraint cp:boolean-not #f cn j2 p2) (cp:make-constraint cp:boolean-or #f cn t j1 j2) (cp:make-constraint cp:boolean-or #f cn t p1 p2) (cp:assume-value j1 #t) (fresh-line) (write-char #\;) (write-line (cp:value-of j1)) (write-char #\;) (write-line (cp:value-of j2)) (write-char #\;) (write-line (cp:value-of p1)) (write-char #\;) (write-line (cp:value-of p2)) )) ;#t ;#f ;#f ;#t ;Unspecified return value