One recent addition to the Overture project is an Automatic Proof Support system, developed by Sander Vermolen.
In our work we make much use of this system's translator, as well as the proof tactics.
We have contributed in widening the translator VDM++ syntax knowledge, implementing some basic (but essential to have recursive functions translated) operators like hd (head), tl (tail), len (length) and ^(concatenation).
Another contribution is the pre-processing script and parsers, that allow us to automaticaly pre process a VDM++ model to be translated (including its proof obligations), the complete package with source can be found here.
There has been a restructuring of all models, and for that, some of them aren't available yet.
If you are looking for any thing ins specific please contact us.
TWiki's Research/VFS webThe Research/VFS web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.http://wiki.di.uminho.pt/twiki/bin/view/Research/VFSCopyright 2020 by contributing authors2012-07-02T20:55:38ZWebHomehttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebHome2012-07-02T20:55:38ZVerifiable Filesystem The formal methods community has decided to challenge software developers to use formal methods techniques, in order to specify/model "big" software ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebPreferenceshttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebPreferences2009-01-22T17:15:39ZResearch/VFS Web Preferences The following settings are web preferences of the Research/VFS web. These preferences overwrite the site level preferences in ... (last changed by MiguelFerreira)MiguelFerreiraWebReferenceshttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebReferences2008-06-12T11:02:06ZWeb References Flash File System (pdf) Intel Flash File System Core Reference Guide (Version 1) POSIX File Store (GC) (pdf) Morgan and Sufrin's paper ... (last changed by MiguelFerreira)MiguelFerreiraVerifingIntelFlashFilesystemCorehttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/VerifingIntelFlashFilesystemCore2008-06-03T14:57:44ZFile System Layer Models There has been a restructuring of all models, and for that, some of them aren't available yet. If you are looking for any thing ins specific ... (last changed by MiguelFerreira)MiguelFerreiraWebSideBarhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebSideBar2008-06-03T11:13:25ZLinks WebReferences VerifingIntelFlashFilesystemCore VdmHolTranslation MeetingsSummary ResearchStudies NewsFlash WebTopicList WebTopicCreator ... (last changed by MiguelFerreira)MiguelFerreiraNewsFlashhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/NewsFlash2008-06-02T16:28:44ZNews Flash Updated WebReferences MiguelFerreira 2 Jun 2008 Complete Model Restructuring MiguelFerreira 15 May 2008 Refresh at public area projet ... (last changed by MiguelFerreira)MiguelFerreiraVdmHolTranslationhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/VdmHolTranslation2008-05-19T07:04:23ZVDM to HOL model and proof obligation translation One recent addition to the project is an http://www.overturetool.org/twiki/bin/view/Main/AutomaticProof Automatic ... (last changed by MiguelFerreira)MiguelFerreiraWebStatisticshttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebStatistics2007-11-05T11:14:01ZStatistics for Research/VFS Web Month: Topic views: Topic saves: File uploads: Most popular topic views: Top contributors for topic save ... (last changed by TWikiGuest)TWikiGuestWebTopicListhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebTopicList2006-11-15T19:43:52Z (last changed by TWikiContributor)TWikiContributorWebSearchAdvancedhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebSearchAdvanced2006-11-15T19:43:52Z (last changed by TWikiContributor)TWikiContributorWebTopicCreatorhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebTopicCreator2006-11-15T19:43:52Z (last changed by TWikiContributor)TWikiContributorWebIndexhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebIndex2006-11-15T19:43:52Z (last changed by TWikiContributor)TWikiContributorWebSearchhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebSearch2006-11-15T19:43:52Z (last changed by TWikiContributor)TWikiContributorWebChangeshttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebChanges2006-11-15T19:43:52Z (last changed by TWikiContributor)TWikiContributorWebAtomhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebAtom2006-01-24T06:07:58ZTWiki's Research/VFS web (last changed by TWikiContributor)TWikiContributorWebRsshttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebRss2005-03-28T09:40:13Z" else "TWiki's Research/VFS web"}% /Research/VFS (last changed by TWikiContributor)TWikiContributor
Verifiable Filesystem The formal methods community has decided to challenge software developers to use formal methods techniques, in order to specify/model "big" software ...
Research/VFS Web Preferences The following settings are web preferences of the Research/VFS web. These preferences overwrite the site level preferences in ...
Web References Flash File System (pdf) Intel Flash File System Core Reference Guide (Version 1) POSIX File Store (GC) (pdf) Morgan and Sufrin's paper ...
File System Layer Models There has been a restructuring of all models, and for that, some of them aren't available yet. If you are looking for any thing ins specific ...
VDM to HOL model and proof obligation translation One recent addition to the project is an http://www.overturetool.org/twiki/bin/view/Main/AutomaticProof Automatic ...
The formal methods community has decided to challenge software developers to use formal methods techniques, in order to specify/model "big" software systems.
Such software artifacts would then be a part of the Verifiable Software Repository.
One of the challenges released intended to specify the standard POSIX 1003.1, which is in fact an enormous task.
So, Rajeev Joshi and Gerard J. Holzmann have proposed a so-called mini-challenge that focus on building a verifiable file system that follows the POSIX guide lines.
Furthermore, the proponents of the mini-challenge have also introduced a project carried out at NASA Jet Propulsion Laboratory, whose goal is to build such a verifiable file system but designed for use directly in Flash Memories.
The main goal of this project is to respond to such a mini-challenge, taking in account the Flash Memory specific aspects including hardware support for the file system,
following established techniques as well as new insights on how to use and apply formal methods in a system wide development.
Publications
(pdf) Presentation on the VDM-Overture Workshop, FM08, Turku, 26 May 2008
M.A. Ferreira: Verifying Intel (R) Flash File System Core. Master Thesis, Minho University, 2009.
J.N. Oliveira. Hands on a Verification Challenge: Proving a Journaled File System Correct. Inforum 2010 (invited talk), 10-Sep 2010.
J.N. Oliveira and M.A. Ferreira. Alloy Meets the Algebra of Programming: a Case Study. Journal paper. IEEE Trans. on Soft. Engineering, 2012 (in print).
Modeling and Verifying a File System with Journaling
In a simplified approach, we used Alloy and point free manual proofs to build and verify a file system model with journaling functionality. We started with a high level file system model and refined it into a low-level implementation over an array of nodes. See J.N. Oliveira and M.A. Ferreira. Alloy Meets the Algebra of Programming: a Case Study. Journal paper. IEEE Trans. on Soft. Engineering, 2012 (in print) for a full explanation of the Alloy model.
All-in-one Verification Life-cycle
Our approach resorts to the VDMTools proof obligation generator and the VDM to HOL translator developed by Sander Vermolen. The VDM to Alloy conversion is manual. In this "all-in-one" approach, modeling and testing takes place in the VDM phase. Alloy is particularly helpful in finding counter examples to proof obligations.
First approach
Translation diagram:
Read arrows mean hand-translation.
Second approach In the second approach to the project we decided to reduce the complexity of the tool-chain and focus on the two bottom blocks --- Alloy model written in the "navigation-syle" so as to match with PF relation algebraic proofs. This implied that a focus on particular aspects of the problem, namely the journaling mechanism.
Verifying Intel Flash File System Core
File System Layer Models
There has been a restructuring of all models, and for that, some of them aren't available yet.
If you are looking for any thing ins specific please contact us.
The VDMTools generated 13 Proof Obligations, from which:
3 aren't translatable to HOL with the VdmHolTranslator. These can be found in the excluded.pog file
10 where translated to HOL by the VdmHolTranslator. These can be found in the FileSystemLayerAlg.vpp.pog file.
7 of these Proof Obligations where discharged in HOL using the Overture Automated Proof Support
for the remaining 3 Proof Obligations HOL attempted to prove for more than 5 minutes and was manually interrupted.
HOL model and Proof Obligations can be found in the:
FileSystemLayerAlg.vpp.pog.hol (for the unmodified version)
FileSystemLayerAlg.vpp.pog.hol.mod (for the executable version)
HOL (hand written)
Will be published soon
Proof attempts by hand (point free style)
Calculation of weakest pre-condition for preservation of referential integrity invariant on open files can be found here, on Lecture 5 (page 144).
VDM to HOL model and proof obligation translation
One recent addition to the Overture project is an Automatic Proof Support system, developed by Sander Vermolen.
In our work we make much use of this system's translator, as well as the proof tactics.
We have contributed in widening the translator VDM++ syntax knowledge, implementing some basic (but essential to have recursive functions translated) operators like hd (head), tl (tail), len (length) and ^(concatenation).
Another contribution is the pre-processing script and parsers, that allow us to automaticaly pre process a VDM++ model to be translated (including its proof obligations), the complete package with source can be found here.
VDM to HOL model and proof obligation translation One recent addition to the project is an http://www.overturetool.org/twiki/bin/view/Main/AutomaticProof Automatic ...
File System Layer Models There has been a restructuring of all models, and for that, some of them aren't available yet. If you are looking for any thing ins specific ...
Verifiable Filesystem The formal methods community has decided to challenge software developers to use formal methods techniques, in order to specify/model "big" software ...
Research/VFS Web Preferences The following settings are web preferences of the Research/VFS web. These preferences overwrite the site level preferences in ...
Web References Flash File System (pdf) Intel Flash File System Core Reference Guide (Version 1) POSIX File Store (GC) (pdf) Morgan and Sufrin's paper ...
This is a subscription service to be automatically notified by e-mail when topics change in this Research/VFS web. This is a convenient service, so you do not have to come back and check all the time if something has changed. To subscribe, please add a bullet with your WikiName in alphabetical order to this list:
Each TWiki web has an automatic e-mail notification service that sends you an e-mail with links to all of the topics modified since the last alert.
Users subscribe to email notifications using their WikiName or an alternative email address, and can specify the webs/topics they wish to track using one of these bullet list formats:
three spaces * [ webname . ] wikiName - SMTP mail address three spaces * [ webName . ] wikiName three spaces * SMTP mail address three spaces * SMTP mail address : topics three spaces * [ webname . ] wikiName : topics
In the above examples, topics is a space-separated list of topic names. The user may further customize the specific content they will receive using the following formats:
Specify topics without a Web. prefix
Topics must exist in this web.
Topics may be specified using * wildcards
Each topic may optionally be preceded by a '+' or '-' sign. The '+' sign means "subscribe to this topic" (the same as not putting anything). The '-' sign means "unsubscribe" or "don't send notifications regarding this topic". This allows users to elect to filter out certain topics (and their children, to an arbitrary depth). Topic filters ('-') take precedence over topic includes ('+').
Each topic may optionally be followed by an integer in parentheses, indicating the depth of the tree of children below that topic. Changes in all these children will be detected and reported along with changes to the topic itself. Note This uses the TWiki "Topic parent" feature.
Each topic may optionally be immediately followed by an exclamation mark ! or a question mark ? with no intervening spaces, indicating that the topic (and children if there is a tree depth specifier as well) should be mailed out as complete topics instead of change summaries. ! causes the topic to be mailed every time even if there have been no changes, ? will mail the topic only if there have been changes to it. This only makes sense for subscriptions.
For example:
Subscribe Daisy to all changes to topics in this web.
* daisy.cutter@flowers.com
Subscribe Daisy to all changes in all webs that start with Web.
* daisy.cutter@flowers.com: Web*
Subscribe Daisy to changes to topics starting with Petal, and their immediate children, WeedKillers and children to a depth of 3, and all topics that match start with Pretty and end with Flowers e.g. PrettyPinkFlowers
Subscribe Daisy to the full content of NewsLetter whenever it has changed
* daisy@flowers.com: TWiki.NewsLetter?
Subscribe buttercup to NewsLetter and its immediate children, even if it hasn't changed.
* buttercup@flowers.com: TWiki.NewsLetter! (1)
Subscribe GardenGroup (which includes Petunia) to all changed topics under AllnewsLetters to a depth of 3. Then unsubscribe Petunia from the ManureNewsLetter, which she would normally get as a member of GardenGroup? :
A user may be listed many times in the WebNotify topic. Where a user has several lines in WebNotify that all match the same topic, they will only be notified about changes that topic once (though they will still receive individual mails for news topics).
If a TWiki group is listed for notification, the group will be recursively expanded to the e-mail addresses of all members.
Tip: List names in alphabetical order to make it easier to find the names.
Note for System Administrators: Notification is supported by an add-on to the TWiki kernel called the MailerContrib. See the MailerContrib topic for details of how to set up this service.
Note: If you prefer a news feed, point your reader to WebRss (for RSS 1.0 feeds) or WebAtom (for ATOM 1.0 feeds). Learn more at WebRssBase and WebAtomBase, respectively.
Related topics:WebChangesAlert, TWikiUsers, TWikiRegistration
These settings override the defaults for this web only. See full list of defaults with explanation. Many of the settings below are commented out. Remove the # sign to enable a local customisation.
Web-specific background color: (Pick a lighter one of the StandardColors).
Set WEBBGCOLOR = #D0D0D0
Note: This setting is automatically configured when you create a web
Image, URL and alternate tooltip text of web's logo. Note: Don't add your own local logos to the TWikiLogos topic; create your own logos topic instead.
List this web in the SiteMap. If you want the web listed, then set SITEMAPLIST to on, do not set NOSEARCHALL, and add the "what" and "use to..." description for the site map. Use links that include the name of the web, i.e. Research/VFS.Topic links. Note: Unlike other variables, the setting of SITEMAPLIST is not inherited from parent webs. It has to be set in every web that is to be listed in the SiteMap
Set SITEMAPLIST = on
Set SITEMAPWHAT = Verifiable File System
Set SITEMAPUSETO =
Note: Above settings are automatically configured when you create a web
Exclude web from a web="all" search: (Set to on for hidden webs).
Set NOSEARCHALL =
Note: This setting is automatically configured when you create a web
Prevent automatic linking of WikiWords and acronyms (if set to on); link WikiWords (if empty); can be overwritten by web preferences:
#Set NOAUTOLINK =
Note: You can still use the [[...][...]] syntax to link topics if you disabled WikiWord linking. The <noautolink> ... </noautolink> syntax can be used to prevents links within a block of text.
Default template for new topics for this web:
WebTopicEditTemplate? : Default template for new topics in this web. (Site-level is used if topic does not exist)
Comma separated list of forms that can be attached to topics in this web. See TWikiForms for more information.
Set WEBFORMS =
Users or groups who are not / are allowed to view / change / rename topics in the Research/VFS web: (See TWikiAccessControl). Remove the # to enable any of these settings. Remember that an empty setting is a valid setting; setting DENYWEBVIEW to nothing means that anyone can view the web.
Preferences are used as TWikiVariables by enclosing the name in percent signs. Example:
When you write variable %WEBBGCOLOR% , it gets expanded to #D0D0D0
The sequential order of the preference settings is significant. Define preferences that use other preferences first, i.e. set WEBCOPYRIGHT before WIKIWEBMASTER since %WEBCOPYRIGHT% uses the %WIKIWEBMASTER% variable.
You can introduce your own preferences variables and use them in your topics and templates.
TWiki search results for \.*
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS
The Research/VFS web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.en-usCopyright 2020 by contributing authorsTWiki Administrator [webmaster@di.uminho.pt]The contributing authors of TWikiTWikiDIUM.Research/VFS
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS
/twiki/pub/Main/LocalLogos/um_eengP.jpgWebHome
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebHome
Verifiable Filesystem The formal methods community has decided to challenge software developers to use formal methods techniques, in order to specify/model "big" software ... (last changed by JoseNunoOliveira)2012-07-02T20:55:38ZJoseNunoOliveiraWebPreferences
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebPreferences
Research/VFS Web Preferences The following settings are web preferences of the Research/VFS web. These preferences overwrite the site level preferences in ... (last changed by MiguelFerreira)2009-01-22T17:15:39ZMiguelFerreiraWebReferences
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebReferences
Web References Flash File System (pdf) Intel Flash File System Core Reference Guide (Version 1) POSIX File Store (GC) (pdf) Morgan and Sufrin's paper ... (last changed by MiguelFerreira)2008-06-12T11:02:06ZMiguelFerreiraVerifingIntelFlashFilesystemCore
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/VerifingIntelFlashFilesystemCore
File System Layer Models There has been a restructuring of all models, and for that, some of them aren't available yet. If you are looking for any thing ins specific ... (last changed by MiguelFerreira)2008-06-03T14:57:44ZMiguelFerreiraWebSideBar
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebSideBar
Links WebReferences VerifingIntelFlashFilesystemCore VdmHolTranslation MeetingsSummary ResearchStudies NewsFlash WebTopicList WebTopicCreator ... (last changed by MiguelFerreira)2008-06-03T11:13:25ZMiguelFerreiraNewsFlash
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/NewsFlash
News Flash Updated WebReferences MiguelFerreira 2 Jun 2008 Complete Model Restructuring MiguelFerreira 15 May 2008 Refresh at public area projet ... (last changed by MiguelFerreira)2008-06-02T16:28:44ZMiguelFerreiraVdmHolTranslation
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/VdmHolTranslation
VDM to HOL model and proof obligation translation One recent addition to the project is an http://www.overturetool.org/twiki/bin/view/Main/AutomaticProof Automatic ... (last changed by MiguelFerreira)2008-05-19T07:04:23ZMiguelFerreiraWebChanges
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebChanges
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributorWebIndex
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebIndex
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributorWebSearch
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebSearch
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributorWebSearchAdvanced
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebSearchAdvanced
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributorWebTopicCreator
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebTopicCreator
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributorWebTopicList
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebTopicList
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributorWebAtom
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebAtom
TWiki's Research/VFS web (last changed by TWikiContributor)2006-01-24T06:07:58ZTWikiContributorWebLeftBar
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebLeftBar
" warn "off"}% (last changed by TWikiContributor)2005-03-28T09:40:13ZTWikiContributorWebNotify
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebNotify
TWikiGuest example #64;your.company .WebChangesAlert, ., .TWikiRegistration (last changed by TWikiContributor)2005-03-28T09:40:13ZTWikiContributor
One recent addition to the Overture project is an Automatic Proof Support system, developed by Sander Vermolen.
In our work we make much use of this system's translator, as well as the proof tactics.
We have contributed in widening the translator VDM++ syntax knowledge, implementing some basic (but essential to have recursive functions translated) operators like hd (head), tl (tail), len (length) and ^(concatenation).
Another contribution is the pre-processing script and parsers, that allow us to automaticaly pre process a VDM++ model to be translated (including its proof obligations), the complete package with source can be found here.
There has been a restructuring of all models, and for that, some of them aren't available yet.
If you are looking for any thing ins specific please contact us.
TWiki's Research/VFS webThe Research/VFS web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.http://wiki.di.uminho.pt/twiki/bin/view/Research/VFSCopyright 2020 by contributing authors2012-07-02T20:55:38ZWebHomehttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebHome2012-07-02T20:55:38ZVerifiable Filesystem The formal methods community has decided to challenge software developers to use formal methods techniques, in order to specify/model "big" software ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebPreferenceshttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebPreferences2009-01-22T17:15:39ZResearch/VFS Web Preferences The following settings are web preferences of the Research/VFS web. These preferences overwrite the site level preferences in ... (last changed by MiguelFerreira)MiguelFerreiraWebReferenceshttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebReferences2008-06-12T11:02:06ZWeb References Flash File System (pdf) Intel Flash File System Core Reference Guide (Version 1) POSIX File Store (GC) (pdf) Morgan and Sufrin's paper ... (last changed by MiguelFerreira)MiguelFerreiraVerifingIntelFlashFilesystemCorehttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/VerifingIntelFlashFilesystemCore2008-06-03T14:57:44ZFile System Layer Models There has been a restructuring of all models, and for that, some of them aren't available yet. If you are looking for any thing ins specific ... (last changed by MiguelFerreira)MiguelFerreiraWebSideBarhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebSideBar2008-06-03T11:13:25ZLinks WebReferences VerifingIntelFlashFilesystemCore VdmHolTranslation MeetingsSummary ResearchStudies NewsFlash WebTopicList WebTopicCreator ... (last changed by MiguelFerreira)MiguelFerreiraNewsFlashhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/NewsFlash2008-06-02T16:28:44ZNews Flash Updated WebReferences MiguelFerreira 2 Jun 2008 Complete Model Restructuring MiguelFerreira 15 May 2008 Refresh at public area projet ... (last changed by MiguelFerreira)MiguelFerreiraVdmHolTranslationhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/VdmHolTranslation2008-05-19T07:04:23ZVDM to HOL model and proof obligation translation One recent addition to the project is an http://www.overturetool.org/twiki/bin/view/Main/AutomaticProof Automatic ... (last changed by MiguelFerreira)MiguelFerreiraWebStatisticshttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebStatistics2007-11-05T11:14:01ZStatistics for Research/VFS Web Month: Topic views: Topic saves: File uploads: Most popular topic views: Top contributors for topic save ... (last changed by TWikiGuest)TWikiGuestWebTopicListhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebTopicList2006-11-15T19:43:52Z (last changed by TWikiContributor)TWikiContributorWebSearchAdvancedhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebSearchAdvanced2006-11-15T19:43:52Z (last changed by TWikiContributor)TWikiContributorWebTopicCreatorhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebTopicCreator2006-11-15T19:43:52Z (last changed by TWikiContributor)TWikiContributorWebIndexhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebIndex2006-11-15T19:43:52Z (last changed by TWikiContributor)TWikiContributorWebSearchhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebSearch2006-11-15T19:43:52Z (last changed by TWikiContributor)TWikiContributorWebChangeshttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebChanges2006-11-15T19:43:52Z (last changed by TWikiContributor)TWikiContributorWebAtomhttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebAtom2006-01-24T06:07:58ZTWiki's Research/VFS web (last changed by TWikiContributor)TWikiContributorWebRsshttp://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebRss2005-03-28T09:40:13Z" else "TWiki's Research/VFS web"}% /Research/VFS (last changed by TWikiContributor)TWikiContributor
Verifiable Filesystem The formal methods community has decided to challenge software developers to use formal methods techniques, in order to specify/model "big" software ...
Research/VFS Web Preferences The following settings are web preferences of the Research/VFS web. These preferences overwrite the site level preferences in ...
Web References Flash File System (pdf) Intel Flash File System Core Reference Guide (Version 1) POSIX File Store (GC) (pdf) Morgan and Sufrin's paper ...
File System Layer Models There has been a restructuring of all models, and for that, some of them aren't available yet. If you are looking for any thing ins specific ...
VDM to HOL model and proof obligation translation One recent addition to the project is an http://www.overturetool.org/twiki/bin/view/Main/AutomaticProof Automatic ...
The formal methods community has decided to challenge software developers to use formal methods techniques, in order to specify/model "big" software systems.
Such software artifacts would then be a part of the Verifiable Software Repository.
One of the challenges released intended to specify the standard POSIX 1003.1, which is in fact an enormous task.
So, Rajeev Joshi and Gerard J. Holzmann have proposed a so-called mini-challenge that focus on building a verifiable file system that follows the POSIX guide lines.
Furthermore, the proponents of the mini-challenge have also introduced a project carried out at NASA Jet Propulsion Laboratory, whose goal is to build such a verifiable file system but designed for use directly in Flash Memories.
The main goal of this project is to respond to such a mini-challenge, taking in account the Flash Memory specific aspects including hardware support for the file system,
following established techniques as well as new insights on how to use and apply formal methods in a system wide development.
Publications
(pdf) Presentation on the VDM-Overture Workshop, FM08, Turku, 26 May 2008
M.A. Ferreira: Verifying Intel (R) Flash File System Core. Master Thesis, Minho University, 2009.
J.N. Oliveira. Hands on a Verification Challenge: Proving a Journaled File System Correct. Inforum 2010 (invited talk), 10-Sep 2010.
J.N. Oliveira and M.A. Ferreira. Alloy Meets the Algebra of Programming: a Case Study. Journal paper. IEEE Trans. on Soft. Engineering, 2012 (in print).
Modeling and Verifying a File System with Journaling
In a simplified approach, we used Alloy and point free manual proofs to build and verify a file system model with journaling functionality. We started with a high level file system model and refined it into a low-level implementation over an array of nodes. See J.N. Oliveira and M.A. Ferreira. Alloy Meets the Algebra of Programming: a Case Study. Journal paper. IEEE Trans. on Soft. Engineering, 2012 (in print) for a full explanation of the Alloy model.
All-in-one Verification Life-cycle
Our approach resorts to the VDMTools proof obligation generator and the VDM to HOL translator developed by Sander Vermolen. The VDM to Alloy conversion is manual. In this "all-in-one" approach, modeling and testing takes place in the VDM phase. Alloy is particularly helpful in finding counter examples to proof obligations.
First approach
Translation diagram:
Read arrows mean hand-translation.
Second approach In the second approach to the project we decided to reduce the complexity of the tool-chain and focus on the two bottom blocks --- Alloy model written in the "navigation-syle" so as to match with PF relation algebraic proofs. This implied that a focus on particular aspects of the problem, namely the journaling mechanism.
Verifying Intel Flash File System Core
File System Layer Models
There has been a restructuring of all models, and for that, some of them aren't available yet.
If you are looking for any thing ins specific please contact us.
The VDMTools generated 13 Proof Obligations, from which:
3 aren't translatable to HOL with the VdmHolTranslator. These can be found in the excluded.pog file
10 where translated to HOL by the VdmHolTranslator. These can be found in the FileSystemLayerAlg.vpp.pog file.
7 of these Proof Obligations where discharged in HOL using the Overture Automated Proof Support
for the remaining 3 Proof Obligations HOL attempted to prove for more than 5 minutes and was manually interrupted.
HOL model and Proof Obligations can be found in the:
FileSystemLayerAlg.vpp.pog.hol (for the unmodified version)
FileSystemLayerAlg.vpp.pog.hol.mod (for the executable version)
HOL (hand written)
Will be published soon
Proof attempts by hand (point free style)
Calculation of weakest pre-condition for preservation of referential integrity invariant on open files can be found here, on Lecture 5 (page 144).
VDM to HOL model and proof obligation translation
One recent addition to the Overture project is an Automatic Proof Support system, developed by Sander Vermolen.
In our work we make much use of this system's translator, as well as the proof tactics.
We have contributed in widening the translator VDM++ syntax knowledge, implementing some basic (but essential to have recursive functions translated) operators like hd (head), tl (tail), len (length) and ^(concatenation).
Another contribution is the pre-processing script and parsers, that allow us to automaticaly pre process a VDM++ model to be translated (including its proof obligations), the complete package with source can be found here.
VDM to HOL model and proof obligation translation One recent addition to the project is an http://www.overturetool.org/twiki/bin/view/Main/AutomaticProof Automatic ...
File System Layer Models There has been a restructuring of all models, and for that, some of them aren't available yet. If you are looking for any thing ins specific ...
Verifiable Filesystem The formal methods community has decided to challenge software developers to use formal methods techniques, in order to specify/model "big" software ...
Research/VFS Web Preferences The following settings are web preferences of the Research/VFS web. These preferences overwrite the site level preferences in ...
Web References Flash File System (pdf) Intel Flash File System Core Reference Guide (Version 1) POSIX File Store (GC) (pdf) Morgan and Sufrin's paper ...
This is a subscription service to be automatically notified by e-mail when topics change in this Research/VFS web. This is a convenient service, so you do not have to come back and check all the time if something has changed. To subscribe, please add a bullet with your WikiName in alphabetical order to this list:
Each TWiki web has an automatic e-mail notification service that sends you an e-mail with links to all of the topics modified since the last alert.
Users subscribe to email notifications using their WikiName or an alternative email address, and can specify the webs/topics they wish to track using one of these bullet list formats:
three spaces * [ webname . ] wikiName - SMTP mail address three spaces * [ webName . ] wikiName three spaces * SMTP mail address three spaces * SMTP mail address : topics three spaces * [ webname . ] wikiName : topics
In the above examples, topics is a space-separated list of topic names. The user may further customize the specific content they will receive using the following formats:
Specify topics without a Web. prefix
Topics must exist in this web.
Topics may be specified using * wildcards
Each topic may optionally be preceded by a '+' or '-' sign. The '+' sign means "subscribe to this topic" (the same as not putting anything). The '-' sign means "unsubscribe" or "don't send notifications regarding this topic". This allows users to elect to filter out certain topics (and their children, to an arbitrary depth). Topic filters ('-') take precedence over topic includes ('+').
Each topic may optionally be followed by an integer in parentheses, indicating the depth of the tree of children below that topic. Changes in all these children will be detected and reported along with changes to the topic itself. Note This uses the TWiki "Topic parent" feature.
Each topic may optionally be immediately followed by an exclamation mark ! or a question mark ? with no intervening spaces, indicating that the topic (and children if there is a tree depth specifier as well) should be mailed out as complete topics instead of change summaries. ! causes the topic to be mailed every time even if there have been no changes, ? will mail the topic only if there have been changes to it. This only makes sense for subscriptions.
For example:
Subscribe Daisy to all changes to topics in this web.
* daisy.cutter@flowers.com
Subscribe Daisy to all changes in all webs that start with Web.
* daisy.cutter@flowers.com: Web*
Subscribe Daisy to changes to topics starting with Petal, and their immediate children, WeedKillers and children to a depth of 3, and all topics that match start with Pretty and end with Flowers e.g. PrettyPinkFlowers
Subscribe Daisy to the full content of NewsLetter whenever it has changed
* daisy@flowers.com: TWiki.NewsLetter?
Subscribe buttercup to NewsLetter and its immediate children, even if it hasn't changed.
* buttercup@flowers.com: TWiki.NewsLetter! (1)
Subscribe GardenGroup (which includes Petunia) to all changed topics under AllnewsLetters to a depth of 3. Then unsubscribe Petunia from the ManureNewsLetter, which she would normally get as a member of GardenGroup? :
A user may be listed many times in the WebNotify topic. Where a user has several lines in WebNotify that all match the same topic, they will only be notified about changes that topic once (though they will still receive individual mails for news topics).
If a TWiki group is listed for notification, the group will be recursively expanded to the e-mail addresses of all members.
Tip: List names in alphabetical order to make it easier to find the names.
Note for System Administrators: Notification is supported by an add-on to the TWiki kernel called the MailerContrib. See the MailerContrib topic for details of how to set up this service.
Note: If you prefer a news feed, point your reader to WebRss (for RSS 1.0 feeds) or WebAtom (for ATOM 1.0 feeds). Learn more at WebRssBase and WebAtomBase, respectively.
Related topics:WebChangesAlert, TWikiUsers, TWikiRegistration
These settings override the defaults for this web only. See full list of defaults with explanation. Many of the settings below are commented out. Remove the # sign to enable a local customisation.
Web-specific background color: (Pick a lighter one of the StandardColors).
Set WEBBGCOLOR = #D0D0D0
Note: This setting is automatically configured when you create a web
Image, URL and alternate tooltip text of web's logo. Note: Don't add your own local logos to the TWikiLogos topic; create your own logos topic instead.
List this web in the SiteMap. If you want the web listed, then set SITEMAPLIST to on, do not set NOSEARCHALL, and add the "what" and "use to..." description for the site map. Use links that include the name of the web, i.e. Research/VFS.Topic links. Note: Unlike other variables, the setting of SITEMAPLIST is not inherited from parent webs. It has to be set in every web that is to be listed in the SiteMap
Set SITEMAPLIST = on
Set SITEMAPWHAT = Verifiable File System
Set SITEMAPUSETO =
Note: Above settings are automatically configured when you create a web
Exclude web from a web="all" search: (Set to on for hidden webs).
Set NOSEARCHALL =
Note: This setting is automatically configured when you create a web
Prevent automatic linking of WikiWords and acronyms (if set to on); link WikiWords (if empty); can be overwritten by web preferences:
#Set NOAUTOLINK =
Note: You can still use the [[...][...]] syntax to link topics if you disabled WikiWord linking. The <noautolink> ... </noautolink> syntax can be used to prevents links within a block of text.
Default template for new topics for this web:
WebTopicEditTemplate? : Default template for new topics in this web. (Site-level is used if topic does not exist)
Comma separated list of forms that can be attached to topics in this web. See TWikiForms for more information.
Set WEBFORMS =
Users or groups who are not / are allowed to view / change / rename topics in the Research/VFS web: (See TWikiAccessControl). Remove the # to enable any of these settings. Remember that an empty setting is a valid setting; setting DENYWEBVIEW to nothing means that anyone can view the web.
Preferences are used as TWikiVariables by enclosing the name in percent signs. Example:
When you write variable %WEBBGCOLOR% , it gets expanded to #D0D0D0
The sequential order of the preference settings is significant. Define preferences that use other preferences first, i.e. set WEBCOPYRIGHT before WIKIWEBMASTER since %WEBCOPYRIGHT% uses the %WIKIWEBMASTER% variable.
You can introduce your own preferences variables and use them in your topics and templates.
TWiki search results for \.*
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS
The Research/VFS web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.en-usCopyright 2020 by contributing authorsTWiki Administrator [webmaster@di.uminho.pt]The contributing authors of TWikiTWikiDIUM.Research/VFS
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS
/twiki/pub/Main/LocalLogos/um_eengP.jpgWebHome
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebHome
Verifiable Filesystem The formal methods community has decided to challenge software developers to use formal methods techniques, in order to specify/model "big" software ... (last changed by JoseNunoOliveira)2012-07-02T20:55:38ZJoseNunoOliveiraWebPreferences
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebPreferences
Research/VFS Web Preferences The following settings are web preferences of the Research/VFS web. These preferences overwrite the site level preferences in ... (last changed by MiguelFerreira)2009-01-22T17:15:39ZMiguelFerreiraWebReferences
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebReferences
Web References Flash File System (pdf) Intel Flash File System Core Reference Guide (Version 1) POSIX File Store (GC) (pdf) Morgan and Sufrin's paper ... (last changed by MiguelFerreira)2008-06-12T11:02:06ZMiguelFerreiraVerifingIntelFlashFilesystemCore
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/VerifingIntelFlashFilesystemCore
File System Layer Models There has been a restructuring of all models, and for that, some of them aren't available yet. If you are looking for any thing ins specific ... (last changed by MiguelFerreira)2008-06-03T14:57:44ZMiguelFerreiraWebSideBar
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebSideBar
Links WebReferences VerifingIntelFlashFilesystemCore VdmHolTranslation MeetingsSummary ResearchStudies NewsFlash WebTopicList WebTopicCreator ... (last changed by MiguelFerreira)2008-06-03T11:13:25ZMiguelFerreiraNewsFlash
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/NewsFlash
News Flash Updated WebReferences MiguelFerreira 2 Jun 2008 Complete Model Restructuring MiguelFerreira 15 May 2008 Refresh at public area projet ... (last changed by MiguelFerreira)2008-06-02T16:28:44ZMiguelFerreiraVdmHolTranslation
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/VdmHolTranslation
VDM to HOL model and proof obligation translation One recent addition to the project is an http://www.overturetool.org/twiki/bin/view/Main/AutomaticProof Automatic ... (last changed by MiguelFerreira)2008-05-19T07:04:23ZMiguelFerreiraWebChanges
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebChanges
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributorWebIndex
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebIndex
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributorWebSearch
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebSearch
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributorWebSearchAdvanced
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebSearchAdvanced
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributorWebTopicCreator
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebTopicCreator
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributorWebTopicList
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebTopicList
(last changed by TWikiContributor)2006-11-15T19:43:52ZTWikiContributorWebAtom
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebAtom
TWiki's Research/VFS web (last changed by TWikiContributor)2006-01-24T06:07:58ZTWikiContributorWebLeftBar
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebLeftBar
" warn "off"}% (last changed by TWikiContributor)2005-03-28T09:40:13ZTWikiContributorWebNotify
http://wiki.di.uminho.pt/twiki/bin/view/Research/VFS/WebNotify
TWikiGuest example #64;your.company .WebChangesAlert, ., .TWikiRegistration (last changed by TWikiContributor)2005-03-28T09:40:13ZTWikiContributor