"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-08 17:46:46.752234
"""

```python
from typing import List, Dict

class KnowledgeBase:
    def __init__(self):
        self.knowledge = []

    def add_fact(self, fact: str) -> None:
        """
        Adds a new fact to the knowledge base.

        :param fact: A string representing a fact.
        """
        self.knowledge.append(fact)

    def query(self, question: str) -> bool:
        """
        Queries the knowledge base for a specific question. Returns True if
        the question is affirmatively answered by any stored facts; otherwise False.

        :param question: A string representing a question to be queried.
        :return: A boolean indicating whether the question is supported by evidence.
        """
        return any(question in fact for fact in self.knowledge)


class ReasoningEngine:
    def __init__(self, kb: KnowledgeBase):
        self.kb = kb

    def reason(self, statement: str) -> bool:
        """
        Evaluates a statement based on the knowledge base. Returns True if
        the statement is supported by evidence in the knowledge base; otherwise False.

        :param statement: A string representing a statement to be evaluated.
        :return: A boolean indicating whether the statement holds true given the current knowledge.
        """
        return self.kb.query(statement)

    def learn(self, new_fact: str) -> None:
        """
        Updates the reasoning engine with a new fact.

        :param new_fact: A string representing a new fact to be added.
        """
        self.kb.add_fact(new_fact)


# Example usage
if __name__ == "__main__":
    kb = KnowledgeBase()
    kb.add_fact("All humans are mortal.")
    kb.add_fact("Socrates is a human.")

    engine = ReasoningEngine(kb)

    print(engine.reason("Socrates is mortal."))  # Expected: True
    print(engine.reason("Plato is mortal."))     # Expected: False

    kb.add_fact("Plato is a philosopher.")
    kb.add_fact("All philosophers are wise.")
    
    engine.learn("Some sages are philosophers.")

    print(engine.reason("Socrates is wise."))   # Expected: True
```