Term.Builtin.Rules

tamarin-prover-term-1.2.2: Term manipulation library for the tamarin prover.

Copyright | (c) 2010-2012 Benedikt Schmidt
License | GPL v3 (see LICENSE)
Maintainer | Benedikt Schmidt <beschmi@gmail.com>
Safe Haskell | None
Language | Haskell98

Term.Builtin.Rules

Contents

- Rewriting rules
- Convenience export

Description

Builtin rewriting rules.

Synopsis

- data RRule a = RRule a a
- dhRules :: Set (RRule LNTerm)
- bpRules :: Set (RRule LNTerm)
- msetRules :: Set (RRule LNTerm)
- pairRules :: Set CtxtStRule
- symEncRules :: Set CtxtStRule
- asymEncRules :: Set CtxtStRule
- signatureRules :: Set CtxtStRule
- module Term.Builtin.Signature

# Rewriting rules

data RRule a #

A rewrite rule.

Constructors

RRule a a |

Instances

Functor RRule # |
Methods fmap :: (a -> b) -> RRule a -> RRule b # (<$) :: a -> RRule b -> RRule a #
Applicative RRule # |
Methods pure :: a -> RRule a # (<*>) :: RRule (a -> b) -> RRule a -> RRule b # (*>) :: RRule a -> RRule b -> RRule b # (<*) :: RRule a -> RRule b -> RRule a #
Foldable RRule # |
Methods fold :: Monoid m => RRule m -> m # foldMap :: Monoid m => (a -> m) -> RRule a -> m # foldr :: (a -> b -> b) -> b -> RRule a -> b # foldr' :: (a -> b -> b) -> b -> RRule a -> b # foldl :: (b -> a -> b) -> b -> RRule a -> b # foldl' :: (b -> a -> b) -> b -> RRule a -> b # foldr1 :: (a -> a -> a) -> RRule a -> a # foldl1 :: (a -> a -> a) -> RRule a -> a # toList :: RRule a -> [a] # null :: RRule a -> Bool # length :: RRule a -> Int # elem :: Eq a => a -> RRule a -> Bool # maximum :: Ord a => RRule a -> a # minimum :: Ord a => RRule a -> a # sum :: Num a => RRule a -> a # product :: Num a => RRule a -> a #
Traversable RRule # |
Methods traverse :: Applicative f => (a -> f b) -> RRule a -> f (RRule b) # sequenceA :: Applicative f => RRule (f a) -> f (RRule a) # mapM :: Monad m => (a -> m b) -> RRule a -> m (RRule b) # sequence :: Monad m => RRule (m a) -> m (RRule a) #
Eq a => Eq (RRule a) # |
Methods (==) :: RRule a -> RRule a -> Bool # (/=) :: RRule a -> RRule a -> Bool #
Ord a => Ord (RRule a) # |
Methods compare :: RRule a -> RRule a -> Ordering # (<) :: RRule a -> RRule a -> Bool # (<=) :: RRule a -> RRule a -> Bool # (>) :: RRule a -> RRule a -> Bool # (>=) :: RRule a -> RRule a -> Bool # max :: RRule a -> RRule a -> RRule a # min :: RRule a -> RRule a -> RRule a #
Show a => Show (RRule a) # |
Methods showsPrec :: Int -> RRule a -> ShowS # show :: RRule a -> String # showList :: [RRule a] -> ShowS #
Monoid a => Monoid (RRule a) # |
Methods mempty :: RRule a # mappend :: RRule a -> RRule a -> RRule a # mconcat :: [RRule a] -> RRule a #
HasFrees a => HasFrees (RRule a) # |
Methods foldFrees :: Monoid m => (LVar -> m) -> RRule a -> m # foldFreesOcc :: Monoid m => (Occurence -> LVar -> m) -> Occurence -> RRule a -> m # mapFrees :: Applicative f => MonotoneFunction f -> RRule a -> f (RRule a) #

dhRules :: Set (RRule LNTerm) #

The rewriting rules for Diffie-Hellman. This is a presentation due to Lankford with the finite variant property.

bpRules :: Set (RRule LNTerm) #

The rewriting rules for bilinear pairing. These rules extend the the rules for Diffie-Hellman.

msetRules :: Set (RRule LNTerm) #

The rewriting rules for multisets.

pairRules :: Set CtxtStRule #

The rewriting rules for standard subterm operators that are builtin.

symEncRules :: Set CtxtStRule #

The rewriting rules for standard subterm operators that are builtin.

asymEncRules :: Set CtxtStRule #

The rewriting rules for standard subterm operators that are builtin.

signatureRules :: Set CtxtStRule #

The rewriting rules for standard subterm operators that are builtin.

# Convenience export

module Term.Builtin.Signature