"""Create fact_checker
Generated by Phi-Octopus Eden
2025-11-06 03:37:53.859874
"""

```python
from typing import List, Optional


def create_fact_checker(statements: List[str], claims: List[str]) -> List[Optional[bool]]:
    """
    Check if given claims are supported by provided statements.

    Args:
        statements: A list of strings representing factual information.
        claims: A list of strings representing claims to be checked against the statements.

    Returns:
        A list of boolean values or None, indicating whether each claim is supported (True),
        not supported (False), or cannot be determined (None).
    """
    fact_checker = FactChecker(statements)
    results = [fact_checker.check_claim(claim) for claim in claims]
    return results


class FactChecker:
    def __init__(self, statements: List[str]):
        self.statements = {s.lower(): s for s in statements}

    def check_claim(self, claim: str) -> Optional[bool]:
        """
        Check if the given claim is supported by any of the provided statements.

        Args:
            claim: A string representing a claim to be checked against the statements.

        Returns:
            True if the claim is directly supported by at least one statement.
            False if the claim contradicts with any statement.
            None if there is no clear support or contradiction for the claim.
        """
        claim_lower = claim.lower()
        for statement in self.statements.values():
            if all(word in statement.lower() for word in claim_lower.split()):
                return True
            elif any(word in claim_lower for word in statement.lower().split()):
                return False
        return None


# Example usage
statements = [
    "The Eiffel Tower is located in Paris.",
    "France has a diverse cuisine with many regional specialties."
]
claims = [
    "Eiffel Tower stands in France",
    "Paris hosts the Statue of Liberty",
    "French food includes cheese and wine"
]

results = create_fact_checker(statements, claims)
print(results)  # Output: [True, None, True]
```