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

public abstract class CLaw extends Object implements CausalLaw
The action description language C consists of two distinct expressions: static laws and dynamic laws. Both share some common functionalities which are implemented in this base class.
Author:
Sebastian Homann
  • Constructor Details

    • CLaw

      public CLaw()
      Creates an empty causal law.
    • CLaw

      public CLaw(FolFormula headFormula)
      Creates a causal law of the form "caused headFormula if True"
      Parameters:
      headFormula - some FOL formula
    • CLaw

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

      public CLaw(FolFormula headFormula, FolFormula ifFormula, Set<GroundingRequirement> requirements)
      Creates a causal law of the form "caused headFormula if ifFormula requires requirements"
      Parameters:
      headFormula - some FOL formula
      ifFormula - some FOL formula
      requirements - a set of requirements
    • CLaw

      public CLaw(FolFormula headFormula, FolFormula ifFormula)
      Creates a causal law of the form "caused headFormula if ifFormula"
      Parameters:
      headFormula - some FOL formula
      ifFormula - some FOL formula
  • Method Details

    • getSignature

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

      public abstract boolean isDefinite()
      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.
      Returns:
      true, if this law is definite, false otherwise.
    • toDefinite

      public abstract Set<CLaw> toDefinite() throws IllegalStateException
      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.
      Returns:
      the equivalent definite causal law if one exists.
      Throws:
      IllegalStateException - when there is no equivalent definite causal law.
    • getAtoms

      public abstract Set<FolAtom> getAtoms()
      Returns:
      the set of propositions in all formulas in this law.
    • getFormulas

      public abstract Set<FolFormula> getFormulas()
      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.
      Returns:
      the set of formulas contained in this causal law.
    • addGroundingRequirement

      public void addGroundingRequirement(GroundingRequirement c)
    • getHeadFormula

      public FolFormula getHeadFormula()
      Returns:
      the headFormula of this causal law.
    • getIfFormula

      public FolFormula getIfFormula()
      Returns:
      the ifFormula of this causal law.
    • isGround

      public boolean isGround()
    • getAllGrounded

      public abstract Set<CLaw> getAllGrounded()
      Returns:
      the set of all grounded instances of this causal law.