public override StateFormula existentialNormalForm() { StateFormula e_left = left.existentialNormalForm(); StateFormula e_right = right.existentialNormalForm(); return(new SAnd(e_left, e_right)); }
public override StateFormula existentialNormalForm() { //EF phi = E (true U phi) StateFormula true_state = new SBoolean(true); StateFormula phi = operand.existentialNormalForm(); return(new SEUntil(true_state, phi)); }
/// <summary> /// Visits the <paramref name="formula." /> /// </summary> public override void VisitStateFormula(StateFormula formula) { _builder.Append("{"); _builder.Append("state1=1"); // Note: Currently, only the direct comparison with state slots is supported //_builder.Append(formula.Label); //var equalsTrue = "=\\\"true\\\""; //_builder.Append(equalsTrue); _builder.Append("}"); }
public override StateFormula existentialNormalForm() { // AX phi = NOT E (X NOT phi) StateFormula e_operand = operand.existentialNormalForm(); StateFormula not_phi = new SNot(e_operand); StateFormula exists_next = new SENext(not_phi); return(new SNot(exists_next)); }
public override StateFormula existentialNormalForm() { // AG phi = NOT EG (NOT phi) StateFormula e_operand = operand.existentialNormalForm(); StateFormula not_phi = new SNot(e_operand); StateFormula exists_always = new SEAlways(not_phi); return(new SNot(exists_always)); }
public override StateFormula existentialNormalForm() { // AG phi = NOT EF (NOT phi) = NOT E (true U (NOT phi)) StateFormula e_operand = operand.existentialNormalForm(); StateFormula not_phi = new SNot(e_operand); StateFormula true_state = new SBoolean(true); StateFormula exists_until = new SEUntil(true_state, not_phi); return(new SNot(exists_until)); }
public override StateFormula existentialNormalForm() { StateFormula e_left = left.existentialNormalForm(); StateFormula e_right = right.existentialNormalForm(); // a OR b = NOT ((NOT a) AND (NOT b)) e_left = new SNot(e_left); e_right = new SNot(e_right); StateFormula and = new SAnd(e_left, e_right); return(new SNot(and)); }
public SAFinally(StateFormula operand) { this.operand = operand; }
public SAWeakUntil(StateFormula left, StateFormula right) { this.left = left; this.right = right; }
/// <summary> /// Visits the <paramref name="formula." /> /// </summary> public override void VisitStateFormula(StateFormula formula) { _expression = Expression.Invoke(Expression.Constant(formula.Expression)); }
/// <summary> /// Visits the <paramref name="formula." /> /// </summary> public override void VisitStateFormula(StateFormula formula) { _builder.Append(formula.Label); }
public SEAlways(StateFormula operand) { this.operand = operand; }
/// <summary> /// Visits the <paramref name="formula." /> /// </summary> public override void VisitStateFormula(StateFormula formula) { }
/// <summary> /// Visits the <paramref name="formula." /> /// </summary> public override void VisitStateFormula(StateFormula formula) { _builder.Append($"({formula.Label} == 1)"); }
public SOr(StateFormula left, StateFormula right) { this.left = left; this.right = right; }
public SNot(StateFormula state) { this.state = state; }
/// <summary> /// Visits the <paramref name="formula." /> /// </summary> public abstract void VisitStateFormula(StateFormula formula);
/// <summary> /// Visits the <paramref name="formula." /> /// </summary> public override void VisitStateFormula(StateFormula formula) { StateFormulas.Add(formula); }
public override StateFormula existentialNormalForm() { StateFormula e_operand = operand.existentialNormalForm(); return(new SEAlways(e_operand)); }
/// <summary> /// Visits an element of type <see cref="StateFormula" />. /// </summary> /// <param name="formula">The <see cref="StateFormula" /> instance that should be visited.</param> protected internal virtual void VisitStateFormula(StateFormula formula) { DefaultVisit(formula); }
/// <summary> /// Visits an element of type <see cref="StateFormula" />. /// </summary> /// <param name="formula">The <see cref="StateFormula" /> instance that should be visited.</param> protected internal override void VisitStateFormula(StateFormula formula) { Visit(formula.Expression); }
public SANext(StateFormula operand) { this.operand = operand; }
public override StateFormula existentialNormalForm() { StateFormula e_state = state.existentialNormalForm(); return(new SNot(e_state)); }