1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 (* ********************************************************************** *)
16 (* Progetto FreeScale *)
18 (* Sviluppato da: Ing. Cosimo Oliboni, oliboni@cs.unibo.it *)
19 (* Sviluppo: 2008-2010 *)
21 (* ********************************************************************** *)
23 include "common/hints_declaration.ma".
24 include "num/bool.ma".
26 alias symbol "hint_decl" (instance 1) = "hint_decl_Type1".
28 nrecord comparable : Type[1] ≝
32 forallc : (carr → bool) → bool;
33 eqc : carr → carr → bool;
34 eqc_to_eq : ∀x,y.(eqc x y = true) → (x = y);
35 eq_to_eqc : ∀x,y.(x = y) → (eqc x y = true);
36 neqc_to_neq : ∀x,y.(eqc x y = false) → (x ≠ y);
37 neq_to_neqc : ∀x,y.(x ≠ y) → (eqc x y = false);
38 decidable_c : ∀x,y:carr.decidable (x = y);
39 symmetric_eqc : symmetricT carr bool eqc