Class CLaw

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()
      Retrieves the set of propositions (atoms) contained in all formulas within this law.
      Returns:
      a `Set` of `FolAtom` objects representing all the propositions in the formulas that constitute 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)
      Adds a grounding requirement to this CLaw.
      Parameters:
      c - the grounding requirement to be added
    • getHeadFormula

      public FolFormula getHeadFormula()
      Retrieves the head formula of this causal law.
      Returns:
      the `FolFormula` that constitutes the head of this causal law.
    • getIfFormula

      public FolFormula getIfFormula()
      Retrieves the conditional (if) formula of this causal law.
      Returns:
      the `FolFormula` that constitutes the condition (if clause) of this causal law.
    • isGround

      public boolean isGround()
      Checks if the CLaw is ground, i.e., if all the atoms in the CLaw are ground.
      Returns:
      true if the CLaw is ground, false otherwise.
    • getAllGrounded

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