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

Popular posts from this blog

commonjs - How to write a typescript definition file for a node module that exports a function? -

openid - Okta: Failed to get authorization code through API call -

thorough guide for profiling racket code -