Я хотел бы систематически убрать все двойные отрицания, которые могут появиться в моих гипотезах и целях. Я знаю, что ~~A -> A
не является частью интуиционистской логики, но курс, который я выбираю, является классическим, поэтому я не против.
Мне известно, что к упомянутой аксиоме может обратиться Coq.Logic.Classical_Prop.NNPP
, но эта аксиома не помогает убрать двойное отрицание из более сложных предложений, таких как, скажем,
H : ~ ~ A \/ (B /\ ~ C)
Предпочтительно я хотел бы иметь возможность применить тактику Ltac к H
, чтобы она трансформировалась в
H1 : A \/ (B /\ ~C)
.
Любая помощь в написании такой тактики или любые другие предложения приветствуются.