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)         *)
(************************************************************************)
Author: Bruno Barras
Require Import Relation_Definitions.
Require Import Relation_Operators.

Section Wf_Transitive_Closure.
  Variable A : Type.
  Variable R : relation A.

  Notation trans_clos := (clos_trans A R).

  
A:Type
R:relation A

inclusion A R trans_clos
red; auto with sets. Qed.
A:Type
R:relation A

forall x : A, Acc R x -> Acc trans_clos x
A:Type
R:relation A
x0:A
H1:forall y : A, R y x0 -> Acc trans_clos y

Acc trans_clos x0
A:Type
R:relation A
x0:A
H1:forall y : A, R y x0 -> Acc trans_clos y

forall y : A, trans_clos y x0 -> Acc trans_clos y
A:Type
R:relation A
x0:A
H1:forall y0 : A, R y0 x0 -> Acc trans_clos y0
y:A
H2:trans_clos y x0

Acc trans_clos y
A:Type
R:relation A
z:A
H1:forall y0 : A, R y0 z -> Acc trans_clos y0
x, y:A
H2_:trans_clos x y
H2_0:trans_clos y z
IHclos_trans1:(forall y0 : A, R y0 y -> Acc trans_clos y0) -> Acc trans_clos x
IHclos_trans2:(forall y0 : A, R y0 z -> Acc trans_clos y0) -> Acc trans_clos y

Acc trans_clos x
apply Acc_inv with y; auto with sets. Defined. Hint Resolve Acc_clos_trans : core.
A:Type
R:relation A

forall x y : A, trans_clos y x -> Acc R x -> Acc R y
A:Type
R:relation A

forall x y : A, trans_clos y x -> Acc R x -> Acc R y
A:Type
R:relation A
x, y:A
H:R x y

Acc R y -> Acc R x
intro; apply Acc_inv with y; assumption. Qed.
A:Type
R:relation A

well_founded R -> well_founded trans_clos
A:Type
R:relation A

well_founded R -> well_founded trans_clos
unfold well_founded; auto with sets. Defined. End Wf_Transitive_Closure.