Built with Alectryon, running Coq+SerAPI v8.10.0+0.7.0. Coq sources are in this panel; goals and messages will appear in the other. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑ Ctrl+↓ to navigate, Ctrl+🖱️ to focus.
(************************************************************************) (* * The Coq Proof Assistant / The Coq Development Team *) (* v * INRIA, CNRS and contributors - Copyright 1999-2018 *) (* <O___,, * (see CREDITS file for the list of authors) *) (* \VV/ **************************************************************) (* // * This file is distributed under the terms of the *) (* * GNU Lesser General Public License Version 2.1 *) (* * (see LICENSE file for the text of the license) *) (************************************************************************) Require Import Arith. Require Import Bool. Local Open Scope nat_scope. Definition zerob (n:nat) : bool := match n with | O => true | S _ => false end.forall n : nat, n = 0 -> zerob n = truedestruct n; [ trivial with bool | inversion 1 ]. Qed. Hint Resolve zerob_true_intro: bool.forall n : nat, n = 0 -> zerob n = trueforall n : nat, zerob n = true -> n = 0destruct n; [ trivial with bool | inversion 1 ]. Qed.forall n : nat, zerob n = true -> n = 0forall n : nat, n <> 0 -> zerob n = falsedestruct n; [ destruct 1; auto with bool | trivial with bool ]. Qed. Hint Resolve zerob_false_intro: bool.forall n : nat, n <> 0 -> zerob n = falseforall n : nat, zerob n = false -> n <> 0destruct n; [ inversion 1 | auto with bool ]. Qed.forall n : nat, zerob n = false -> n <> 0