-
Erwan Jahier authored
Parent-Version: 0.68 Version-Log: wtree.ml,mli: (deleted) automa.ml,mli: (new files) control.ml,mli: (new files) Replace the [wtree] module by an [automata] module, that basically does the same job, but in a different way. Namely, it no more uses the [wtree] DS to use [graph]s instead. Indeed, the product of wtrees introduces some problems, in particular to ensure its correctness wrt to the automata run concurrently. Now, everything a dead-simple wrt product: we simply perform a quasi-classical automata product (well, at least, much closer from a classical product, cf paper). The way loop counters are handled has also changed. Now, counters are handled via expressions of a simple arithmetic language that basically lets one initialise a variable to an exact or a random value (uniform or normal draw) and decrement it. Arcs are now labelled by a formula plus 2 expressions of that mini-language (no more weigth nor cpt_init stuff). The 1st expression is evaluated during the draw, basically performs any operations on counters, and returns a positive int that is used as the formula weigth. The second expression (a kind of post-condition) is evaluated if its arc is the one that has been elected to perform the step. At several locations long lines (< 80) are reindented. parse_env.ml: In the ima format, IfThenElseExpr becomes IfThenElseNum. Also, parse list more cleanly. graph.ml,mli: Add a function that test whether a transition is in the graph. Do not sort list of transitions anymore (what was the point?). Also do not sort nodes in any way. show_env_env.ml,mli: Abstract away nodes and arcs data types (so that I can display Automata graphs). rename generate_env_graph into ima_to_dot. lurette.ml: ima_exe.ml: Fix a bug where bbd table were filled by asserted non regression expr. lurette.ml: Fix a bug where incorrect data was sent to sim2chro (ie, the output of the previous step instead of the ones of the current step. env_state.ml: solver.ml: gne.ml: Fix a performance bug where I was storing formula indexes even if they were depending on inputs or pre, which is stupid as they generally won't be used again. In order to fix that, I introduced new atomic_formula <-> indexes table to stote the ones that do not depend on inputs apart. It was also necassery to propogate the <<depend on pre>> flag inside Gne.gn_expr (which i renamed Gne.t BTW). Project-Description: Lurette
135fe2d5