Comments (3)
@thoughtpolice oh, and as for this comment:
Alternatively, you could modeltrace from the start and simply look for any inviolate state according to the temporal property, but this seems like a delicate thing the API should handle for you? And it seems like there's probably a reason they're separate APIs, for now.
The motivation for having a separate modeltrace
vs modelcheck
is that this approach was the most direct path to providing both features. It turned out to be fairly difficult to implement both in features in way that shared the same model checker run without significant changes to the model checker's implementation being needed. Since the current CLI is a very simple tool primarily geared towards debugging issues with the model checker, I didn't feel comfortable making significant changes to the model checker in order to support the CLI. Especially since the model checker's correctness is so sensitive to changes.
from spectacle.
Hi @thoughtpolice! Thanks for writing a detailed ticket about what would be more useful for you 🙂 We're pretty busy at the moment so probably won't get around to properly responding to you for a little while.
And yeah, one of the reasons we chose to drive model checking from Haskell was to make integration with Git and CI much nicer. Thanks for affirming our design decisions 🙂
Also, if you do any of the work to generate HTML reports from traces, please contribute it (if you feel so inclined). PRs are welcome!
from spectacle.
I made some crude changes to the CLI to enable performing a trace with property checks within the same interaction
call in #55, e.g.
$ cabal v2-repl integration-tests
ghci *> :set args --trace --diagram
ghci *> import Specifications.Bitclock
ghci *> check
The model checker will run in check-only mode by default as before. To disable property checking and only trace the specification you can use:
$ cabal v2-repl integration-tests
ghci *> :set args --no-check --trace --diagram
ghci *> import Specifications.Bitclock
ghci *> check
I know this still isn't ideal from the users perspective, but I understand how annoying it was to switch back and fourth between checking and tracing. Leaving this issue open as I think significant improvements can still be made to the CLI to make tracing more user-friendly.
from spectacle.
Related Issues (18)
- Rename type ascription syntax
- Temporal formula not applied to initial states
- Model checker option to emit state trace.
- Detect liveness violations in infinite unchanging extensions
- Adding Spectacle to Hackage & nixpkgs? HOT 3
- Print States Leading Up To Error HOT 1
- Checking Inductive Invariants HOT 2
- How to disable a formula? HOT 1
- The integration tests are not verified correctly HOT 1
- Liveness property checked incorrectly HOT 1
- Use `Managed` monad in CLI HOT 1
- Publish a new revision of `spectacle-1.0.0` to remove the changelog entry
- Fix the spanning tree spec for spectacle-1.0.0
- Weird behaviour with NonDet and Stays modality HOT 10
- Support GHC 9.0 / base 4.15 HOT 2
- Should --only-trace should imply --log when using `interaction`? HOT 1
- Stuttering steps are not inserted for unchanged steps
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spectacle.