open Preamble open Hints_declaration open Core_notation open Pts open Logic type 'x predicate = __ type 'x relation = __ type ('x0, 'x) relation2 = __ type ('x1, 'x0, 'x) relation3 = __ (** val compose : ('a2 -> 'a3) -> ('a1 -> 'a2) -> 'a1 -> 'a3 **) let compose f g x = f (g x) type ('x0, 'x) bi_relation = __