%           what        seq   y n   ytries ntries
lurch_logic(and, 		[seq=l2r,y=all,n=dc,ytries=all,ntries=0]). 
lurch_logic(rand, 		[seq=rone,y=all,n=dc,ytries=all,ntries=0]). 
lurch_logic(or, 		[seq=l2r,y=1,n=dc,ytries=1,ntries=0]). 
lurch_logic(ror, 		[seq=rone,y=1,n=dc,ytries=1,ntries=0]). 
lurch_logic(any, 		[seq=l2r,y=1,n=dc,ytries=all,ntries=0]). 
lurch_logic(rany, 		[seq=rone,y=1,n=dc,ytries=all,ntries=0]). 

de_morgan(and, nor). 
de_morgan(rand, rnor). 
de_morgan(or, nand). 
de_morgan(ror, rnand). 
de_morgan(any, nand). 
de_morgan(rany, rnand). 
de_morgan(nand, or). 
de_morgan(rnand, ror). 
de_morgan(nor, and). 
de_morgan(rnor, rand). 
de_morgan(nany, and). 
de_morgan(xor, dxor). 
de_morgan(rxor, rdxor). 

% defined by eliza, but i never used them
lurch_logic(xor, 		[seq=l2r,y=1,n=xc(1),ytries=1,ntries=xc(1)]). 
lurch_logic(rxor, 		[seq=rone,y=1,n=xc(1),ytries=1,ntries=xc(1)]). 
lurch_logic(nand, 		[seq=l2r,y=dc,n=all,ytries=0,ntries=all]). 
lurch_logic(rnand, 		[seq=rone,y=dc,n=all,ytries=0,ntries=all]). 
lurch_logic(nor, 		[seq=l2r,y=dc,n=1,ytries=0,ntries=1]). 
lurch_logic(rnor, 		[seq=rone,y=dc,n=1,ytries=0,ntries=1]). 
lurch_logic(nany, 		[seq=l2r,y=dc,n=1,ytries=0,ntries=all]). 
lurch_logic(nrany,		[seq=rone,y=dc,n=1,ytries=0,ntries=all]). 
lurch_logic(dxor1, 		[seq=l2r,y=2,n=dc,ytries=2,ntries=0]). 
lurch_logic(rdxor1, 	[seq=rone,y=2,n=dc,ytries=2,ntries=0]). 
lurch_logic(dxor,  L) :- lurch_logic(dxor1, L); lurch_logic(nand, L). 
lurch_logic(rdxor, L) :- lurch_logic(rdxor1, L); lurch_logic(rnand, L). 


