Comments (2)
The whileLoop combinator mostly exists to be used by AutoCorres as a state-monad equivalent to a while loop in C. I don't think it is used in the seL4 proofs.
The key unroll rule is proven in NonDetMonadLemmas - whileLoop_unroll - the while loop is equivalent to checking whether the condition currently holds, and if it does, performing one iteration of the loop plus the while loop. Isabelle wouldn't accept this as a recursive definition by default, thus the complicated definition.
The AutoCorres quickstart manual gives some example proofs involving whileLoop, e.g. in Chapter 2
from l4v.
The AutoCorres examples directory contains the examples in the quickstart tutorial, as well as a few other ones. An easy example of how to reason about whileLoop is in https://github.com/seL4/l4v/blob/master/tools/autocorres/tests/examples/ListRev.thy
While this is generated from a C file, the proof at the bottom is purely monadic.
from l4v.
Related Issues (20)
- should `corres_cases` also do case distinction on `if`?
- Cannot load theory file "l4v/proof/crefine/autocorres-test/Refine_C.thy" HOT 4
- Investigate adding `projectKOs` to the simp set HOT 1
- Remove instances of `UNIV <\inter>` from CRefine
- Cleanup CRefine Wellformed_C
- Cleanup post-x64 comments
- Document mysterious useful comments for ctac and ceqv
- SIMPL: don't print `_'proc`
- CI artifact upload uses clashing artifact names
- Methods such as monadic_rewrite_symb_exec_r should warn that discharging side-conditions failed
- Safer vcg in CRefine
- Sub-term to free variable lifting tactic
- Have wp warn when resulting in a goal with a schematic assumption. HOT 15
- Some way of blocking `simp` from unifying schematics HOT 1
- Decide on style for `[def]rule_tac ... [and ...] in ...` HOT 7
- Investigate further use of `none_top/none_bot` in the proofs
- Enhance C Parser to allow named array bounds HOT 3
- Can Isabelle's custom functions and data types be combined with the C-parser?
- take L4V_PLAT into account in rebuilds
- support strongest-postcondition reasoning HOT 1
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 l4v.