|
|
|
|
|
| Description |
| This module defines Kripke models,
and the evaluation of terms inside these models.
|
|
| Synopsis |
|
|
|
| Documentation |
|
| data Model world |
| A Kripke model, the worlds are of the type world
| | Constructors | | Model | | | modValuation :: (Map world (Map VarName Bool)) | A valuation, in what world are what variables true/false?
| | modRelations :: (Map Agents (Relation world)) | Accessability relations for each agent
| | modRoot :: world | The root world of the model, terms are evalutated here
|
|
| Instances | |
|
|
| modWorlds :: Model w -> [w] |
| All worlds in a Kripke model
|
|
| modIsWorld :: Ord w => w -> Model w -> Bool |
| Does the given world actually exist?
|
|
| Evaluation
|
|
| class Models a where |
Evaluating terms in a model.
- m |= t evaluates t in the root world of the model.
- (m,w) |= t evaluates t in the world w of the model.
| | | Methods | | (|=) :: a -> Formula -> Bool | | m |= term should be read as "m models term".
Does the term evaluate to True in the model?
| | | (|/=) :: a -> Formula -> Bool | | Does not model
|
| | Instances | |
|
|
| annotate :: Model Int -> Program -> Program |
| Annotate each subformula of a Program with a Note that specifies in what worlds that formula is true.
|
|
| Transformations
|
|
| toIntKeys :: Ord w => Model w -> Model Int |
| Use integer keys for a model.
This allows for faster computation, and for correct graphviz conversion.
|
|
| simplifyModel :: Ord w => (Model w -> Bool) -> Model w -> Model w |
| Simplfy a model by merging worlds.
Ensures that the model still satisfies a predicate
|
|
| axiomaticClosure :: Ord w => Set Agents -> Axioms -> Model w -> Model w |
| Take the reflexive, transitive, symmetric closure of a counter model,
but only as needed by the axioms.
|
|
| transSymClosure :: Ord w => Model w -> Model w |
| Take the reflexive, transitive, symmetric closure of a counter model
|
|
| addReflexive :: Ord w => Set Agents -> Model w -> Model w |
| Add reflexive arrows for the given set of agents,
only add arrows to worlds without outgoing ones.
|
|
| Produced by Haddock version 0.8 |