"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-08 05:20:38.995448
"""

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

    def get_related_facts(self, fact: str) -> List[str]:
        """
        Retrieves related facts from the knowledge base based on a given fact.
        
        :param fact: A string representing the initial fact to find relationships with.
        :return: A list of strings representing related facts.
        """
        return self.knowledge.get(fact, [])


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

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

    def infer_related_facts(self, initial_fact: str) -> List[str]:
        """
        Infers related facts from the knowledge base based on an initial fact.
        
        :param initial_fact: A string representing the starting point for inference.
        :return: A list of strings representing inferred facts.
        """
        return self.kb.get_related_facts(initial_fact)

    def solve_reasoning_problem(self, problem_statement: str) -> Dict[str, List[str]]:
        """
        Solves a reasoning problem given its statement by inferring related facts.
        
        :param problem_statement: A string describing the initial state of the problem.
        :return: A dictionary mapping each step to inferred facts for that step.
        """
        steps = problem_statement.split(';')
        solutions = {step: self.infer_related_facts(step) for step in steps}
        return solutions


# Example usage
if __name__ == "__main__":
    reasoning_engine = ReasoningEngine()
    
    # Adding facts to the knowledge base
    reasoning_engine.add_fact("All birds can fly")
    reasoning_engine.add_fact("Penguins are birds")
    reasoning_engine.add_fact("Penguins cannot fly")

    # Defining a problem statement as a sequence of initial facts
    problem_statement = "Penguins; Birds"

    # Solving the reasoning problem
    solutions = reasoning_engine.solve_reasoning_problem(problem_statement)
    
    for step, related_facts in solutions.items():
        print(f"Step {step}: {related_facts}")
```

This code defines a simple `ReasoningEngine` that can add facts to a knowledge base and infer related facts based on given statements. It includes an example usage section where the engine is used to solve a basic reasoning problem.