Class AggregateElement

    • Field Detail

      • left

        private java.util.List<Term<?>> left
        The term tuple of the aggregate element.
      • right

        private java.util.List<ASPBodyElement> right
        The literal tuple of this aggregate element. TODO: Remove possibility of having AggregateAtoms in this list.
    • Constructor Detail

      • AggregateElement

        public AggregateElement​(java.util.List<Term<?>> l,
                                java.util.List<ASPBodyElement> r)
        Creates a new Aggregate Element with the given list of terms and the given list of naf literals.
        Parameters:
        l - a list of terms
        r - a list of body elements
      • AggregateElement

        public AggregateElement​(AggregateElement other)
        Copy-Constructor
        Parameters:
        other - another AggregateElement
    • Method Detail

      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • isLiteral

        public boolean isLiteral()
        Returns:
        true if the formula represents a literal in the language or false otherwise
      • getTerms

        public java.util.Set<Term<?>> getTerms()
        Returns:
        a set containing all terms of this logical structure
      • getTerms

        public <C extends Term<?>> java.util.Set<C> getTerms​(java.lang.Class<C> cls)
        Description copied from interface: LogicStructure
        Processes the set containing all terms of type C. This method uses the equals method of the given Class and therefore does not add terms which are sub classes of type C to the set.
        Type Parameters:
        C - the type of terms
        Parameters:
        cls - The Class structure containing type information about the searched term
        Returns:
        A set containing all terms of type C of this logical structure
      • substitute

        public AggregateElement substitute​(Term<?> t,
                                           Term<?> v)
        Description copied from interface: ComplexLogicalFormula
        Substitutes all occurrences of term "v" in this formula by term "t" and returns the new formula.
        Specified by:
        substitute in interface ComplexLogicalFormula
        Specified by:
        substitute in class ASPElement
        Parameters:
        t - the term to be substituted.
        v - the term to substitute.
        Returns:
        a formula where every occurrence of "v" is replaced by "t".
      • getSignature

        public FolSignature 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 ASPElement
        Returns:
        the signature of the language of this formula.
      • getLeft

        public java.util.List<Term<?>> getLeft()
        Returns the left part of the Aggregate element.
        Returns:
        list of terms
      • getRight

        public java.util.List<ASPBodyElement> getRight()
        Returns the right part of the Aggregate element.
        Returns:
        list of naf literals (= literals or default negated literals)
      • substitute

        public AggregateElement substitute​(java.util.Map<? extends Term<?>,​? extends Term<?>> map)
                                    throws java.lang.IllegalArgumentException
        Description copied from interface: ComplexLogicalFormula
        Substitutes all occurrences of all terms "v" in map.keyset() in this formula by map.get(v) and returns the new formula.
        Specified by:
        substitute in interface ComplexLogicalFormula
        Overrides:
        substitute in class ASPElement
        Parameters:
        map - a mapping defining which terms to be substituted.
        Returns:
        a formula where every term in map.keyset() has been replaced by map.get(v).
        Throws:
        java.lang.IllegalArgumentException - if any term and its mapping are of different sorts
      • exchange

        public AggregateElement exchange​(Term<?> v,
                                         Term<?> t)
                                  throws java.lang.IllegalArgumentException
        Description copied from interface: ComplexLogicalFormula
        Substitutes all occurrences of term "v" in this formula by term "t" and at the same time replaces all occurrences of term "t" by term "v" and eventually returns the new formula.
        Specified by:
        exchange in interface ComplexLogicalFormula
        Overrides:
        exchange in class ASPElement
        Parameters:
        v - a term.
        t - a term.
        Returns:
        a new logical formula with both "v" and "t" exchanged.
        Throws:
        java.lang.IllegalArgumentException - if "v" and "t" are of different sorts
      • getLiterals

        public java.util.SortedSet<ASPLiteral> getLiterals()