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)         *)
(************************************************************************)
Equality is decidable on nat
Local Open Scope nat_scope.

Notation not_eq_sym := not_eq_sym (only parsing).

Implicit Types m n p q : nat.

Require Import Arith_base.
Require Import Peano_dec.
Require Import Compare_dec.

Definition le_or_le_S := le_le_S_dec.

Definition Pcompare := gt_eq_gt_dec.


forall n m : nat, {n <= m} + {m <= n}
Proof le_ge_dec. Definition lt_or_eq n m := {m > n} + {n = m}.

forall n m : nat, n <= m -> lt_or_eq n m
Proof le_lt_eq_dec.

forall n m : nat, n <= m -> S n <= m \/ n = m
Proof le_lt_or_eq. (* By special request of G. Kahn - Used in Group Theory *)

forall n m : nat, n < m -> S n = m \/ (exists r : nat, m = S (S (n + r)))

forall n m : nat, n < m -> S n = m \/ (exists r : nat, m = S (S (n + r)))
m, n:nat
H:m < n

S m = n \/ (exists r : nat, n = S (S (m + r)))
m, n:nat
H:m < n

S m <= n -> S m = n \/ (exists r : nat, n = S (S (m + r)))
m, n:nat
H:m < n
H':S m <= n

S m < n \/ S m = n -> S m = n \/ (exists r : nat, n = S (S (m + r)))
m, n:nat
H:m < n
H':S m <= n
H0:S m < n

S m = n \/ (exists r : nat, n = S (S (m + r)))
m, n:nat
H:m < n
H':S m <= n
H0:S m < n

n = S (S (m + (n - S (S m))))
m, n:nat
H:m < n
H':S m <= n
H0:S m < n

n = S (S (n - S (S m) + m))
m, n:nat
H:m < n
H':S m <= n
H0:S m < n

n = S (n - S (S m) + S m)
m, n:nat
H:m < n
H':S m <= n
H0:S m < n

n = n - S (S m) + S (S m)
rewrite (plus_comm (n - S (S m)) (S (S m))); auto with arith. Qed. Require Export Wf_nat. Require Export Min Max.