示例#1
0
def termCollectSig(t, sig=None):
    """
    Insert all function symbols and their associated arities in t into
    the signature sig. For convenience, return it. If sig is not
    given, create it.
    """
    if sig == None:
        sig = Signature()
    if termIsCompound(t):
        sig.addFun(termFunc(t), len(t) - 1)
        for s in termArgs(t):
            termCollectSig(s, sig)
    return sig
示例#2
0
    def testCompatibility(self):
        """
        Test that compatibility axioms are generated as expected.
        """
        ax = generateFunCompatAx("f", 3)
        self.assertEqual(len(ax), 4)
        print(ax)

        ax = generatePredCompatAx("p", 5)
        self.assertEqual(len(ax), 7)
        print(ax)

        sig = Signature()
        sig.addFun("f", 2)
        sig.addPred("p", 3)
        sig.addFun("a", 0)

        tmp = generateCompatAxioms(sig)
        # Note: No axiom for a
        self.assertEqual(len(tmp), 2)