"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-07 22:03:51.835956
"""

```python
from typing import List, Dict

class KnowledgeBase:
    def __init__(self):
        self.facts = {}
    
    def add_fact(self, fact: str) -> None:
        """Add a new fact to the knowledge base."""
        if fact not in self.facts:
            self.facts[fact] = True
    
    def query_fact(self, fact: str) -> bool:
        """Check if a fact is known by the system."""
        return fact in self.facts

class ReasoningEngine:
    def __init__(self):
        self.knowledge_base = KnowledgeBase()
    
    def add_knowledge(self, facts: List[str]) -> None:
        """Add multiple facts to the knowledge base."""
        for fact in facts:
            self.knowledge_base.add_fact(fact)
    
    def infer(self, premise: str) -> bool:
        """
        Infer a conclusion based on provided premises.
        
        :param premise: A string representing the logical premise
        :return: True if the conclusion can be inferred, False otherwise
        """
        # Simple rule: If "A and B" is in facts, then "B" should also be present
        if 'and' in premise:
            parts = premise.split(' and ')
            for part in parts:
                if not self.knowledge_base.query_fact(part):
                    return False
            return True
        # Default case: Check if the premise itself is a fact
        return self.knowledge_base.query_fact(premise)

# Example usage
if __name__ == "__main__":
    engine = ReasoningEngine()
    engine.add_knowledge(["A", "B and C"])
    
    print(engine.infer("B"))  # True
    print(engine.infer("C"))  # False, because only "B and C" is in the knowledge base
    print(engine.infer("A and B"))  # True
```