fsm - Python : Looking for Model Checker tool and results to CNF convertion -
i test code modell checker , make fsm out of in automated way. need modell checker , convert fsm results cnf.
any advice how can in python ? know cbmc thi limited c.
thanks adrian
python not language suited model checking, example duck typing lets lot of freedom raise exceptions. if code procedural, may try first convert c
using py2c
or equivalent.
then use modex
extract promela
model c
code. last step called abstraction. can use spin
model checker verify properties of interest.
if cnf stands "conjunctive normal form", not understand how cnf relates results of model checking. model checking yields either "yes, model models logic formula provided" or "no doesn't, , here's counterexample why not". cnf particular syntactic form boolean formulas.
if mentioned cnf relevant bounded model checking cbmc
, sat solving involved in that, please note spin
accepts input kripke models expressed using promela
language. don't need convert boolean formula , in addition can run full liveness verification checks.
for more options of model checking tools, have @ this list. in particular, if want roll own converter python
promela
, may find useful projects: - promela-metamodel
- ocaml
library promela
- pi2promela
- program promela converter.
also, note "fsm" (finite state machine) transducer, not kripke structure. transducer has both inputs , outputs. reacts inputs producing outputs. result of synthesis in adversarial setting, 1 has environment (controlling inputs) , system (controlling outputs), , wants synthesize strategy satisfies specification expressed in form of logic formula. there exist several tools solving problem. result mealy machine, or moore machine (they different , not equivalent), both types of transducers.
a transducer not kripke structure (or transition system, though latter term used typically wrongly, better refer kripke structure or model, can represented graph states labeled propositions refer in logic formula desired specification).
observe how synthesis opposite of verification (model checking form of verification): closed-system synthesis (no environment) takes formula , synthesizes model satisfying it, in form of kripke structure. closed-system verification takes model , desired formula, , checks whether model satisfies specification. closed-system synthesis can done using partial model (in sense defines admissible behavior, includes more behaviors desired , expressed using logic formula), logic formula, , yield sub-model of that, satisfies (or "models") logic formula.
open-system synthesis can performed logic formula input, solving game between system , environment, obtain transducer implements strategy system satisfy logic formula, irrespective of how environment chooses play (provided environment complies logic formula).
notice difference between transducer (fsm), relevant in open-system synthesis (and verification, of course, model checkers typically take input closed systems, modeling environment in closed system setting has done introducing uncontrolled non-determinism in kripke structure) , kripke structure or finite transition system given input closed-system synthesis.
Comments
Post a Comment