"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-06 01:05:03.563218
"""

```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 the fact.
        """
        if fact not in self.knowledge:
            self.knowledge[fact] = []

    def get_facts(self) -> Dict[str, List]:
        """
        Returns all facts stored in the knowledge base.

        :return: A dictionary of facts where each key is a fact and value is an empty list.
        """
        return self.knowledge

    def reason(self, query: str) -> bool:
        """
        Reason about whether a given statement can be inferred from the existing facts.

        :param query: The statement to check for inference.
        :return: True if the statement can be inferred, False otherwise.
        """
        # Simple AND reasoning
        return all(fact in self.knowledge for fact in query.split(' and '))


def create_reasoning_engine() -> KnowledgeBase:
    """
    Creates a basic reasoning engine that allows adding facts and inferring new statements.

    :return: A newly created instance of the KnowledgeBase.
    """
    return KnowledgeBase()


# Example usage
if __name__ == "__main__":
    reasoning_engine = create_reasoning_engine()
    
    # Adding some knowledge to the base
    reasoning_engine.add_fact("It is raining outside")
    reasoning_engine.add_fact("John has an umbrella")

    print(reasoning_engine.get_facts())

    # Reasoning about new statements
    if reasoning_engine.reason("It is raining outside and John has an umbrella"):
        print("Based on our knowledge, it seems John can stay dry.")
    else:
        print("We cannot infer that from the given facts.")

```