Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
class GaloisTransformer ς m | m -> ς where Source
GaloisTransformer ID ID Source | |
(GaloisTransformer ς m, Functorial * JoinLattice m) => GaloisTransformer (NondetJoinΠ ς) (NondetJoinT m) Source | |
GaloisTransformer (PathSensitiveΣᵇ val) (PathSensitiveM val) Source | |
Join val => GaloisTransformer (FlowInsensitiveΣᵇ val) (FlowInsensitiveM val) Source | |
Join val => GaloisTransformer (FlowSensitiveΣᵇ val) (FlowSensitiveM val) Source | |
GaloisTransformer ς m => GaloisTransformer (StateΠ s ς) (StateT s m) Source | |
GaloisTransformer ς m => GaloisTransformer (PolyStateΠ s ς) (PolyStateT s m) Source | |
(GaloisTransformer ς m, Functorial * JoinLattice m, JoinLattice s) => GaloisTransformer (FlowJoinΠ s ς) (FlowJoinT s m) Source |
class Inject ι ς | ς -> ι where Source
Inject * ID ID Source | |
(Inject * ι ς, Functor ς) => Inject * ι (NondetJoinΠ ς) Source | |
Inject * (InjectLamIf val) (PathSensitiveΣᵇ val) Source | |
Inject * (InjectLamIf val) (FlowInsensitiveΣᵇ val) Source | |
Inject * (InjectLamIf val) (FlowSensitiveΣᵇ val) Source | |
(Inject * ι ς, Functor ς) => Inject * (StateI s ι) (FlowJoinΠ s ς) Source | |
Inject * ι ς => Inject * (StateI s ι) (PolyStateΠ s ς) Source | |
Inject * ι ς => Inject * (StateI s ι) (StateΠ s ς) Source |
isoToStateTMorph :: ((a, s) -> m (b, s)) -> a -> StateT s m b Source
isoFromStateTMorph :: (a -> StateT s m b) -> (a, s) -> m (b, s) Source
newtype PolyStateT s m a Source
PolyStateT | |
|
Polymorphic * * JoinLattice m => Polymorphic * * JoinLattice (PolyStateT s m) Source | |
Functor m => MonadState s (PolyStateT s m) Source | |
Monad m => Monad (PolyStateT s m) Source | |
Functor m => Functor (PolyStateT s m) Source | |
MonadJoinLattice m => MonadJoinLattice (PolyStateT s m) Source | |
MonadJoin m => MonadJoin (PolyStateT s m) Source | |
MonadBot m => MonadBot (PolyStateT s m) Source | |
GaloisTransformer ς m => GaloisTransformer (PolyStateΠ s ς) (PolyStateT s m) Source | |
Polymorphic * * JoinLattice m => JoinLattice (PolyStateT s m a) Source | |
Polymorphic * * JoinLattice m => Join (PolyStateT s m a) Source | |
Polymorphic * * JoinLattice m => Bot (PolyStateT s m a) Source |
isoToPolyStateTMorph :: ((a, s) -> m (b, s)) -> a -> PolyStateT s m b Source
isoFromPolyStateTMorph :: (a -> PolyStateT s m b) -> (a, s) -> m (b, s) Source
isoToNondetJoinTMorph :: (a -> m (𝒫ᵇ b)) -> a -> NondetJoinT m b Source
isoFromNondetJoinTMorph :: (a -> NondetJoinT m b) -> a -> m (𝒫ᵇ b) Source
isoToFlowJoinTMorph :: ((a, s) -> m (b ⇰♭⊔ s)) -> a -> FlowJoinT s m b Source
isoFromFlowJoinTMorph :: (a -> FlowJoinT s m b) -> (a, s) -> m (b ⇰♭⊔ s) Source
(Functorial * JoinLattice ς, JoinLattice s) => Functorial * JoinLattice (StateΠ s ς) Source | |
(OrdFunctorial POrd ς, POrd s, Ord s) => OrdFunctorial POrd (StateΠ s ς) Source | |
Inject * ι ς => Inject * (StateI s ι) (StateΠ s ς) Source | |
Functor ς => Functor (StateΠ s ς) Source | |
GaloisTransformer ς m => GaloisTransformer (StateΠ s ς) (StateT s m) Source | |
(Functorial * JoinLattice ς, JoinLattice s, JoinLattice a) => JoinLattice (StateΠ s ς a) Source | |
Difference (ς (a, s)) => Difference (StateΠ s ς a) Source | |
(Functorial * JoinLattice ς, JoinLattice s, JoinLattice a) => Join (StateΠ s ς a) Source | |
(Functorial * JoinLattice ς, JoinLattice s, JoinLattice a) => Bot (StateΠ s ς a) Source | |
(OrdFunctorial POrd ς, POrd s, POrd a, Ord s, Ord a) => POrd (StateΠ s ς a) Source | |
Pretty (ς0 (a0, s0)) => Pretty (StateΠ s ς a) Source |
isoToStateΠMorph :: (ς (a, s) -> ς (b, s)) -> StateΠ s ς a -> StateΠ s ς b Source
isoFromStateΠMorph :: (StateΠ s ς a -> StateΠ s ς b) -> ς (a, s) -> ς (b, s) Source
newtype PolyStateΠ s ς a Source
PolyStateΠ | |
|
Polymorphic * * JoinLattice ς => Polymorphic * * JoinLattice (PolyStateΠ s ς) Source | |
(OrdPolymorphic * POrd ς, Ord s) => OrdPolymorphic * POrd (PolyStateΠ s ς) Source | |
Inject * ι ς => Inject * (StateI s ι) (PolyStateΠ s ς) Source | |
Functor ς => Functor (PolyStateΠ s ς) Source | |
GaloisTransformer ς m => GaloisTransformer (PolyStateΠ s ς) (PolyStateT s m) Source | |
Polymorphic * * JoinLattice ς => JoinLattice (PolyStateΠ s ς a) Source | |
Difference (ς (a, s)) => Difference (PolyStateΠ s ς a) Source | |
Polymorphic * * JoinLattice ς => Join (PolyStateΠ s ς a) Source | |
Polymorphic * * JoinLattice ς => Bot (PolyStateΠ s ς a) Source | |
(OrdPolymorphic * POrd ς, Ord s, Ord a) => POrd (PolyStateΠ s ς a) Source | |
Pretty (ς0 (a0, s0)) => Pretty (PolyStateΠ s ς a) Source |
isoPolyStateΠ :: PolyStateΠ s ς a ⇄ ς (a, s) Source
isoToPolyStateΠMorph :: (ς (a, s) -> ς (b, s)) -> PolyStateΠ s ς a -> PolyStateΠ s ς b Source
isoFromPolyStateΠMorph :: (PolyStateΠ s ς a -> PolyStateΠ s ς b) -> ς (a, s) -> ς (b, s) Source
newtype NondetJoinΠ ς a Source
NondetJoinΠ | |
|
Functorial * JoinLattice ς => Polymorphic * * JoinLattice (NondetJoinΠ ς) Source | |
OrdFunctorial POrd ς => OrdPolymorphic * POrd (NondetJoinΠ ς) Source | |
(Inject * ι ς, Functor ς) => Inject * ι (NondetJoinΠ ς) Source | |
(GaloisTransformer ς m, Functorial * JoinLattice m) => GaloisTransformer (NondetJoinΠ ς) (NondetJoinT m) Source | |
Functorial * JoinLattice ς => JoinLattice (NondetJoinΠ ς a) Source | |
Difference (ς (𝒫ᵇ a)) => Difference (NondetJoinΠ ς a) Source | |
Functorial * JoinLattice ς => Join (NondetJoinΠ ς a) Source | |
Functorial * JoinLattice ς => Bot (NondetJoinΠ ς a) Source | |
(OrdFunctorial POrd ς, Ord a) => POrd (NondetJoinΠ ς a) Source | |
Pretty (ς0 (𝒫ᵇ a0)) => Pretty (NondetJoinΠ ς a) Source |
isoNondetJoinΠ :: NondetJoinΠ ς a ⇄ ς (𝒫ᵇ a) Source
isoToNondetJoinΠMorph :: (ς (𝒫ᵇ a) -> ς (𝒫ᵇ b)) -> NondetJoinΠ ς a -> NondetJoinΠ ς b Source
isoFromNondetJoinΠMorph :: (NondetJoinΠ ς a -> NondetJoinΠ ς b) -> ς (𝒫ᵇ a) -> ς (𝒫ᵇ b) Source
newtype FlowJoinΠ s ς a Source
FlowJoinΠ | |
|
Functorial * JoinLattice ς => Polymorphic * * JoinLattice (FlowJoinΠ s ς) Source | |
(OrdFunctorial POrd ς, POrd s, JoinLattice s, Ord s) => OrdPolymorphic * POrd (FlowJoinΠ s ς) Source | |
(Inject * ι ς, Functor ς) => Inject * (StateI s ι) (FlowJoinΠ s ς) Source | |
(GaloisTransformer ς m, Functorial * JoinLattice m, JoinLattice s) => GaloisTransformer (FlowJoinΠ s ς) (FlowJoinT s m) Source | |
Functorial * JoinLattice ς => JoinLattice (FlowJoinΠ s ς a) Source | |
Difference (ς ((⇰♭⊔) a s)) => Difference (FlowJoinΠ s ς a) Source | |
Functorial * JoinLattice ς => Join (FlowJoinΠ s ς a) Source | |
Functorial * JoinLattice ς => Bot (FlowJoinΠ s ς a) Source | |
(OrdFunctorial POrd ς, POrd s, JoinLattice s, Ord s, Ord a) => POrd (FlowJoinΠ s ς a) Source | |
Pretty (ς0 ((⇰♭⊔) a0 s0)) => Pretty (FlowJoinΠ s ς a) Source |
type NondetJoinI ι = ι Source
isoαGT :: GaloisTransformer ς₁ m₁ => (ς₂ ↝⇄ ς₁) -> (m₂ ↝⇄ m₁) -> forall a b. (ς₂ a -> ς₂ b) -> a -> m₂ b Source
isoγGT :: GaloisTransformer ς₁ m₁ => (ς₂ ↝⇄ ς₁) -> (m₂ ↝⇄ m₁) -> forall a b. (a -> m₂ b) -> ς₂ a -> ς₂ b Source