"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-06 06:32:08.748148
"""

```python
from typing import List, Dict


class ReasoningEngine:
    """
    A simple reasoning engine that can evaluate logical expressions based on given facts.
    """

    def __init__(self):
        self.facts: Dict[str, bool] = {}

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

        :param fact: A string representing the name of the fact (e.g., 'is_raining').
        :param value: The boolean value of the fact.
        """
        self.facts[fact] = value

    def evaluate_expression(self, expression: str) -> bool:
        """
        Evaluates a logical expression based on current facts.

        :param expression: A string representing a logical expression (e.g., 'is_raining and has_umbrella').
        :return: The boolean result of the evaluation.
        """
        return eval(expression, self.facts)


def example_usage() -> None:
    engine = ReasoningEngine()
    # Add some facts
    engine.add_fact('is_raining', True)
    engine.add_fact('has_umbrella', False)

    # Evaluate expressions based on these facts
    print(engine.evaluate_expression('is_raining and has_umbrella'))  # Should output: False
    print(engine.evaluate_expression('not is_raining or has_umbrella'))  # Should output: True


# Running the example usage to demonstrate functionality
example_usage()
```

This code defines a simple `ReasoningEngine` class capable of evaluating logical expressions based on provided facts. The `add_fact` method allows adding new facts, and the `evaluate_expression` method checks if an expression evaluates to true given those facts. The `example_usage` function demonstrates how to use this engine in practice.