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
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)