false_or_by_contra tactic #
Changes the goal to False, retaining as much information as possible:
- If the goal is False, do nothing.
- If the goal is an implication or a function type, introduce the argument and restart.
(In particular, if the goal is x ≠ y, introducex = y.)
- Otherwise, for a propositional goal P, replace it with¬ ¬ P(attempting to find aDecidableinstance, but otherwise falling back to working classically) and introduce¬ P.
- For a non-propositional goal use False.elim.
Changes the goal to False, retaining as much information as possible:
- If the goal is False, do nothing.
- If the goal is an implication or a function type, introduce the argument and restart.
(In particular, if the goal is x ≠ y, introducex = y.)
- Otherwise, for a propositional goal P, replace it with¬ ¬ P(attempting to find aDecidableinstance, but otherwise falling back to working classically) and introduce¬ P.
- For a non-propositional goal use False.elim.
Equations
- One or more equations did not get rendered due to their size.