def future(f: Formula) -> Formula: return BinaryFormula(U(), LTL.t(), f)
def globally(f: Formula) -> Formula: return BinaryFormula(R(), LTL.f(), f)
def eq(l: Formula, r: Formula) -> Formula: return BinaryFormula(AND(), LTL.impl(l, r), LTL.impl(r, l))
def impl(l: Formula, r: Formula) -> Formula: return BinaryFormula(OR(), Not(l), r)
def until(l: Formula, r: Formula) -> Formula: return BinaryFormula(U(), l, r)
def release(l: Formula, r: Formula) -> Formula: return BinaryFormula(R(), l, r)
def or_(l: Formula, r: Formula) -> Formula: return BinaryFormula(OR(), l, r)
def and_(l: Formula, r: Formula) -> Formula: return BinaryFormula(AND(), l, r)
def toNormalForm(left: Formula, right: Formula) -> Formula: return BinaryFormula(OR(), left.toNormalForm(True), right.toNormalForm(True))