prove axiom fn in tlb.rs#570
Conversation
|
This looks a bit strange. The |
| pub mappings: Set<Mapping>, | ||
| pub tracked struct TlbModel { | ||
| pub ghost pending: Seq<TlbFlushOp>, | ||
| pub ghost mappings: Set<Mapping>, |
There was a problem hiding this comment.
This looks weird to me, why do you want to keep ghost inside tracked?
| } | ||
|
|
||
| pub axiom fn tracked_update(&mut self, pt: PageTableView, va: Vaddr) | ||
| pub proof fn tracked_update(tracked &mut self, pt: PageTableView, va: Vaddr) |
There was a problem hiding this comment.
The idiomatic way for doing so is to define a pure function, e.g., pub open spec fn update() and then define pub axiom fn tracked_update() to lift the spec to tracked mode.
Because this proof fn does not prove anything (you just want to do some tracked operations), there is no need to define the body.
I also left some comments. |
This PR removes two axiom-backed tracked helpers from
ostd/specs/mm/tlb.rsby providing concrete proof implementations for them.