"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-08 08:30:08.782113
"""

```python
from typing import List, Tuple

class KnowledgeBase:
    def __init__(self):
        self.knowledge = []

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

    def get_facts(self) -> List[str]:
        """Get all facts in the knowledge base."""
        return self.knowledge


class ReasoningEngine:
    """
    A simple reasoning engine that evaluates if a query is supported by the knowledge base.
    """

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

    def evaluate_query(self, query: str) -> Tuple[bool, List[str]]:
        """
        Evaluate whether a given query can be answered based on current facts.

        :param query: The question to answer.
        :return: A tuple where the first element is True if the query can be answered,
                 and the second element contains supporting facts or an explanation of why not.
        """
        response = []
        for fact in self.knowledge_base.get_facts():
            if fact.lower() in query.lower():
                response.append(fact)
        
        return len(response) > 0, response


# Example usage
if __name__ == "__main__":
    kb = KnowledgeBase()
    kb.add_fact("The sky is blue.")
    kb.add_fact("Water boils at 100 degrees Celsius.")

    engine = ReasoningEngine(knowledge_base=kb)

    # Query that can be answered by the knowledge base
    answer, facts = engine.evaluate_query("Is the sky blue?")
    print(f"Can answer: {answer}")
    for fact in facts:
        print(f"Fact used: {fact}")

    # Query that cannot be directly answered
    answer, reasons = engine.evaluate_query("What is the boiling point of water?")
    if not answer:
        print(reasons)
```