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 ¬ P, introduce P.
If the goal is x ≠ y, introduce x = y.
Otherwise, for a goal P, replace it with ¬ ¬ P and introduce ¬ P.
Changes the goal to False, retaining as much information as possible:
If the goal is False, do nothing.
If the goal is ¬ P, introduce P.
If the goal is x ≠ y, introduce x = y.
Otherwise, for a propositional goal P, replace it with ¬ ¬ P and introduce ¬ P.
For a non-propositional goal use False.elim.
Equations
- false_or_by_contra = Lean.ParserDescr.node `false_or_by_contra 1024 (Lean.ParserDescr.nonReservedSymbol "false_or_by_contra" false)
Instances For
Changes the goal to False, retaining as much information as possible:
If the goal is False, do nothing.
If the goal is ¬ P, introduce P.
If the goal is x ≠ y, introduce x = y.
Otherwise, for a propositional goal P, replace it with ¬ ¬ P and introduce ¬ P.
For a non-propositional goal use False.elim.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Changes the goal to False, retaining as much information as possible:
If the goal is False, do nothing.
If the goal is ¬ P, introduce P.
If the goal is x ≠ y, introduce x = y.
Otherwise, for a propositional goal P, replace it with ¬ ¬ P and introduce ¬ P.
For a non-propositional goal use False.elim.
Equations
- tacticFalse_or_by_contra = Lean.ParserDescr.node `tacticFalse_or_by_contra 1024 (Lean.ParserDescr.nonReservedSymbol "false_or_by_contra" false)