"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-08 01:37:59.182222
"""

```python
from typing import List, Dict

class KnowledgeBase:
    def __init__(self):
        self.knowledge = {}

    def add_fact(self, fact: str) -> None:
        """Add a new fact to the knowledge base."""
        if fact not in self.knowledge:
            self.knowledge[fact] = []

    def query(self, question: str) -> List[str]:
        """
        Query the knowledge base for related facts.

        Args:
            question (str): The question or statement to find matches for.

        Returns:
            List[str]: A list of matching facts from the knowledge base.
        """
        return [fact for fact in self.knowledge if question.lower() in fact.lower()]

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

    def reason_about(self, statement: str) -> Dict[str, List[str]]:
        """
        Analyze a given statement and return related facts.

        Args:
            statement (str): The input statement to analyze.

        Returns:
            Dict[str, List[str]]: A dictionary where keys are the parts of
                                  the statement and values are lists of related facts.
        """
        result = {part: self.kb.query(part) for part in statement.split()}
        return result

# Example usage
def main():
    kb = KnowledgeBase()
    kb.add_fact("The sky is blue during the day")
    kb.add_fact("Dogs bark at strangers")
    kb.add_fact("Water boils at 100 degrees Celsius")

    engine = ReasoningEngine(kb)
    
    input_statement = "What color is the sky and what do dogs do to strangers?"
    reasoning_results = engine.reason_about(input_statement)

    for part, facts in reasoning_results.items():
        print(f"Given: {part} -> Facts: {facts}")

if __name__ == "__main__":
    main()
```