In [1]:
%load_ext gvmagic

In [2]:
from boolexpr import *

In [3]:
ctx = Context()

In [4]:
a, b, c, d, p, q, s, d1, d0 = map(ctx.get_var, "a b c d p q s d1 d0".split())

In [5]:
%dotobjs ~a | b, or_(0, b, ~c, 'X')


object 0:
%3 n0x1f266c8 ~a n0x1f6c4b8 or n0x1f266c8--n0x1f6c4b8 n0x1f54878 b n0x1f54878--n0x1f6c4b8
object 1:
%3 n0x1f99178 0 n0x1f9e318 or n0x1f99178--n0x1f9e318 n0x1f54878 b n0x1f54878--n0x1f9e318 n0x1f58818 ~c n0x1f58818--n0x1f9e318 n0x1f4b3c8 X n0x1f4b3c8--n0x1f9e318

In [6]:
%dotobjs ~a & b, and_(1, b, ~c, '?')


object 0:
%3 n0x1f266c8 ~a n0x1f443c8 and n0x1f266c8--n0x1f443c8 n0x1f54878 b n0x1f54878--n0x1f443c8
object 1:
%3 n0x1f3d798 1 n0x1f63c28 and n0x1f3d798--n0x1f63c28 n0x1f54878 b n0x1f54878--n0x1f63c28 n0x1f58818 ~c n0x1f58818--n0x1f63c28 n0x1f47398 ? n0x1f47398--n0x1f63c28

In [7]:
%dotobjs ~a ^ b, xor(0, ~c, d, 'X')


object 0:
%3 n0x1f266c8 ~a n0x1f6c4b8 xor n0x1f266c8--n0x1f6c4b8 n0x1f54878 b n0x1f54878--n0x1f6c4b8
object 1:
%3 n0x1f99178 0 n0x1f443c8 xor n0x1f99178--n0x1f443c8 n0x1f58818 ~c n0x1f58818--n0x1f443c8 n0x1f57af8 d n0x1f57af8--n0x1f443c8 n0x1f4b3c8 X n0x1f4b3c8--n0x1f443c8

In [8]:
%dotobjs eq(~a, b), eq(1, b, ~c, '?')


object 0:
%3 n0x1f266c8 ~a n0x1f8d988 eq n0x1f266c8--n0x1f8d988 n0x1f54878 b n0x1f54878--n0x1f8d988
object 1:
%3 n0x1f3d798 1 n0x1f6c4b8 eq n0x1f3d798--n0x1f6c4b8 n0x1f54878 b n0x1f54878--n0x1f6c4b8 n0x1f58818 ~c n0x1f58818--n0x1f6c4b8 n0x1f47398 ? n0x1f47398--n0x1f6c4b8

In [9]:
%dotobjs impl(p, q), impl(0, 1)


object 0:
%3 n0x1f37a28 p n0x1f8d988 impl n0x1f37a28--n0x1f8d988 n0x1f63388 q n0x1f63388--n0x1f8d988
object 1:
%3 n0x1f99178 0 n0x1ef4898 impl n0x1f99178--n0x1ef4898 n0x1f3d798 1 n0x1f3d798--n0x1ef4898

In [10]:
%dotobjs ite(s, d1, d0), ite(s, 0, 1)


object 0:
%3 n0x1f37c98 s n0x1f63c28 ite n0x1f37c98--n0x1f63c28 n0x1f24a68 d1 n0x1f24a68--n0x1f63c28 n0x1f372d8 d0 n0x1f372d8--n0x1f63c28
object 1:
%3 n0x1f37c98 s n0x1f8d988 ite n0x1f37c98--n0x1f8d988 n0x1f99178 0 n0x1f99178--n0x1f8d988 n0x1f3d798 1 n0x1f3d798--n0x1f8d988

In [11]:
%dotobj ~or_(a, and_(b, ~eq(c, impl(p, q))), xor(d, ~ite(s, d1, d0)))


%3 n0x1f4b968 a n0x1f87fc8 ~or n0x1f4b968--n0x1f87fc8 n0x1f54878 b n0x1f6c4b8 and n0x1f54878--n0x1f6c4b8 n0x1f50448 c n0x1f9e318 ~eq n0x1f50448--n0x1f9e318 n0x1f37a28 p n0x1f911d8 impl n0x1f37a28--n0x1f911d8 n0x1f63388 q n0x1f63388--n0x1f911d8 n0x1f911d8--n0x1f9e318 n0x1f9e318--n0x1f6c4b8 n0x1f6c4b8--n0x1f87fc8 n0x1f57af8 d n0x1fb4448 xor n0x1f57af8--n0x1fb4448 n0x1f37c98 s n0x1f86ff8 ~ite n0x1f37c98--n0x1f86ff8 n0x1f24a68 d1 n0x1f24a68--n0x1f86ff8 n0x1f372d8 d0 n0x1f372d8--n0x1f86ff8 n0x1f86ff8--n0x1fb4448 n0x1fb4448--n0x1f87fc8

In [ ]: