"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-08 16:52:49.600178
"""

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

    def add_rule(self, rule: Dict[str, List[str]]) -> None:
        """
        Adds a new rule to the reasoning engine. Rules are stored as dictionaries
        mapping a premise to a list of conclusions.

        :param rule: A dictionary where keys are premises and values are lists of conclusions.
        """
        for premise, conclusions in rule.items():
            if premise not in self.knowledge:
                self.knowledge[premise] = []
            for conclusion in conclusions:
                if conclusion not in self.knowledge:
                    self.knowledge[conclusion] = []

    def infer(self) -> List[str]:
        """
        Performs inference to find new facts that can be derived from the current knowledge base.

        :return: A list of inferred facts.
        """
        inferred_facts = []
        for premise, conclusions in self.knowledge.items():
            if len(conclusions) == 0 and premise not in inferred_facts:
                inferred_facts.append(premise)
        return inferred_facts

def create_reasoning_engine() -> KnowledgeBase:
    """
    Creates a reasoning engine by initializing the knowledge base.

    :return: A new instance of KnowledgeBase.
    """
    reasoning_engine = KnowledgeBase()
    
    # Adding some initial facts
    reasoning_engine.add_fact("A")
    reasoning_engine.add_fact("B")
    
    # Defining rules
    reasoning_engine.add_rule({"A": ["C", "D"]})
    reasoning_engine.add_rule({"B": ["E", "F"]})
    
    return reasoning_engine

# Example usage
if __name__ == "__main__":
    engine = create_reasoning_engine()
    print("Initial Facts:", engine.knowledge)
    inferred_facts = engine.infer()
    print("Inferred Facts:", inferred_facts)
```

This code defines a basic knowledge base and a function to create a reasoning engine that can infer new facts from the given rules and facts. The example usage demonstrates adding initial facts and rules, followed by inferring new facts based on these inputs.