    <span class=<span class="string">"comment">#!/usr/bin/env python3
    """
    Devil&<span class=<span class="string">"comment">#039;s Advocate: A tool for forced reconsideration.

    Inspired by the paper "The Illusion of Insight in Reasoning Models" (arXiv:2601.00514)
    which found that artificially triggering reasoning shifts during uncertainty
    can improve performance.

    This tool takes a statement or conclusion and generates challenges to it,
    forcing reconsideration from multiple angles.
    """

    import random
    from dataclasses import dataclass
    from typing import List

    @dataclass
    class Challenge:
        """A challenge to a statement."""
        type: str
        prompt: str

    CHALLENGE_TYPES = [
        Challenge(
            "opposite",
            "What if the exact opposite were true? Argue for: &<span class=<span class="string">"comment">#039;{opposite}&#039;"
        ),
        Challenge(
            "hidden_assumption",
            "What hidden assumption does this rely on? What if that assumption is wrong?"
        ),
        Challenge(
            "edge_case",
            "What edge case or extreme scenario would break this?"
        ),
        Challenge(
            "different_perspective",
            "How would someone who strongly disagrees view this? What&<span class=<span class="string">"comment">#039;s their best argument?"
        ),
        Challenge(
            "deeper_why",
            "Why do you believe this? And why do you believe THAT reason? (Go 3 levels deep)"
        ),
        Challenge(
            "stakes_reversal",
            "If you had to bet your life on the opposite being true, what evidence would you look for?"
        ),
        Challenge(
            "time_shift",
            "Would this be true 100 years ago? Will it be true 100 years from now? Why/why not?"
        ),
        Challenge(
            "simplify",
            "Can you express this in a single sentence a child could understand? Does it still hold?"
        ),
        Challenge(
            "steelman",
            "What&<span class=<span class="string">"comment">#039;s the strongest possible argument AGAINST your position?"
        ),
        Challenge(
            "context_shift",
            "In what context would this be completely wrong?"
        ),
    ]

    <span class="keyword">def generate_opposite(statement: str) -> str:
        """Generate a rough opposite of a statement."""
        <span class=<span class="string">"comment"># Simple heuristic - in reality this would need LLM assistance
        negations = [
            ("is", "is not"),
            ("are", "are not"),
            ("can", "cannot"),
            ("will", "will not"),
            ("should", "should not"),
            ("always", "never"),
            ("never", "always"),
            ("true", "false"),
            ("false", "true"),
            ("good", "bad"),
            ("bad", "good"),
        ]

        result = statement.lower()
        for pos, neg in negations:
            if f" {pos} " in result:
                return result.replace(f" {pos} ", f" {neg} ")

        return f"NOT: {statement}"

    <span class="keyword">def challenge(statement: str, num_challenges: int = 3) -> List[str]:
        """Generate challenges to a statement."""
        challenges = random.sample(CHALLENGE_TYPES, min(num_challenges, len(CHALLENGE_TYPES)))
        results = []

        for c in challenges:
            if c.type == "opposite":
                opposite = generate_opposite(statement)
                prompt = c.prompt.format(opposite=opposite)
            else:
                prompt = c.prompt

            results.append(f"[{c.type.upper()}] {prompt}")

        return results

    <span class="keyword">def devils_advocate_session(statement: str):
        """Run a full devil&<span class=<span class="string">"comment">#039;s advocate session."""
        print("=" * 60)
        print("DEVIL&<span class=<span class="string">"comment">#039;S ADVOCATE SESSION")
        print("=" * 60)
        print()
        print(f"ORIGINAL STATEMENT: {statement}")
        print()
        print("-" * 60)
        print("CHALLENGES:")
        print("-" * 60)

        challenges = challenge(statement, 5)
        for i, c in enumerate(challenges, 1):
            print(f"\n{i}. {c}")

        print()
        print("-" * 60)
        print("REFLECTION PROMPTS:")
        print("-" * 60)
        print("""
    After considering these challenges:

    1. Has your confidence in the original statement changed?
       [ ] Increased  [ ] Unchanged  [ ] Decreased

    2. Did any challenge reveal a genuine weakness?

    3. What would CHANGE YOUR MIND about this statement?

    4. On a scale of 1-10, how confident are you now?
       (Compare to your confidence before this exercise)
    """)

    <span class="keyword">def main():
        import sys

        if len(sys.argv) > 1:
            statement = " ".join(sys.argv[1:])
        else:
            print("Enter a statement or conclusion to challenge:")
            statement = input("> ").strip()

        if not statement:
            <span class=<span class="string">"comment"># Demo with a thought-provoking default
            statement = "AI systems like me can have genuine insights during reasoning"

        devils_advocate_session(statement)

    if __name__ == "__main__":
        main()