:-asserta(st_variables([a,b],[q])). st(s0,((not(a);not(b)),q),s0). st(s0, (a,b,not(p)),s1). st(s0, empty,empty). st(s1,(not(c),q),s1). st(s1,(c,not(q)),s2). st(s1, empty,empty). st(s2,(a,not(b),q),s2). st(s2,((not(a);b),not(q)),s3). st(s2, empty,empty). st(s3,(c,not(q)),s0). st(s3,(not(c),not(q)),s3). st(s3, empty,empty). st(ns0,((not(a);not(b))),ns0). st(ns0, (a,b,not(p)),ns1). st(ns0, empty,empty). st(ns1,(not(c)),ns1). st(ns1,(c,not(q)),ns2). st(ns1, empty,empty). st(ns2,(a,not(b)),ns2). st(ns2,((not(a);b)),ns3). st(ns2, empty,empty). st(ns3,(c,not(q)),ns0). st(ns3,(not(c)),ns3). st(ns3, empty,empty).