Copyright | (c) Ivan Perez 2017 |
---|---|
License | BSD3 |
Maintainer | ivan.perez@keera.co.uk |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
FRP.Dunai.LTLPast
Description
Past-time LTL using MSFs.
This module provides ways of defining past-, discrete-time temporal predicates with MSFs.
There are two ways of doing so: piping the results of Boolean-carrying MSFs into other MSFs (Past-time LTL using MSFs), or wrapping MSFs into other MSFs (Past-time LTL as MSF combinators).
Synopsis
- andSF :: Monad m => MSF m (Bool, Bool) Bool
- orSF :: Monad m => MSF m (Bool, Bool) Bool
- notSF :: Monad m => MSF m Bool Bool
- impliesSF :: Monad m => MSF m (Bool, Bool) Bool
- sofarSF :: Monad m => MSF m Bool Bool
- everSF :: Monad m => MSF m Bool Bool
- untilSF :: (Functor m, Monad m) => MSF m (Bool, Bool) Bool
- lastSF :: Monad m => MSF m Bool Bool
- type SPred m a = MSF m a Bool
Past-time linear temporal logic using MSFs.
Propositional MSFs
impliesSF :: Monad m => MSF m (Bool, Bool) Bool Source #
Output True when the second input is True or the first one is False.
Temporal MSFs
sofarSF :: Monad m => MSF m Bool Bool Source #
Output True when every input up until the current time has been True.
This corresponds to Historically, or the past-time version of Globally or Always.
everSF :: Monad m => MSF m Bool Bool Source #
Output True when at least one input up until the current time has been True.
This corresponds to Ever, or the past-time version of Eventually.
untilSF :: (Functor m, Monad m) => MSF m (Bool, Bool) Bool Source #
Output True if the first element has always been True, or the second has been True ever since the first one became False.
lastSF :: Monad m => MSF m Bool Bool Source #
Output True if the input was True at the last time.
False at time zero.