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) *) (************************************************************************) Set Implicit Arguments. Definition ifdec (A B:Prop) (C:Type) (H:{A} + {B}) (x y:C) : C := if H then x else y.forall (A B : Prop) (C : Set) (H : {A} + {B}), ~ B -> forall x y : C, ifdec H x y = xforall (A B : Prop) (C : Set) (H : {A} + {B}), ~ B -> forall x y : C, ifdec H x y = xintro; absurd B; trivial. Qed.A, B:PropC:SetH:{A} + {B}H0:~ Bx, y:Cforall b : B, ifdec (right b) x y = xforall (A B : Prop) (C : Set) (H : {A} + {B}), ~ A -> forall x y : C, ifdec H x y = yforall (A B : Prop) (C : Set) (H : {A} + {B}), ~ A -> forall x y : C, ifdec H x y = yintro; absurd A; trivial. Qed. Unset Implicit Arguments.A, B:PropC:SetH:{A} + {B}H0:~ Ax, y:Cforall a : A, ifdec (left a) x y = y