'Add a sentence to the current discourse.
Updates ``self._input`` and ``self._sentences``.
:param sentence: An input sentence
:type sentence: str
:param informchk: if ``True``, check that the result of adding the sentence is thread-informative. Updates ``self._readings``.
:param consistchk: if ``True``, check that the result of adding the sentence is thread-consistent. Updates ``self._readings``.'

def add_sentence(self, sentence, informchk=False, consistchk=False):

    if informchk:
        self.readings(verbose=False)
        for tid in sorted(self._threads):
            assumptions = [reading for (rid, reading) in self.expand_threads(tid)]
            assumptions += self._background
            for sent_reading in self._get_readings(sentence):
                tp = Prover9Command(goal=sent_reading, assumptions=assumptions)
                if tp.prove():
                    print(("Sentence    '%s'    under    reading    '%s':" % (sentence, str(sent_reading))))
                    print(("Not    informative    relative    to    thread    '%s'" % tid))
    self._input.append(sentence)
    self._sentences = dict([(('s%s' % i), sent) for (i, sent) in enumerate(self._input)])
    if consistchk:
        self.readings(verbose=False)
        self.models(show=False)
