Class DynamicLaw

  • All Implemented Interfaces:
    CausalLaw, Formula

    public class DynamicLaw
    extends CLaw
    A dynamic law in C has the form "caused F if G after U" where F is a propositional formula over the set of fluent names (called headFormula) G is a propositional formula over the set of fluent names (called ifFormula) U is a propositional formula over the set of fluent names and the set of action names (called afterFormula)
    Author:
    wutsch
    • Constructor Detail

      • DynamicLaw

        public DynamicLaw()
        Constructs a new empty dynamic law.
      • DynamicLaw

        public DynamicLaw​(FolFormula headFormula,
                          FolFormula ifFormula,
                          FolFormula afterFormula)
        Creates a new dynamic law of the form: "caused headFormula if ifFormula after afterFormula"
        Parameters:
        headFormula - some FOL formula
        ifFormula - some FOL formula
        afterFormula - some FOL formula
      • DynamicLaw

        public DynamicLaw​(FolFormula headFormula,
                          FolFormula ifFormula,
                          FolFormula afterFormula,
                          java.util.Set<GroundingRequirement> requirements)
        Creates a new dynamic law of the form: "caused headFormula if ifFormula after afterFormula requires requirements"
        Parameters:
        headFormula - some FOL formula
        ifFormula - some FOL formula
        afterFormula - some FOL formula
        requirements - a set of requirements
      • DynamicLaw

        public DynamicLaw​(FolFormula headFormula,
                          FolFormula afterFormula)
        Creates a new dynamic law of the form "caused headFormula after afterFormula"
        Parameters:
        headFormula - some FOL formula
        afterFormula - some FOL formula
      • DynamicLaw

        public DynamicLaw​(FolFormula headFormula,
                          FolFormula afterFormula,
                          java.util.Set<GroundingRequirement> requirements)
        Creates a new dynamic law of the form "caused headFormula after afterFormula" requires requirements
        Parameters:
        headFormula - some FOL formula
        afterFormula - some FOL formula
        requirements - a set of requirements
    • Method Detail

      • getAfterFormula

        public FolFormula getAfterFormula()
        Returns:
        the afterFormula of this causal law.
      • 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 java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • 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 java.util.Set<FolAtom> getAtoms()
        Specified by:
        getAtoms in class CLaw
        Returns:
        the set of propositions in all formulas in this law.
      • toDefinite

        public java.util.Set<CLaw> toDefinite()
        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.
      • getAllGrounded

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

        public java.util.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.