public virtual bool IsEquivalentWith(MonaFormula phi, HashSet <Char> alphabet, CharSetSolver solver) { var p1 = new MonaIff(phi, this); var dfa = p1.GetDFA(alphabet, solver); return(!dfa.IsEmpty); }
public MonaBinaryFormula(MonaFormula left, MonaFormula right, MonaLogicalOperator op) { this.phi1 = left; this.phi2 = right; this.op = op; }
public MonaExistsSO(List <String> var, MonaFormula phi) : base(var, phi, MonaQuantifier.ExistsSO) { }
public MonaForallFO(List <String> var, MonaFormula phi) : base(var, phi, MonaQuantifier.ForallFO) { }
public MonaQuantifiedFormula(List <String> vars, MonaFormula phi, MonaQuantifier q) { this.phi = phi; this.vars = new List <string>(vars); this.q = q; }
public MonaQuantifiedFormula(List<String> vars, MonaFormula phi, MonaQuantifier q) { this.phi = phi; this.vars = new List<string>(vars); this.q = q; }
public MonaNot(MonaFormula phi) { this.phi = phi; }
public MonaIf(MonaFormula phi1, MonaFormula phi2) : base(phi1, phi2, MonaLogicalOperator.If) { }
public MonaIff(MonaFormula left, MonaFormula right) : base(left, right, MonaLogicalOperator.Iff) { }
public MonaOr(MonaFormula phi1, MonaFormula phi2) : base(phi1, phi2, MonaLogicalOperator.Or) { }
public MonaAnd(MonaFormula phi1, MonaFormula phi2) : base(phi1, phi2, MonaLogicalOperator.And) { }
public MonaExistsSO(List<String> var, MonaFormula phi) : base(var, phi, MonaQuantifier.ExistsSO) { }
public MonaForallFO(List<String> var, MonaFormula phi) : base(var, phi, MonaQuantifier.ForallFO) { }
public MonaPred(string name, List<string> variables, MonaFormula phi) { this.name = name; this.variables = new List<string>(variables); this.phi = phi; }
public MonaPred(string name, List <string> variables, MonaFormula phi) { this.name = name; this.variables = new List <string>(variables); this.phi = phi; }
public virtual bool IsEquivalentWith(MonaFormula phi, HashSet<Char> alphabet, CharSetSolver solver) { var p1 = new MonaIff(phi, this); var dfa = p1.GetDFA(alphabet, solver); return !dfa.IsEmpty; }