(************************************************************************)
(*         *      The Rocq Prover / The Rocq Development Team           *)
(*  v      *         Copyright INRIA, CNRS and contributors             *)
(* <O___,, * (see version control and CREDITS file for authors & dates) *)
(*   \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 Export Stdlib.funind.FunInd.
Require Compare_dec.
Require Wf_nat.
Section Iter.
Variable A : Type.
Fixpoint iter (n : nat) : (A -> A) -> A -> A :=
fun (fl : A -> A) (def : A) =>
match n with
| O => def
| S m => fl (iter m fl def)
end.
End Iter.

(* Specifications: *)
Theorem le_lt_SS x y : x <= y -> x < S (S y).
Theorem Splus_lt x y : y < S (x + y).
Theorem SSplus_lt x y : x < S (S (x + y)).
Inductive max_type (m n:nat) : Set :=
cmt : forall v, m <= v -> n <= v -> max_type m n.