Angesichts der folgenden Definition der Negation von und mit drei Argumente, kann ich verschiedene Fälle leicht beweisen, aber ich möchte diesen Beweis in einer einzigen Aussage irgendwie schreiben mit Coq. Forall b1 b2 b3: bool eine von ihnen ist falsch zurück wahr und alle drei wahr ist false zurück. Wie schreibe ich diese Prämisse in Coq, damit ich Taktiken wie Split verwenden kann, um die Konjunktion aufzulösen?Coq-Syntax für Theorem über Fälle der Negation von und mit drei Argumenten
Definition negb (b:bool) : bool :=
match b with
| true => false
| false => true
end.
Definition andb3 (b1:bool) (b2:bool) (b3:bool) : bool :=
match b1 with
| true =>
match b2 with
| true => b3
| false => false
end
| false => false
end.
Definition nandb3 (b1:bool)(b2:bool)(b3:bool):bool :=
negb (andb3 b1 b2 b3).
Example nandb1: (nandb3 true false true) = true.
Proof. reflexivity. Qed.
Example nandb2: (nandb3 false true true) = true.
Proof. reflexivity. Qed.