(* Contribution to the Coq Library   V6.3 (July 1999)                    *)

(****************************************************************************)
(*                 The Calculus of Inductive Constructions                  *)
(*                                                                          *)
(*                                Projet Coq                                *)
(*                                                                          *)
(*                     INRIA                        ENS-CNRS                *)
(*              Rocquencourt                        Lyon                    *)
(*                                                                          *)
(*                                Coq V5.10                                 *)
(*                              Nov 25th 1994                               *)
(*                                                                          *)
(****************************************************************************)
(*                                Sorting.v                                 *)
(****************************************************************************)

(* These sorting examples have first been compiled by P. Manoury using the  *)
(* ProPre tool to build recursive functions by cases                        *)

(* == Quelques fonctions utiles == *)

(* Inductive Set bool := true : bool | false : bool. *)

Definition si (X : Set) (b : bool) (x y : X) :=
  match b with
  | true => x
  | _ => y
  end.

(* Specifications: *)
Lemma si_eq1 : forall (X : Set) (x y : X), si X true x y = x.
Lemma si_eq2 : forall (X : Set) (x y : X), si X false x y = y.