class_docstr: This is a prover decorator that completes predicates before proving.
  
  If the assumptions contain "P(A)", then "all x.(P(x) -> (x=A))" is the completion of "P".
  If the assumptions contain "all x.(ostrich(x) -> bird(x))", then "all x.(bird(x) -> ostrich(x))" is the completion of "bird".
  If the assumptions don't contain anything that are "P", then "all x.-P(x)" is the completion of "P".
  
  walk(Socrates)
  Socrates != Bill
  + all x.(walk(x) -> (x=Socrates))
  ----------------
  -walk(Bill)
  
  see(Socrates, John)
  see(John, Mary)
  Socrates != John
  John != Mary
  + all x.all y.(see(x,y) -> ((x=Socrates & y=John) | (x=John & y=Mary)))
  ----------------
  -see(Socrates, Mary)
  
  all x.(ostrich(x) -> bird(x))
  bird(Tweety)
  -ostrich(Sam)
  Sam != Tweety
  + all x.(bird(x) -> (ostrich(x) | x=Tweety))
  + all x.-ostrich(x)
  -------------------
  -bird(Sam)
class_docstr_tok: ["This","is","a","prover","decorator","that","completes","predicates","before","proving",".","If","the","assumptions","contain","``","P","(","A",")","''",",","then","``","all","x",".","(","P","(","x",")","-",">","(","x=A",")",")","''","is","the","completion","of","``","P","''",".","If","the","assumptions","contain","``","all","x",".","(","ostrich","(","x",")","-",">","bird","(","x",")",")","''",",","then","``","all","x",".","(","bird","(","x",")","-",">","ostrich","(","x",")",")","''","is","the","completion","of","``","bird","''",".","If","the","assumptions","do","n't","contain","anything","that","are","``","P","''",",","then","``","all","x.-P","(","x",")","''","is","the","completion","of","``","P","''",".","walk","(","Socrates",")","Socrates","!","=","Bill","+","all","x",".","(","walk","(","x",")","-",">","(","x=Socrates",")",")","--","--","--","--","--","--","--","--","-walk","(","Bill",")","see","(","Socrates",",","John",")","see","(","John",",","Mary",")","Socrates","!","=","John","John","!","=","Mary","+","all","x.all","y",".","(","see","(","x",",","y",")","-",">","(","(","x=Socrates","&","y=John",")","|","(","x=John","&","y=Mary",")",")",")","--","--","--","--","--","--","--","--","-see","(","Socrates",",","Mary",")","all","x",".","(","ostrich","(","x",")","-",">","bird","(","x",")",")","bird","(","Tweety",")","-ostrich","(","Sam",")","Sam","!","=","Tweety","+","all","x",".","(","bird","(","x",")","-",">","(","ostrich","(","x",")","|","x=Tweety",")",")","+","all","x.-ostrich","(","x",")","--","--","--","--","--","--","--","--","--","-","-bird","(","Sam",")"]
docstr: Return an application expression with 'predicate' as the predicate
  and 'signature' as the list of arguments.
docstr_tok: ["Return","an","application","expression","with","'predicate","'","as","the","predicate","and","'signature","'","as","the","list","of","arguments","."]
code: def _make_antecedent(self, predicate, signature):
      """
      Return an application expression with 'predicate' as the predicate
      and 'signature' as the list of arguments.
      """
      antecedent = predicate
      for v in signature:
          antecedent = antecedent(VariableExpression(v))
      return antecedent
  
imports: from collections import defaultdict
  from functools import reduce
  from nltk.inference.api import Prover, ProverCommandDecorator
  from nltk.inference.prover9 import Prover9, Prover9Command
  from nltk.sem.logic import AbstractVariableExpression, AllExpression, AndExpression, ApplicationExpression, BooleanExpression, EqualityExpression, ExistsExpression, Expression, ImpExpression, NegatedExpression, Variable, VariableExpression, operator, unique_variable
label_desc: Use image node_id 3 for calling the ClosedWorldProver obj's underlying member method code with example usage: obj._make_antecedent(predicate, signature) and returns: antecedent