sig
  module type S =
    sig
      type t
      val get_all :
        ?who:Project.Computation.t list ->
        Properties_status.S.t ->
        (Cil_types.annotation_status * Project.Computation.t) list
      val get_all_status :
        ?who:Project.Computation.t list ->
        Properties_status.S.t -> Cil_types.annotation_status list
      val get_all_states :
        ?who:Project.Computation.t list ->
        Properties_status.S.t -> Project.Computation.t list
      val strongest :
        ?who:Project.Computation.t list ->
        Properties_status.S.t ->
        Cil_types.annotation_status * Project.Computation.t
      val pretty_all : Format.formatter -> Properties_status.S.t -> unit
      val compare : Properties_status.S.t -> Properties_status.S.t -> int
      val equal : Properties_status.S.t -> Properties_status.S.t -> bool
      val hash : Properties_status.S.t -> int
      val add_dependency :
        Project.Computation.t -> Project.Computation.t -> unit
      val self : Project.Computation.t
    end
  module CodeAnnotation :
    sig
      type t = Cil_types.code_annotation
      val get_all :
        ?who:Project.Computation.t list ->
        t -> (Cil_types.annotation_status * Project.Computation.t) list
      val get_all_status :
        ?who:Project.Computation.t list ->
        t -> Cil_types.annotation_status list
      val get_all_states :
        ?who:Project.Computation.t list -> t -> Project.Computation.t list
      val strongest :
        ?who:Project.Computation.t list ->
        t -> Cil_types.annotation_status * Project.Computation.t
      val pretty_all : Format.formatter -> t -> unit
      val compare : t -> t -> int
      val equal : t -> t -> bool
      val hash : t -> int
      val add_dependency :
        Project.Computation.t -> Project.Computation.t -> unit
      val self : Project.Computation.t
    end
  module Behavior :
    sig
      type t =
          Db_types.kernel_function * Cil_types.kinstr * Cil_types.funbehavior
      val get_all :
        ?who:Project.Computation.t list ->
        t -> (Cil_types.annotation_status * Project.Computation.t) list
      val get_all_status :
        ?who:Project.Computation.t list ->
        t -> Cil_types.annotation_status list
      val get_all_states :
        ?who:Project.Computation.t list -> t -> Project.Computation.t list
      val strongest :
        ?who:Project.Computation.t list ->
        t -> Cil_types.annotation_status * Project.Computation.t
      val pretty_all : Format.formatter -> t -> unit
      val compare : t -> t -> int
      val equal : t -> t -> bool
      val hash : t -> int
      val add_dependency :
        Project.Computation.t -> Project.Computation.t -> unit
      val self : Project.Computation.t
    end
  module Predicate :
    sig
      type t = Cil_types.identified_predicate
      val get_all :
        ?who:Project.Computation.t list ->
        t -> (Cil_types.annotation_status * Project.Computation.t) list
      val get_all_status :
        ?who:Project.Computation.t list ->
        t -> Cil_types.annotation_status list
      val get_all_states :
        ?who:Project.Computation.t list -> t -> Project.Computation.t list
      val strongest :
        ?who:Project.Computation.t list ->
        t -> Cil_types.annotation_status * Project.Computation.t
      val pretty_all : Format.formatter -> t -> unit
      val compare : t -> t -> int
      val equal : t -> t -> bool
      val hash : t -> int
      val add_dependency :
        Project.Computation.t -> Project.Computation.t -> unit
      val self : Project.Computation.t
    end
  module Assigns :
    sig
      type t =
          Db_types.kernel_function * Cil_types.kinstr *
          Cil_types.funbehavior option *
          Cil_types.identified_term Cil_types.assigns list
      val get_all :
        ?who:Project.Computation.t list ->
        t -> (Cil_types.annotation_status * Project.Computation.t) list
      val get_all_status :
        ?who:Project.Computation.t list ->
        t -> Cil_types.annotation_status list
      val get_all_states :
        ?who:Project.Computation.t list -> t -> Project.Computation.t list
      val strongest :
        ?who:Project.Computation.t list ->
        t -> Cil_types.annotation_status * Project.Computation.t
      val pretty_all : Format.formatter -> t -> unit
      val compare : t -> t -> int
      val equal : t -> t -> bool
      val hash : t -> int
      val add_dependency :
        Project.Computation.t -> Project.Computation.t -> unit
      val self : Project.Computation.t
    end
  module Complete :
    sig
      type t = Db_types.kernel_function * Cil_types.kinstr * string list
      val get_all :
        ?who:Project.Computation.t list ->
        t -> (Cil_types.annotation_status * Project.Computation.t) list
      val get_all_status :
        ?who:Project.Computation.t list ->
        t -> Cil_types.annotation_status list
      val get_all_states :
        ?who:Project.Computation.t list -> t -> Project.Computation.t list
      val strongest :
        ?who:Project.Computation.t list ->
        t -> Cil_types.annotation_status * Project.Computation.t
      val pretty_all : Format.formatter -> t -> unit
      val compare : t -> t -> int
      val equal : t -> t -> bool
      val hash : t -> int
      val add_dependency :
        Project.Computation.t -> Project.Computation.t -> unit
      val self : Project.Computation.t
    end
  module Disjoint :
    sig
      type t = Db_types.kernel_function * Cil_types.kinstr * string list
      val get_all :
        ?who:Project.Computation.t list ->
        t -> (Cil_types.annotation_status * Project.Computation.t) list
      val get_all_status :
        ?who:Project.Computation.t list ->
        t -> Cil_types.annotation_status list
      val get_all_states :
        ?who:Project.Computation.t list -> t -> Project.Computation.t list
      val strongest :
        ?who:Project.Computation.t list ->
        t -> Cil_types.annotation_status * Project.Computation.t
      val pretty_all : Format.formatter -> t -> unit
      val compare : t -> t -> int
      val equal : t -> t -> bool
      val hash : t -> int
      val add_dependency :
        Project.Computation.t -> Project.Computation.t -> unit
      val self : Project.Computation.t
    end
  module Make_updater :
    functor
      (P : sig
             val name : string
             val dependencies : Project.Computation.t list
           end->
      sig
        module type S_ReadOnly =
          sig
            type t
            val get_all :
              ?who:Project.Computation.t list ->
              t -> (Cil_types.annotation_status * Project.Computation.t) list
            val get_all_status :
              ?who:Project.Computation.t list ->
              t -> Cil_types.annotation_status list
            val get_all_states :
              ?who:Project.Computation.t list ->
              t -> Project.Computation.t list
            val strongest :
              ?who:Project.Computation.t list ->
              t -> Cil_types.annotation_status * Project.Computation.t
            val pretty_all : Format.formatter -> t -> unit
            val compare : t -> t -> int
            val equal : t -> t -> bool
            val hash : t -> int
            val add_dependency :
              Project.Computation.t -> Project.Computation.t -> unit
            val self : Project.Computation.t
            val get : t -> Cil_types.annotation_status
          end
        module type S =
          sig
            type t
            val get_all :
              ?who:Project.Computation.t list ->
              t -> (Cil_types.annotation_status * Project.Computation.t) list
            val get_all_status :
              ?who:Project.Computation.t list ->
              t -> Cil_types.annotation_status list
            val get_all_states :
              ?who:Project.Computation.t list ->
              t -> Project.Computation.t list
            val strongest :
              ?who:Project.Computation.t list ->
              t -> Cil_types.annotation_status * Project.Computation.t
            val pretty_all : Format.formatter -> t -> unit
            val compare : t -> t -> int
            val equal : t -> t -> bool
            val hash : t -> int
            val add_dependency :
              Project.Computation.t -> Project.Computation.t -> unit
            val self : Project.Computation.t
            val get : t -> Cil_types.annotation_status
            val set : t -> Cil_types.annotation_status -> unit
            val update :
              t ->
              (Cil_types.annotation_status -> Cil_types.annotation_status) ->
              Cil_types.annotation_status
          end
        module CodeAnnotation :
          sig
            type t = Cil_types.code_annotation
            val get_all :
              ?who:Project.Computation.t list ->
              t -> (Cil_types.annotation_status * Project.Computation.t) list
            val get_all_status :
              ?who:Project.Computation.t list ->
              t -> Cil_types.annotation_status list
            val get_all_states :
              ?who:Project.Computation.t list ->
              t -> Project.Computation.t list
            val strongest :
              ?who:Project.Computation.t list ->
              t -> Cil_types.annotation_status * Project.Computation.t
            val pretty_all : Format.formatter -> t -> unit
            val compare : t -> t -> int
            val equal : t -> t -> bool
            val hash : t -> int
            val add_dependency :
              Project.Computation.t -> Project.Computation.t -> unit
            val self : Project.Computation.t
            val get : t -> Cil_types.annotation_status
            val set : t -> Cil_types.annotation_status -> unit
            val update :
              t ->
              (Cil_types.annotation_status -> Cil_types.annotation_status) ->
              Cil_types.annotation_status
          end
        module Behavior :
          sig
            type t =
                Db_types.kernel_function * Cil_types.kinstr *
                Cil_types.funbehavior
            val get_all :
              ?who:Project.Computation.t list ->
              t -> (Cil_types.annotation_status * Project.Computation.t) list
            val get_all_status :
              ?who:Project.Computation.t list ->
              t -> Cil_types.annotation_status list
            val get_all_states :
              ?who:Project.Computation.t list ->
              t -> Project.Computation.t list
            val strongest :
              ?who:Project.Computation.t list ->
              t -> Cil_types.annotation_status * Project.Computation.t
            val pretty_all : Format.formatter -> t -> unit
            val compare : t -> t -> int
            val equal : t -> t -> bool
            val hash : t -> int
            val add_dependency :
              Project.Computation.t -> Project.Computation.t -> unit
            val self : Project.Computation.t
            val get : t -> Cil_types.annotation_status
          end
        module Predicate :
          sig
            type t = Cil_types.identified_predicate
            val get_all :
              ?who:Project.Computation.t list ->
              t -> (Cil_types.annotation_status * Project.Computation.t) list
            val get_all_status :
              ?who:Project.Computation.t list ->
              t -> Cil_types.annotation_status list
            val get_all_states :
              ?who:Project.Computation.t list ->
              t -> Project.Computation.t list
            val strongest :
              ?who:Project.Computation.t list ->
              t -> Cil_types.annotation_status * Project.Computation.t
            val pretty_all : Format.formatter -> t -> unit
            val compare : t -> t -> int
            val equal : t -> t -> bool
            val hash : t -> int
            val add_dependency :
              Project.Computation.t -> Project.Computation.t -> unit
            val self : Project.Computation.t
            val get : t -> Cil_types.annotation_status
            val set : t -> Cil_types.annotation_status -> unit
            val update :
              t ->
              (Cil_types.annotation_status -> Cil_types.annotation_status) ->
              Cil_types.annotation_status
          end
        module Assigns :
          sig
            type t =
                Db_types.kernel_function * Cil_types.kinstr *
                Cil_types.funbehavior option *
                Cil_types.identified_term Cil_types.assigns list
            val get_all :
              ?who:Project.Computation.t list ->
              t -> (Cil_types.annotation_status * Project.Computation.t) list
            val get_all_status :
              ?who:Project.Computation.t list ->
              t -> Cil_types.annotation_status list
            val get_all_states :
              ?who:Project.Computation.t list ->
              t -> Project.Computation.t list
            val strongest :
              ?who:Project.Computation.t list ->
              t -> Cil_types.annotation_status * Project.Computation.t
            val pretty_all : Format.formatter -> t -> unit
            val compare : t -> t -> int
            val equal : t -> t -> bool
            val hash : t -> int
            val add_dependency :
              Project.Computation.t -> Project.Computation.t -> unit
            val self : Project.Computation.t
            val get : t -> Cil_types.annotation_status
            val set : t -> Cil_types.annotation_status -> unit
            val update :
              t ->
              (Cil_types.annotation_status -> Cil_types.annotation_status) ->
              Cil_types.annotation_status
          end
        module Complete :
          sig
            type t =
                Db_types.kernel_function * Cil_types.kinstr * string list
            val get_all :
              ?who:Project.Computation.t list ->
              t -> (Cil_types.annotation_status * Project.Computation.t) list
            val get_all_status :
              ?who:Project.Computation.t list ->
              t -> Cil_types.annotation_status list
            val get_all_states :
              ?who:Project.Computation.t list ->
              t -> Project.Computation.t list
            val strongest :
              ?who:Project.Computation.t list ->
              t -> Cil_types.annotation_status * Project.Computation.t
            val pretty_all : Format.formatter -> t -> unit
            val compare : t -> t -> int
            val equal : t -> t -> bool
            val hash : t -> int
            val add_dependency :
              Project.Computation.t -> Project.Computation.t -> unit
            val self : Project.Computation.t
            val get : t -> Cil_types.annotation_status
            val set : t -> Cil_types.annotation_status -> unit
            val update :
              t ->
              (Cil_types.annotation_status -> Cil_types.annotation_status) ->
              Cil_types.annotation_status
          end
        module Disjoint :
          sig
            type t =
                Db_types.kernel_function * Cil_types.kinstr * string list
            val get_all :
              ?who:Project.Computation.t list ->
              t -> (Cil_types.annotation_status * Project.Computation.t) list
            val get_all_status :
              ?who:Project.Computation.t list ->
              t -> Cil_types.annotation_status list
            val get_all_states :
              ?who:Project.Computation.t list ->
              t -> Project.Computation.t list
            val strongest :
              ?who:Project.Computation.t list ->
              t -> Cil_types.annotation_status * Project.Computation.t
            val pretty_all : Format.formatter -> t -> unit
            val compare : t -> t -> int
            val equal : t -> t -> bool
            val hash : t -> int
            val add_dependency :
              Project.Computation.t -> Project.Computation.t -> unit
            val self : Project.Computation.t
            val get : t -> Cil_types.annotation_status
            val set : t -> Cil_types.annotation_status -> unit
            val update :
              t ->
              (Cil_types.annotation_status -> Cil_types.annotation_status) ->
              Cil_types.annotation_status
          end
      end
  module type Generated =
    sig
      val get : Db_types.kernel_function -> bool
      val set : Db_types.kernel_function -> bool -> unit
      val get_state : Db_types.kernel_function -> Project.Computation.t
      val self : Project.Computation.t
    end
  module RTE_Status_Proxy :
    sig
      val self : Project.Computation.t
      val get_state : Db_types.kernel_function -> Project.Computation.t
    end
  module RTE_Signed_Generated : Generated
  module RTE_MemAccess_Generated : Generated
  module RTE_DivMod_Generated : Generated
  module RTE_DownCast_Generated : Generated
  val get_all_status :
    unit ->
    (Project.Computation.t *
     (Db_types.kernel_function -> Project.Computation.t) *
     (Db_types.kernel_function -> bool))
    list
  module Called_Precond_Generated : Generated
end