Goblint_lib.RelationPrivRelational thread-modular value analyses for RelationAnalysis, i.e. ApronAnalysis and AffineEqualityAnalysis.
module Q = Queriesmodule RelationComponents = RelationDomain.RelComponentsmodule VarQuery = Goblint_constraint.VarQuerymodule type S = functor (RD : RelationDomain.RD) -> sig ... endTop privatization, which doesn't track globals at all. This is unlike base's "none" privatization. which does track globals, but doesn't privatize them.
module type ProtectionBasedPrivParam = sig ... endmodule ProtectionBasedPriv (Param : ProtectionBasedPrivParam) : SProtection-Based Reading. Is unsound w.r.t. to locals escaping and becoming public.
module CommonPerMutex (RD : RelationDomain.RD) : sig ... endmodule PerMutexMeetPrivBase (RD : RelationDomain.RD) : sig ... endmodule PerMutexMeetPriv (Param : CommonPriv.AtomicParam) : SPer-mutex meet.
module W : sig ... endMay written variables.
module type ClusterArg = functor (RD : RelationDomain.RD) -> sig ... endmodule NoCluster : ClusterArgNo clustering.
module type ClusteringArg = sig ... endmodule Clustering12 : ClusteringArgAll clusters of size 1 and 2.
module Clustering2 : ClusteringArgAll clusters of size 2.
module ClusteringPower : ClusteringArgAll subset clusters.
module ClusteringMax : ClusteringArgOne maximum cluster.
module DownwardClosedCluster
(ClusteringArg : ClusteringArg)
(RD : RelationDomain.RD) :
sig ... endClusters when clustering is downward-closed.
module ArbitraryCluster (ClusteringArg : ClusteringArg) : ClusterArgClusters when clustering is arbitrary (not necessarily downward-closed).
module PerMutexMeetPrivTID
(Param : CommonPriv.AtomicParam)
(Digest : CommonPriv.Digest)
(Cluster : ClusterArg) :
SPer-mutex meet with TIDs.
module TracingPriv (Priv : S) (RD : RelationDomain.RD) : sig ... endval priv_module : (module S) Stdlib.Lazy.tval get_priv : unit -> (module S)