lmonad-0.1.0.0: LMonad is an Information Flow Control (IFC) framework for Haskell applications.

Safe HaskellSafe
LanguageHaskell98

LMonad.Label.DisjunctionCategory

Synopsis

Documentation

type Disjunction p = Set p Source #

data Ord p => DCLabel p Source #

Disjunction category label of principals in conjunction normal form.

Instances

Ord p => Eq (DCLabel p) Source # 

Methods

(==) :: DCLabel p -> DCLabel p -> Bool #

(/=) :: DCLabel p -> DCLabel p -> Bool #

(Show p, Ord p) => Show (DCLabel p) Source # 

Methods

showsPrec :: Int -> DCLabel p -> ShowS #

show :: DCLabel p -> String #

showList :: [DCLabel p] -> ShowS #

Ord p => Label (DCLabel p) Source # 

Methods

lub :: DCLabel p -> DCLabel p -> DCLabel p

glb :: DCLabel p -> DCLabel p -> DCLabel p

canFlowTo :: DCLabel p -> DCLabel p -> Bool

bottom :: DCLabel p

dcSingleton :: Ord p => p -> DCLabel p Source #

Convenience function to convert a principal to confidentiality and integrity DCLabel.

dcConfidentialitySingleton :: Ord p => p -> DCLabel p Source #

Convenience function to convert a principal to confidentiality DCLabel.

dcIntegritySingleton :: Ord p => p -> DCLabel p Source #

Convenience function to convert a principal to integrity DCLabel.

forall :: (a -> Bool) -> Set a -> Bool Source #

exists :: (a -> Bool) -> Set a -> Bool Source #

implies :: Ord p => Conjunction p -> Conjunction p -> Bool Source #

Computes logical implies. Assumes CNF. O(n * m * (n' + m'))