dunai-test-0.14.1: Testing library for Dunai
Copyright(c) Ivan Perez 2017
LicenseBSD3
Maintainerivan.perez@keera.co.uk
Safe HaskellSafe-Inferred
LanguageHaskell2010

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

Past-time linear temporal logic using MSFs.

Propositional MSFs

andSF :: Monad m => MSF m (Bool, Bool) Bool Source #

Output True when both inputs are True.

orSF :: Monad m => MSF m (Bool, Bool) Bool Source #

Output True when at least one input is True.

notSF :: Monad m => MSF m Bool Bool Source #

Output True when the input is False.

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.

Past-time linear temporal logic as MSF combinators.

type SPred m a = MSF m a Bool Source #

A signal predicate is an MSF whose output is a Boolean value.