def ___always_tri_test___(sf): op = LazyTriBoolOps.lazyL_OR return op(Lazy(always_tri_test, sf.lhs), Lazy(always_tri_test, sf.rhs))()
def lazyL_NOT_IMPLY(cls, lazy_lhs, lazy_rhs): return Lazy(cls._lazy_binary_tribool_op, False, 'NOT_IMPLY', lazy_lhs, lazy_rhs)
def lazyR_NOT_FLIP_IMPLY(cls, lazy_lhs, lazy_rhs): return Lazy(cls._lazy_binary_tribool_op, True, 'NOT_FLIP_IMPLY', lazy_lhs, lazy_rhs)
def lazyR_XNOR(cls, lazy_lhs, lazy_rhs): return Lazy(cls._lazy_binary_tribool_op, True, 'XNOR', lazy_lhs, lazy_rhs)
def lazyL_XNOR(cls, lazy_lhs, lazy_rhs): return Lazy(cls._lazy_binary_tribool_op, False, 'XNOR', lazy_lhs, lazy_rhs)
def lazyR_NOT_AND(cls, lazy_lhs, lazy_rhs): return Lazy(cls._lazy_binary_tribool_op, True, 'NOT_AND', lazy_lhs, lazy_rhs)
def lazyL_AND(cls, lazy_lhs, lazy_rhs): return Lazy(cls._lazy_binary_tribool_op, False, 'AND', lazy_lhs, lazy_rhs)
def lazy_NOT(cls, lazy_rhs): return Lazy(cls._lazy_not, lazy_rhs)