Skip to content

Split data-based synthesis tool from generic CIF/BDD related functionality

Idea

From #269 (comment 1476211):

[...] I want to split the data-based synthesis tool into two parts:

  • The reusable parts:
    • The BDD to CIF conversion.
    • The CIF to BDD conversion.
    • The operations on BDDs, like reachability computations.
  • The parts specific to data-based synthesis.

This should make it possible to reuse BDD representations of a CIF model for other tools (controller checker, CIF explorer, etc).

Steps

Current idea of the steps involved, and their progress:

  • Introduce new settings class to hold the settings. (!760 (merged))
    • Normal/debug/warning output via settings class.
    • Termination checking via setting class.
    • Options via settings class.
    • Other uses of app framework via settings class.
  • No need to register application with application framework for the unit tests. (!760 (merged))
  • Non-synthesis-specific parts should not be named for synthesis (e.g., SynthesisVariable to CifBddVariable or so).
    • spec.Synthesis* to spec.CifBdd*. (!765 (merged))
    • Reachability computations, precondition checker, location pointer manager, conversion to CIF/BDD, etc. (!769 (merged))
    • Remaining parts. (!771 (merged))
  • Split synthesis-related parts from non-synthesis-related parts:
  • Move BDD-related parts to a new org.eclipse.escet.cif.bdd project. (!772 (merged))

Addresses #269.

Edited by Dennis Hendriks