"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-07 04:06:57.154722
"""

```python
from typing import List, Dict, Any


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

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

        :param statement: A string representing the statement.
        """
        self.knowledge.append(statement)

    def retrieve(self, query: str) -> List[str]:
        """
        Retrieves statements from the knowledge base that match the given query.

        :param query: A string representing the query.
        :return: A list of strings that are retrieved as a result of the query.
        """
        relevant = [stmt for stmt in self.knowledge if query.lower() in stmt.lower()]
        return relevant


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

    def infer(self, statement: str) -> List[str]:
        """
        Infers new statements from the given input and existing knowledge base.

        :param statement: A string representing the input statement.
        :return: A list of strings representing inferred statements.
        """
        if not self.knowledge_base.knowledge:
            return []

        inferred_statements = []
        for known in self.knowledge_base.knowledge:
            words_known = set(known.split())
            words_new = set(statement.split())

            common_words = words_known.intersection(words_new)
            if common_words and any([len(common) > 2 for common in common_words]):
                new_statement = ' '.join(common_words).capitalize() + " is related to the statement."
                inferred_statements.append(new_statement)

        return list(set(inferred_statements))  # Remove duplicates


# Example usage
if __name__ == "__main__":
    knowledge_base = KnowledgeBase()
    knowledge_base.add("dogs are mammals")
    knowledge_base.add("cats are also mammals")

    reasoning_engine = ReasoningEngine(knowledge_base)
    
    inferred = reasoning_engine.infer("What is the relationship between dogs and cats?")
    print(inferred)

    query_results = knowledge_base.retrieve("mammals")
    print(query_results)
```

This example demonstrates a simple reasoning engine that uses a knowledge base to infer related statements based on common words. The `infer` method searches for overlapping words between known statements and the new input, then generates inferred statements suggesting relationships.