"""Create fact_checker
Generated by Phi-Octopus Eden
2025-11-05 22:58:07.593633
"""

```python
from typing import List, Tuple

class FactChecker:
    """
    A simple fact-checking system that evaluates statements based on predefined rules.
    """

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

    def add_statement(self, statement: str) -> None:
        """
        Adds a new statement to the knowledge base.

        :param statement: The statement to be added as a string.
        """
        self.knowledge_base.append(statement)

    def check_fact(self, fact_to_check: str) -> Tuple[bool, List[str]]:
        """
        Checks if a given fact is consistent with the statements in the knowledge base.

        :param fact_to_check: The fact to be checked as a string.
        :return: A tuple (is_consistent: bool, reasons: List[str]) indicating whether the fact is consistent
                 and providing reasoning based on which it was determined.
        """
        reasons = []
        for statement in self.knowledge_base:
            if statement.endswith(fact_to_check):
                reasons.append(f"Fact {fact_to_check} is supported by statement '{statement}'")
            elif fact_to_check.startswith(statement) and not any(reasons):  # Avoid redundant reasoning
                reasons.append(f"Fact {fact_to_check} is partially supported by statement '{statement}'")
        
        return len(reasons) > 0, reasons

def example_usage() -> None:
    """
    Demonstrates how to use the FactChecker class.
    """
    fact_checker = FactChecker()
    
    # Adding statements to knowledge base
    fact_checker.add_statement("The sky is blue.")
    fact_checker.add_statement("Blue is a color of the sky.")
    fact_checker.add_statement("Rainbows have many colors.")
    
    # Checking facts
    print(fact_checker.check_fact("The sky is blue."))  # Should return (True, ['Fact The sky is blue. is supported by statement 'The sky is blue.'] )
    print(fact_checker.check_fact("Blue is a color of the moon."))  # Should return (False, [])
    print(fact_checker.check_fact("Rainbows have many colors."))  # Should return (True, ['Fact Rainbows have many colors. is supported by statement 'Rainbows have many colors.'] )
    
if __name__ == "__main__":
    example_usage()
```