"""Create fact_checker
Generated by Phi-Octopus Eden
2025-11-06 18:24:38.290969
"""

```python
from typing import List, Tuple
from functools import lru_cache

class FactChecker:
    """
    A simple fact checking tool that verifies if a statement is true or false based on predefined knowledge.
    
    This class uses limited reasoning sophistication to verify facts by caching results for efficiency and
    preventing infinite loops in recursive checks.
    """

    def __init__(self, knowledge_base: List[Tuple[str, bool]]):
        """
        Initialize the FactChecker with a knowledge base containing statements and their truth values.

        :param knowledge_base: A list of tuples where each tuple contains a statement (str) and its boolean value (True or False)
        """
        self.knowledge_base = {statement: truth_value for statement, truth_value in knowledge_base}

    @lru_cache(maxsize=None)
    def check_fact(self, fact: str) -> bool:
        """
        Check if the given fact is true based on the current knowledge base.

        :param fact: The statement to verify
        :return: True if the fact is true according to the knowledge base, False otherwise
        """
        return self.knowledge_base.get(fact, None)

    def add_fact(self, fact: str, truth_value: bool) -> None:
        """
        Add or update a fact in the knowledge base.

        :param fact: The statement to be added or updated
        :param truth_value: The boolean value associated with the statement
        """
        self.knowledge_base[fact] = truth_value

    def remove_fact(self, fact: str) -> None:
        """
        Remove a fact from the knowledge base if it exists.

        :param fact: The statement to be removed
        """
        if fact in self.knowledge_base:
            del self.knowledge_base[fact]


# Example usage:
if __name__ == "__main__":
    # Initialize FactChecker with some predefined facts
    checker = FactChecker([
        ("It is raining.", False),
        ("The sky is blue.", True)
    ])

    print(checker.check_fact("It is raining."))  # Output: False

    # Add a new fact and check it again
    checker.add_fact("I have eaten breakfast.", True)
    print(checker.check_fact("I have eaten breakfast."))  # Output: True

    # Remove the added fact and check its truth value
    checker.remove_fact("I have eaten breakfast.")
    print(checker.check_fact("I have eaten breakfast."))  # Output: None (fact not found)

```