java.lang.Object
org.tweetyproject.action.description.syntax.CLaw
org.tweetyproject.action.description.syntax.StaticLaw
All Implemented Interfaces:
CausalLaw, Formula

public class StaticLaw extends CLaw
This class represents a static rule in C, which has the following form: "caused H if G" where H is a propositional formula over the set of fluents and G is a propositional formula over the set of fluents and the set of actions
Author:
Sebastian Homann
  • Constructor Details

    • StaticLaw

      public StaticLaw()
      Creates an empty static law.
    • StaticLaw

      public StaticLaw(FolFormula headFormula)
      Creates an empty static law of the form "caused headFormula if True"
      Parameters:
      headFormula - some FOL formula
    • StaticLaw

      public StaticLaw(FolFormula headFormula, Set<GroundingRequirement> requirements)
      Creates an empty static law of the form "caused headFormula if True requires requirements"
      Parameters:
      headFormula - some FOL formula
      requirements - a set of requirements
    • StaticLaw

      public StaticLaw(FolFormula headFormula, FolFormula ifFormula)
      Creates an empty static law of the form "caused headFormula if ifFormula"
      Parameters:
      headFormula - some FOL formula
      ifFormula - some FOL formula
    • StaticLaw

      public StaticLaw(FolFormula headFormula, FolFormula ifFormula, Set<GroundingRequirement> requirements)
      Creates an empty static law of the form "caused headFormula if ifFormula" requires requirements
      Parameters:
      headFormula - some FOL formula
      ifFormula - some FOL formula
      requirements - a set of requirements
  • Method Details

    • isDefinite

      public boolean isDefinite()
      Description copied from class: CLaw
      Returns true iff this law is definite. A causal law is definite if it's head is a literal or a contradiction and all formulas are conjunctions of literals.
      Specified by:
      isDefinite in class CLaw
      Returns:
      true, if this law is definite, false otherwise.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toDefinite

      public Set<CLaw> toDefinite() throws IllegalStateException
      Description copied from class: CLaw
      Returns an equivalent definite causal law. A causal law is definite if it's head is a literal or a contradiction and all formulas are conjunctions of literals.
      Specified by:
      toDefinite in class CLaw
      Returns:
      the equivalent definite causal law if one exists.
      Throws:
      IllegalStateException - when there is no equivalent definite causal law.
    • getSignature

      public Signature getSignature()
      Description copied from interface: Formula
      Returns the signature of the language of this formula.
      Specified by:
      getSignature in interface Formula
      Specified by:
      getSignature in class CLaw
      Returns:
      the signature of the language of this formula.
    • getAtoms

      public Set<FolAtom> getAtoms()
      Specified by:
      getAtoms in class CLaw
      Returns:
      the set of propositions in all formulas in this law.
    • getAllGrounded

      public Set<CLaw> getAllGrounded()
      Specified by:
      getAllGrounded in class CLaw
      Returns:
      the set of all grounded instances of this causal law.
    • getFormulas

      public Set<FolFormula> getFormulas()
      Description copied from class: CLaw
      Returns the set of formulas contained in this causal law, e.g. in a static law, this contains the head formula and the if formula.
      Specified by:
      getFormulas in class CLaw
      Returns:
      the set of formulas contained in this causal law.