diff --git a/prism/NOTES b/prism/NOTES index aef765f2..0694bdee 100644 --- a/prism/NOTES +++ b/prism/NOTES @@ -8,13 +8,10 @@ TODO (before any release) ------------------------- PTAs: -* GUI * (Further) tidy of prism-examples/pta -* Clarify semantic/type checks (consistency with games/digital) * Check guards/invariants for convexity (for now, neither can be non-convex, see below) * Clarify time divergence issues * non-zeno checks? -* Sort VarList (two types - before and after constants evaluated). Need for simulator too. ======================================================= @@ -30,7 +27,12 @@ Filters, property semantics, etc. * Restructure Result class? e.g. separate bracketed comment? (done I think) - Errors (Exceptions) formatted properly? +Sim: +* tidy doSampling, looking at Vincent's code +* seed issues (Vlad) + PTAs: +* More of PCTL - even just G, bounded (not =?), etc. * Enforce well-formedness checks (i.e. guards/resets imply target invariants) (as opposed to say supporting strong invariants, where targets with false invariants cannot be entered) @@ -50,19 +52,6 @@ Filters: * Filters - no longer allowed minmax (or encode as range?) * P>=p[...{filter}] means & not print (didn't print in 3.3 anyway, despite manual) -PTAs: -* Where can clocks be used - - clock constraints (just (some) binops) - - in guards - - in invariants - - resets (normal updates, but to ints only) - - var decl.s - - generally must be convex (i.e. just conj of constraints) (can be relaxed a bit for digital clocks) -* Currently, modules cannot access non-local vars (and there are no globals) - (this is too restrictive, e.g. for message passing) -* Must have single initial state (is this true for digital clocks too?) -* Invariants must come straight after var decls - ======================================================= BUG (some time) @@ -87,7 +76,6 @@ PTAs: * BRP example * Translate non-convex guards to DNF and multiple transitions * Investigate whether non-convex invariants can be supported (look at zone ops) -* BRP example * Games: Optimise number of states in time-bounded PTAs (extras added in old target states) using until in forwards reach? @@ -101,11 +89,13 @@ PTAs: (or is it ok if only use this on initial reach graph construction?) Simulator: +* Variable overflow etc. + - would make sense to check in Update.update() because want to know offending command + - but need access to VarList, which we don't have * Investigate efficiency wrt old simulator * Add (back) support for *full* loop detection? (not just *single* self-loops) * Add (back) early manual termination of sampling (thru expt stop?) * Random initial state -* Variable overflow etc. * Add support for "deadlock" and "init" (new EvaluationContext, model *and* state dependent) * Seed issues (currently twice in one second = same seed) * explicitbuildtest doesn't handle dupes in mdps (e.g. consensus)