-
Notifications
You must be signed in to change notification settings - Fork 41
Parametric Kappa Models #714
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…e guards and the remaining numbers represent the sites
…ue of the guard parameters
…s not accept 0 as site name
…ecause apparently this list needs to be sorted.
…ady to the bdu_analysis_static data structure and thus not having to add it explicitly in views_domain. Additionlly, I fixed the bug where the guard parameters could have values outside of 0 and 1 when not/or are used.
… computed in the global information
…s information about the guard parameter values being between 0 and 1
…earer to the original printing
…e in the GUI (part 1)
This reverts commit a65d32d.
…er and numbered from 0 upwards.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implementation for the paper "Reachability Analysis for Parametric Rule-Based Models".
This pull request allows the definition of parametric models in Kappa: each rule and initial state can be guarded by a boolean formula made of boolean predicates. For example:
Each rule (and initial state) is activated only if the guard evaluates to true. The static analyzer KaSa computes the relationship between the values of the predicates and the reachable patterns.
Each valuation of the predicates induces a concrete instantiation of the model. An instantiation can be defined by choosing a value (true or false) for each predicate via the directive
%guard_param:. The syntax is:If all parameters have a defined value, then the instantiated model can be simulated by KaSim or KaDE. Only the rules and initial states for which the guard evaluates to
trueare taken into account for the simulation.Three directives are implemented to automatically exploit the expressibility of the parameters. They represent hypotheses for which it is not yet determined if they are true or false: boolean predicates are added to reflect the potential presence or absence of these hypotheses.
%conflict: A x ymodifies the rules such that when the predicate@co-A-x-yis true, there is a conflict between the sitesxandyof the agentA. This means that the two sites can only form a bond when the other one is free, i.e., the two sites cannot both be bound at the same time. When@co-A-x-yis false, then the activated rules are exactly the ones that are explicitly defined in the Kappa model.%sequential_bond: A x yrepresents the hypothesis thatxandycan only bind sequentially, i.e.,ycan only bind to another site whenxis already bound. A predicate@sq-A-x-yis added and each rule whereyis bound on the right-hand side is modified to include the information that sitexis bound (when@sq-A-x-yis true).%working_setdefines a set of rules that are each automatically guarded by a fresh predicate of the form@rule-iwhereiis an increasing index starting at 0. Thus, the static analysis investigates the consequences of the activation or deactivation of each of these rules. This is useful to infer causal relationships between rule applications. Additionally, it can be used to implement an incremental analysis, where removing a rule does not require re-running the whole analysis.