def logical_not(self): return Boolean_Val(Tools.bool_to_str(not self.value))
def logical_implies(self, rhs): return Boolean_Val(Tools.bool_to_str((not self.value) or rhs.value))
def logical_and(self, rhs): # short-circuit evaluation return Boolean_Val(Tools.bool_to_str(self.value and rhs.value))
def logical_or(self, rhs): return Boolean_Val(Tools.bool_to_str(self.value or rhs.value))
def to_str(self): return Tools.bool_to_str(self.value)