public bool AreEquivalent(MSOFormula <S> phi1, MSOFormula <S> phi2) { var aut1 = phi1.GetAutomaton(solver); var aut2 = phi2.GetAutomaton(solver); return(aut1.IsEquivalentWith(aut2, solver)); }
public MSOFormula <S> GetAtom(MSOFormula <S> psi) { if (!IsAtomic) { throw new AutomataException(AutomataExceptionKind.BooleanAlgebraIsNotAtomic); } throw new NotImplementedException(); }
public MSOForallFo(string var, MSOFormula phi) : base(var, phi) { }
public MSOOr(MSOFormula <T> phi1, MSOFormula <T> phi2) : base(phi1, phi2) { }
public MSOBinaryOp(MSOFormula <T> phi1, MSOFormula <T> phi2) { this.phi1 = phi1; this.phi2 = phi2; }
public MSOEquiv(MSOFormula <T> phi1, MSOFormula <T> phi2) : base(phi1, phi2) { }
public MSOExists(Variable var, MSOFormula <T> phi) : base(var, phi) { }
public bool IsSatisfiable(MSOFormula <S> phi) { var aut = phi.GetAutomaton(solver); return(!aut.IsEmpty); }
public MSOForallSo(string var, MSOFormula <T> phi) : base(var, phi) { }
public MSOExistsSo(string var, MSOFormula <T> phi) : base(var, phi) { }
public MSOQuantifiedSOFormula(string var, MSOFormula <T> phi) : base(var, phi) { }
public MSOQuantifiedFormula(string var, MSOFormula <T> phi) { this.var = var; this.phi = phi; }
public MSOIff(MSOFormula phi1, MSOFormula phi2) : base(phi1, phi2) { }
public MSOAnd(MSOFormula phi1, MSOFormula phi2) : base(phi1, phi2) { }
public MSOBinaryPred(MSOFormula phi1, MSOFormula phi2) { this.phi1 = phi1; this.phi2 = phi2; }
public MSOFormula <S> MkOr(MSOFormula <S> phi1, MSOFormula <S> phi2) { return(new MSOOr <S>(phi1, phi2)); }
public MSOFormula <S> MkAnd(MSOFormula <S> phi1, MSOFormula <S> phi2) { return(new MSOAnd <S>(phi1, phi2)); }
public MSOFormula <S> MkSymmetricDifference(MSOFormula <S> p1, MSOFormula <S> p2) { throw new NotImplementedException(); }
public MSOFormula <S> Simplify(MSOFormula <S> phi) { //TODO simplify trivial stuff return(phi); }
public bool CheckImplication(MSOFormula <S> lhs, MSOFormula <S> rhs) { throw new NotImplementedException(); }
public MSOImplies(MSOFormula <T> phi1, MSOFormula <T> phi2) : base(phi1, phi2) { }
public bool EvaluateAtom(MSOFormula <S> atom, MSOFormula <S> psi) { throw new NotImplementedException(); }
public MSOForall(Variable var, MSOFormula <T> phi) : base(var, phi) { }
public MSOFormula <S> MkDiff(MSOFormula <S> predicate1, MSOFormula <S> predicate2) { return(MkAnd(predicate1, MkNot(predicate2))); }
public MSOQuantifiedFormula(Variable var, MSOFormula <T> phi) { this.var = var; this.phi = phi; }
public MSOFormula <S> MkNot(MSOFormula <S> phi) { return(new MSONot <S>(phi)); }
public MSONot(MSOFormula <T> phi) { this.phi = phi; }
public MSOExistsFo(string var, MSOFormula phi) : base(var, phi) { }