PropLogic.IntroElim
(*
CoMoEx - IntroElim
Copyright (C) 2024 Max Ole Elliger
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*)
Require Classical_Prop.
CoMoEx - IntroElim
Copyright (C) 2024 Max Ole Elliger
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*)
Require Classical_Prop.
Falsum
Einführung
Print "~ _".
Dies geht übrigens in einem Beweis auch direkt mittels
unfold "~ _"..
Wie geht man etwas kleinschrittiger vor?
Für die Negations-Eliminierungsregel benötigen wir klassische Logik:
In späteren Files werden wir häufig direkt zu Beginn
Require Import Classical_Prop. schreiben.
Dadurch können wir axiomatisch NNPP annehmen:
Durch den folgenden Befehl können wir sogar die Notwendigkeit von
klassischer Logik sichtbar machen!
Der Beweis unserer Negations-Elimierungsregel ist jetzt nur noch
eine Anwendung von NNPP.
Ok, wir wollen r zeigen und wissen,
dass zumindest p oder q gilt.
Wenn wir jetzt also sowohl aus p als auch aus q
unser Ziel r herleiten können,
können wir auch aus p \/ q r herleiten.
Hypothesis A1 : p -> r.
Hypothesis A2 : q -> r.
Hypothesis A3 : p \/ q.
Theorem or_E : r.
Proof.
Admitted.
End or_3.
Print "<->".
Hypothesis A1 : p -> q.
Hypothesis A2 : q -> p.
Theorem iff_I : p <-> q.
Proof.
Admitted.
End iff_1.