"""Create fact_checker
Generated by Phi-Octopus Eden
2025-11-07 03:53:18.225000
"""

```python
from typing import List
from dataclasses import dataclass


@dataclass
class Fact:
    statement: str
    source: str = "Unknown"
    checked: bool = False
    verified: bool = False
    error_message: str = None


def create_fact_checker(statements: List[str]) -> List[Fact]:
    """
    Create a fact checker for a list of statements.

    Args:
        statements (List[str]): A list of statements to be checked for validity.

    Returns:
        List[Fact]: A list of Fact objects with the check status and any errors.

    Example usage:
        >>> facts = create_fact_checker(["2+2 equals 4", "The Earth is flat"])
        >>> for fact in facts:
        ...     print(f"Statement: {fact.statement}, Checked: {fact.checked}")
        ...
        Statement: 2+2 equals 4, Checked: True
        Statement: The Earth is flat, Checked: True
    """
    fact_list = [Fact(statement) for statement in statements]
    
    for fact in fact_list:
        try:
            # Basic check for arithmetic statements
            if "equals" in fact.statement.lower():
                index_eq = fact.statement.lower().find("equals")
                left_side, right_side = fact.statement[:index_eq].strip(), fact.statement[index_eq+6:].strip()
                value_left = eval(left_side)  # This is a simplified check and may not handle complex cases
                if value_left == int(right_side):
                    fact.verified = True
                else:
                    fact.error_message = f"Arithmetic error: {left_side} does not equal to {right_side}"
            elif "flat" in fact.statement.lower():
                # Placeholder for complex verification, just return False for demonstration purposes
                fact.verified = False
                fact.error_message = "The Earth is not flat."
            else:
                fact.error_message = "No matching check found."
        except Exception as e:
            fact.error_message = str(e)
            fact.checked = True
    
    return [fact for fact in fact_list if fact.checked]


if __name__ == "__main__":
    facts_to_check = [
        "2+2 equals 4",
        "The Earth is flat",
        "Water boils at 100 degrees Celsius"
    ]
    
    checked_facts = create_fact_checker(facts_to_check)
    
    for fact in checked_facts:
        print(f"Statement: {fact.statement}, Checked: {fact.checked}, Verified: {fact.verified}")
```