"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-07 06:38:41.678122
"""

```python
from typing import List, Tuple


class ReasoningEngine:
    """
    A simple reasoning engine capable of solving limited problems.
    """

    def __init__(self):
        self.knowledge_base = {}

    def add_knowledge(self, key: str, value: any) -> None:
        """
        Adds or updates a piece of knowledge in the knowledge base.

        :param key: The key to associate with the piece of information
        :param value: The value representing the piece of information
        """
        self.knowledge_base[key] = value

    def reason(self, statement: str) -> Tuple[str, any]:
        """
        Attempts to reason about a given statement based on the current knowledge base.

        :param statement: A string representation of the problem or question to be reasoned about.
        :return: A tuple containing the answer and the reasoning steps taken. If no answer is found,
                 returns ("No solution", None).
        """
        for key, value in self.knowledge_base.items():
            if key.lower() in statement.lower():  # Simple keyword matching
                return (f"Based on {key}, the answer is: {value}", value)
        
        return ("No solution", None)


# Example Usage:
if __name__ == "__main__":
    engine = ReasoningEngine()
    engine.add_knowledge("square root of 16", "4")
    engine.add_knowledge("double of 3", "6")

    print(engine.reason("What is the square root of 16?"))  # Should return a relevant answer
    print(engine.reason("Tell me about double of 3."))     # Should also return a relevant answer
    print(engine.reason("What's the value of pi?"))        # Should not find an exact match, but could be a fallback

```