"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-08 03:25:22.832222
"""

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

class ReasoningEngine:
    """
    A simple reasoning engine designed to solve problems with limited reasoning sophistication.
    """

    def __init__(self):
        self.knowledge_base: Dict[str, List] = {}
        self.reasoning_steps: Set[str] = set()

    def add_knowledge(self, fact: str, related_facts: List[str]):
        """
        Adds a new fact and its related facts to the knowledge base.

        :param fact: The main fact to be added.
        :param related_facts: A list of related facts that support or are supported by the main fact.
        """
        if fact not in self.knowledge_base:
            self.knowledge_base[fact] = []
        for rf in related_facts:
            self.knowledge_base.get(fact, []).append(rf)
            self.knowledge_base.setdefault(rf, []).append(fact)

    def reason(self, initial_fact: str) -> List[str]:
        """
        Performs reasoning to deduce new facts based on the given initial fact.

        :param initial_fact: The starting point for the reasoning process.
        :return: A list of newly inferred facts.
        """
        self.reasoning_steps.add(initial_fact)
        inferred_facts = []
        for related in self.knowledge_base.get(initial_fact, []):
            if related not in self.reasoning_steps:
                self.reasoning_steps.add(related)
                inferred_facts.append(related)
                inferred_facts.extend(self.reason(related))
        
        return inferred_facts

# Example usage
if __name__ == "__main__":
    engine = ReasoningEngine()
    
    # Adding some initial facts and their related facts
    engine.add_knowledge("A", ["B", "C"])
    engine.add_knowledge("B", ["D"])
    engine.add_knowledge("C", [])
    engine.add_knowledge("D", [])

    # Performing reasoning from fact A
    inferred_facts = engine.reason("A")
    
    print(f"Inferred facts: {inferred_facts}")
```

This example demonstrates a simple reasoning engine that can add facts and their relationships, and then use those to infer new related facts.