"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-08 00:08:31.064331
"""

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

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 get_facts(self) -> Dict[str, List[str]]:
        """Retrieve all facts from the knowledge base."""
        return self.knowledge

    def query_fact(self, query: str) -> Optional[List[str]]:
        """Query for a specific fact in the knowledge base."""
        return self.knowledge.get(query)


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

    def infer_new_fact(self, premise1: str, premise2: str) -> None:
        """
        Infer a new fact from two premises using logical reasoning.
        
        :param premise1: First premise for inference
        :param premise2: Second premise for inference
        """
        if self.kb.query_fact(premise1) and self.kb.query_fact(premise2):
            inferred_fact = f"{premise1} AND {premise2}"
            self.kb.add_fact(inferred_fact)

    def solve_problem(self, problem: str) -> Optional[str]:
        """
        Solve a given problem by inferring new facts.
        
        :param problem: A string representing the problem to be solved
        :return: The inferred fact or None if no inference can be made
        """
        premises = [p.strip() for p in problem.split(" AND ")]
        if len(premises) == 2:
            self.infer_new_fact(*premises)
            return next(iter(self.kb.get_facts().values()), None)[0]
        return None


# Example Usage
if __name__ == "__main__":
    kb = KnowledgeBase()
    kb.add_fact("All birds can fly")
    kb.add_fact("Penguins are birds")

    reasoning_engine = ReasoningEngine(knowledge_base=kb)
    problem = "Penguins CAN FLY AND All birds can fly"
    
    result = reasoning_engine.solve_problem(problem)
    print(f"Inferred Fact: {result}")
```

This code defines a basic `ReasoningEngine` class that uses a `KnowledgeBase` to infer new facts based on existing premises. The example usage demonstrates how to use the engine to solve a simple logical inference problem.