# v.model.spec.rules contains a list of Rule objects (ecco.rr.st.py) representing the rules
# v.g.m.transitions() returns a dict of {"R15" : shom}
# v.g.m.transitions() returns a dict of {string label : shom}
# TODO : ajouter la gestion des contraintes (ca risque de causer beaucoup de problèmes parce que l'union des pred_alpha ne donnera pas pred à cause que ca ne fera pas l'union des contraintes)
res=dict()
labels=list(set([r.labelforrinv.model.spec.rules]))# build a list of unique value of Rule labels
# juste appeler CTL_model_checker en lui donnant le shom correspondant à la formule d'action
def__init__(self,universe,pred_dict):
"""
Input :
- universe is a sdd representing the state space (for example v.g.reachable)
- pred is a dictionary associating transition label strings to shom representing the inverse of succ for this label (for exemple using build_dict_labeled_pred(v))
"""
assertisinstance(pred_dict,dict),"pred_dict must be of type dict"
assertlen(pred_dict)>=1,"pred_dict must contain at least one element"
foreinpred_dict:# for each key of the dictionnary
assertisinstance(e,str),"every key of pred_dict must be of type string"
assertisinstance(pred_dict[e],shom),"every value of pred_dict must be of type shom"