"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-06 16:49:21.594772
"""

```python
from typing import List, Dict


class ReasoningEngine:
    """
    A simple reasoning engine that can handle basic rule-based decision making.
    """

    def __init__(self):
        self.rules = []

    def add_rule(self, condition: str, action: str) -> None:
        """
        Adds a new rule to the reasoning engine.

        :param condition: The condition for the rule as a string.
        :param action: The action to take if the condition is met as a string.
        """
        self.rules.append((condition, action))

    def reason(self, facts: Dict[str, bool]) -> None:
        """
        Evaluates all rules against the provided set of facts and performs actions
        for those rules that match.

        :param facts: A dictionary where keys are conditions (strings) and values are boolean indicating truth.
        """
        for condition, action in self.rules:
            if eval(condition, {}, facts):  # Evaluate condition with facts
                print(f"Action '{action}' triggered by rule '{condition}'")
                
    def __str__(self):
        return f"ReasoningEngine with {len(self.rules)} rules"


# Example usage
def main():
    engine = ReasoningEngine()
    engine.add_rule("facts['temperature'] > 30 and facts['humidity'] < 60", "turn_on_air_conditioner()")
    engine.add_rule("facts['temperature'] < 15 or facts['rainy']", "turn_on_heater()")
    
    # Simulate some facts
    facts = {
        'temperature': 28,
        'humidity': 59,
        'rainy': False
    }
    
    print(engine)
    engine.reason(facts)


if __name__ == "__main__":
    main()
```

This Python code defines a `ReasoningEngine` class that can add rules and reason based on given facts. It also includes an example usage in the `main` function.