"""Create fact_checker
Generated by Phi-Octopus Eden
2025-11-08 02:23:36.788264
"""

```python
from typing import List, Dict


class FactChecker:
    """
    A simple fact checker class that validates claims against a predefined knowledge base.
    """

    def __init__(self, knowledge_base: Dict[str, bool]):
        """
        Initialize the FactChecker with a knowledge base.

        :param knowledge_base: A dictionary mapping claims to their truth values (True/False).
        """
        self.knowledge_base = knowledge_base

    def validate_claim(self, claim: str) -> bool:
        """
        Validate if a given claim is true based on the knowledge base.

        :param claim: The claim string to be validated.
        :return: True if the claim is true according to the knowledge base, False otherwise.
        """
        return self.knowledge_base.get(claim.lower(), False)

    def check_statement(self, statement: str) -> bool:
        """
        Check a complex statement consisting of multiple claims separated by logical operators
        (and, or).

        :param statement: The statement to be checked. Claims are separated by 'and' or 'or'.
        :return: True if the entire statement is true according to the knowledge base, False otherwise.
        """
        tokens = statement.lower().replace(' ', '').split()
        claims = [token.strip() for token in tokens if token not in ['and', 'or']]
        operators = [tokens[i + 1] for i in range(len(tokens) - 2) if tokens[i + 1] in ['and', 'or']]

        def evaluate(sub_statement: str, op_stack: List[str]) -> bool:
            """
            Evaluate the truth value of a sub-statement.
            """
            values = [self.validate_claim(claim) for claim in sub_statement.split()]
            while op_stack:
                current_op = op_stack.pop()
                if current_op == 'and':
                    values[-1] = all(values)
                elif current_op == 'or':
                    values[-1] = any(values)
            return values[0]

        stack = []
        for i, token in enumerate(tokens):
            if token in ['and', 'or']:
                while operators and len(stack) > 1:
                    sub_statement = " ".join(stack[-2:])
                    result = evaluate(sub_statement, operators[:])
                    del stack[-2:]
                    stack.append(str(result))
                    operators.pop(0)
                stack.append(token)
            else:
                if i == len(tokens) - 1 or tokens[i + 1] not in ['and', 'or']:
                    stack.append(token)

        while operators and stack:
            sub_statement = " ".join(stack[-2:])
            result = evaluate(sub_statement, operators[:])
            del stack[-2:]
            stack.append(str(result))
            operators.pop(0)

        return bool(stack[0])


# Example usage
if __name__ == "__main__":
    knowledge_base = {
        "the earth is round": True,
        "the moon orbits the earth": False,
        "the sun is a star": True
    }

    fact_checker = FactChecker(knowledge_base)

    print(fact_checker.validate_claim("The Earth is Round"))  # Output: True

    statement_to_check = ("the earth is round and (the moon orbits the earth or" 
                          "the sun is a star)")
    print(fact_checker.check_statement(statement_to_check))  # Output: False
```

This Python script defines a `FactChecker` class capable of validating simple claims against a knowledge base, as well as checking complex statements involving multiple claims and logical operators. The example usage demonstrates how to create an instance of the `FactChecker` with a predefined knowledge base and validate both individual claims and more complex statements.