"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-08 20:07:17.985987
"""

```python
from typing import List, Tuple

class ReasoningEngine:
    """
    A basic reasoning engine that solves a specific problem involving limited reasoning sophistication.
    
    This class provides methods to infer conclusions from given premises and rules.
    """

    def __init__(self, premises: List[str], rules: List[Tuple[str, str]]):
        """
        Initialize the ReasoningEngine with premises and rules.

        :param premises: A list of strings representing initial facts or premises.
        :param rules: A list of tuples where each tuple contains two strings representing a rule.
                      The first string is the antecedent (if part) and the second is the consequent (then part).
        """
        self.premises = set(premises)
        self.rules = dict(rules)

    def apply_rules(self, new_fact: str) -> bool:
        """
        Apply rules to a new fact to infer further conclusions.
        
        :param new_fact: A string representing the new fact to be applied.
        :return: True if any conclusion is inferred, False otherwise.
        """
        for antecedent, consequent in self.rules.items():
            if antecedent in self.premises and new_fact == antecedent:
                self.premises.add(consequent)
                return True
        return False

    def infer_conclusions(self) -> List[str]:
        """
        Infer all possible conclusions from the current set of premises.
        
        :return: A list of strings representing inferred conclusions.
        """
        concluded = []
        for antecedent, consequent in self.rules.items():
            if antecedent in self.premises and consequent not in self.premises:
                concluded.append(consequent)
                self.premises.add(consequent)

        return concluded

# Example usage
if __name__ == "__main__":
    premises = ["All birds can fly", "Penguins are birds"]
    rules = [("All birds can fly", "Can fly"), ("Penguins are birds", "Are birds")]

    reasoning_engine = ReasoningEngine(premises, rules)
    
    print("Initial premises:", reasoning_engine.premises)

    # Apply a new fact
    new_fact = "Penguins are birds"
    if reasoning_engine.apply_rules(new_fact):
        print(f"Inferred: {new_fact} -> Can fly")

    # Infer conclusions
    inferred_conclusions = reasoning_engine.infer_conclusions()
    print("Inferred conclusions:", inferred_conclusions)
```