Term.Maude.Signature

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.Maude.Signature

Contents

- Maude signatures
- predefined maude signatures
- extend maude signatures
- pretty printing

Description

Equational signatures for Maude.

Synopsis

- data MaudeSig
- enableDH :: MaudeSig -> Bool
- enableBP :: MaudeSig -> Bool
- enableMSet :: MaudeSig -> Bool
- enableDiff :: MaudeSig -> Bool
- stFunSyms :: MaudeSig -> Set NoEqSym
- stRules :: MaudeSig -> Set CtxtStRule
- funSyms :: MaudeSig -> FunSig
- irreducibleFunSyms :: MaudeSig -> FunSig
- rrulesForMaudeSig :: MaudeSig -> Set (RRule LNTerm)
- noEqFunSyms :: MaudeSig -> NoEqFunSig
- dhMaudeSig :: MaudeSig
- pairMaudeSig :: MaudeSig
- asymEncMaudeSig :: MaudeSig
- symEncMaudeSig :: MaudeSig
- signatureMaudeSig :: MaudeSig
- hashMaudeSig :: MaudeSig
- msetMaudeSig :: MaudeSig
- bpMaudeSig :: MaudeSig
- minimalMaudeSig :: Bool -> MaudeSig
- enableDiffMaudeSig :: MaudeSig
- addFunSym :: NoEqSym -> MaudeSig -> MaudeSig
- addCtxtStRule :: CtxtStRule -> MaudeSig -> MaudeSig
- prettyMaudeSig :: HighlightDocument d => MaudeSig -> d

# Maude signatures

data MaudeSig #

The required information to define a `Maude functional module`.

Instances

Eq MaudeSig # |
Methods (==) :: MaudeSig -> MaudeSig -> Bool # (/=) :: MaudeSig -> MaudeSig -> Bool #
Ord MaudeSig # |
Methods compare :: MaudeSig -> MaudeSig -> Ordering # (<) :: MaudeSig -> MaudeSig -> Bool # (<=) :: MaudeSig -> MaudeSig -> Bool # (>) :: MaudeSig -> MaudeSig -> Bool # (>=) :: MaudeSig -> MaudeSig -> Bool # max :: MaudeSig -> MaudeSig -> MaudeSig # min :: MaudeSig -> MaudeSig -> MaudeSig #
Show MaudeSig # |
Methods showsPrec :: Int -> MaudeSig -> ShowS # show :: MaudeSig -> String # showList :: [MaudeSig] -> ShowS #
Generic MaudeSig # |
Associated Types type Rep MaudeSig :: * -> * # Methods from :: MaudeSig -> Rep MaudeSig x # to :: Rep MaudeSig x -> MaudeSig #
Monoid MaudeSig # | A monoid instance to combine maude signatures.
Methods mempty :: MaudeSig # mappend :: MaudeSig -> MaudeSig -> MaudeSig # mconcat :: [MaudeSig] -> MaudeSig #
Binary MaudeSig # |
Methods put :: MaudeSig -> Put # get :: Get MaudeSig # putList :: [MaudeSig] -> Put #
NFData MaudeSig # |
Methods rnf :: MaudeSig -> () #
type Rep MaudeSig # |
type Rep MaudeSig = D1 (MetaData "MaudeSig" "Term.Maude.Signature" "tamarin-prover-term-1.2.2-AAX5pCkSPqj7TesI35mR1r" False) (C1 (MetaCons "MaudeSig" PrefixI True) ((:*:) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "enableDH") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool)) (S1 (MetaSel (Just Symbol "enableBP") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool))) ((:*:) (S1 (MetaSel (Just Symbol "enableMSet") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool)) (S1 (MetaSel (Just Symbol "enableDiff") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool)))) ((:*:) ((:*:) (S1 (MetaSel (Just Symbol "stFunSyms") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Set NoEqSym))) (S1 (MetaSel (Just Symbol "stRules") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Set CtxtStRule)))) ((:*:) (S1 (MetaSel (Just Symbol "funSyms") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 FunSig)) (S1 (MetaSel (Just Symbol "irreducibleFunSyms") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 FunSig))))))

enableDH :: MaudeSig -> Bool #

enableBP :: MaudeSig -> Bool #

enableMSet :: MaudeSig -> Bool #

enableDiff :: MaudeSig -> Bool #

stFunSyms :: MaudeSig -> Set NoEqSym #

function signature for subterm theory

stRules :: MaudeSig -> Set CtxtStRule #

rewriting rules for subterm theory

funSyms :: MaudeSig -> FunSig #

function signature including the function symbols for DH, BP, and Multiset can be computed from enableX and stFunSyms

irreducibleFunSyms :: MaudeSig -> FunSig #

irreducible function symbols (can be computed)

rrulesForMaudeSig :: MaudeSig -> Set (RRule LNTerm) #

Returns all rewriting rules including the rules for DH, BP, and multiset.

noEqFunSyms :: MaudeSig -> NoEqFunSig #

Non-AC function symbols.

# predefined maude signatures

dhMaudeSig :: MaudeSig #

Maude signatures for the AC symbols.

pairMaudeSig :: MaudeSig #

Maude signatures for the default subterm symbols. pairMaudeSig :: Bool -> MaudeSig pairMaudeSig flag = maudeSig $ mempty {stFunSyms=pairFunSig,stRules=pairRules,enableDiff=flag}

asymEncMaudeSig :: MaudeSig #

Maude signatures for the default subterm symbols. pairMaudeSig :: Bool -> MaudeSig pairMaudeSig flag = maudeSig $ mempty {stFunSyms=pairFunSig,stRules=pairRules,enableDiff=flag}

symEncMaudeSig :: MaudeSig #

Maude signatures for the default subterm symbols. pairMaudeSig :: Bool -> MaudeSig pairMaudeSig flag = maudeSig $ mempty {stFunSyms=pairFunSig,stRules=pairRules,enableDiff=flag}

signatureMaudeSig :: MaudeSig #

Maude signatures for the default subterm symbols. pairMaudeSig :: Bool -> MaudeSig pairMaudeSig flag = maudeSig $ mempty {stFunSyms=pairFunSig,stRules=pairRules,enableDiff=flag}

hashMaudeSig :: MaudeSig #

Maude signatures for the default subterm symbols. pairMaudeSig :: Bool -> MaudeSig pairMaudeSig flag = maudeSig $ mempty {stFunSyms=pairFunSig,stRules=pairRules,enableDiff=flag}

msetMaudeSig :: MaudeSig #

Maude signatures for the AC symbols.

bpMaudeSig :: MaudeSig #

Maude signatures for the AC symbols.

minimalMaudeSig :: Bool -> MaudeSig #

The minimal maude signature.

enableDiffMaudeSig :: MaudeSig #

Signature with enableDiff set to True

# extend maude signatures

addFunSym :: NoEqSym -> MaudeSig -> MaudeSig #

Add function symbol to given maude signature.

addCtxtStRule :: CtxtStRule -> MaudeSig -> MaudeSig #

Add subterm rule to given maude signature.

# pretty printing

prettyMaudeSig :: HighlightDocument d => MaudeSig -> d #