"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-06 00:24:12.237666
"""

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

    def query_fact(self, fact: str) -> bool:
        """
        Checks whether a fact is known.

        :param fact: The fact to check.
        :return: True if the fact is known, False otherwise.
        """
        return fact in self.knowledge


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

    def reason_from_facts(self) -> Dict[str, List[str]]:
        """
        Infers new facts from the existing ones.

        :return: A dictionary mapping each inferred fact to its supporting evidence.
        """
        inferences = {}
        for fact in list(self.knowledge_base.knowledge):
            if self.knowledge_base.query_fact(fact + " is important"):
                inferences[fact + " must be true"] = [fact]
        return inferences

    def infer_and_store(self) -> None:
        """
        Uses reasoning to derive new facts and stores them in the knowledge base.
        """
        inferences = self.reason_from_facts()
        for inferred_fact, evidence in inferences.items():
            if not self.knowledge_base.query_fact(inferred_fact):
                print(f"Infering: {inferred_fact} from {evidence}")
                self.knowledge_base.add_fact(inferred_fact)


def example_usage() -> None:
    """
    Example usage of the reasoning engine to demonstrate its capabilities.
    """
    kb = KnowledgeBase()
    kb.add_fact("dog is a mammal")
    kb.add_fact("mammals are warm-blooded animals")
    kb.add_fact("dog is important")

    reasoner = ReasoningEngine(kb)
    reasoner.infer_and_store()

    print(reasoner.reason_from_facts())
    # Output should show that "dog must be true" has been inferred


# Execute the example usage
example_usage()
```