[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"detail-sidebar-cat-0-en-105":3,"doc-seo-144550-105":59,"doc-detail-144550-en":130},{"code":4,"msg":5,"data":6},0,"success",[7,13,18,23,28,33,38,43,48,51,55],{"id":8,"doc_module":4,"doc_module_name":9,"category_name":10,"show_sort_weight":11,"slug":12},1,"Document","Story & Novel",90,"story-novel",{"id":14,"doc_module":4,"doc_module_name":9,"category_name":15,"show_sort_weight":16,"slug":17},2,"Literature",80,"literature",{"id":19,"doc_module":4,"doc_module_name":9,"category_name":20,"show_sort_weight":21,"slug":22},4,"Exam",70,"exam",{"id":24,"doc_module":4,"doc_module_name":9,"category_name":25,"show_sort_weight":26,"slug":27},5,"Comic",60,"comic",{"id":29,"doc_module":4,"doc_module_name":9,"category_name":30,"show_sort_weight":31,"slug":32},6,"Technology",50,"technology",{"id":34,"doc_module":4,"doc_module_name":9,"category_name":35,"show_sort_weight":36,"slug":37},7,"Healthcare",40,"healthcare",{"id":39,"doc_module":4,"doc_module_name":9,"category_name":40,"show_sort_weight":41,"slug":42},8,"Research & Report",30,"research-report",{"id":44,"doc_module":4,"doc_module_name":9,"category_name":45,"show_sort_weight":46,"slug":47},9,"Religion & Spirituality",20,"religion-spirituality",{"id":46,"doc_module":4,"doc_module_name":9,"category_name":49,"show_sort_weight":46,"slug":50},"World Cup","world-cup",{"id":52,"doc_module":4,"doc_module_name":9,"category_name":53,"show_sort_weight":52,"slug":54},10,"Lifestyle","lifestyle",{"id":56,"doc_module":4,"doc_module_name":9,"category_name":57,"show_sort_weight":24,"slug":58},19,"General","general",{"code":4,"msg":60,"data":61},"ok",{"site_id":62,"language":63,"slug":64,"title":65,"keywords":66,"description":67,"schema_data":68,"social_meta":123,"head_meta":125,"extra_data":127,"updated_unix":129},105,"en","logic-against-ghosts-comparison-of-two-proof-approaches-for-linked-lists","Logic Against Ghosts - Comparison of two Proof Approaches for Linked Lists","","Logic Against Ghosts presents a formal-verification strategy to make IoT software safer by lowering the cost of applying deductive methods. The material focuses on a concrete use case: the Contiki OS linked-list module, highlighting its constraints such as no dynamic allocation, no cycles, and item unicity, alongside a rich list API. It then introduces Frama-C (ACSL and modular analysis) and the WP plugin, explaining how annotated programs generate verification conditions for provers.",{"@graph":69,"@context":122},[70,84,105],{"@type":71,"itemListElement":72},"BreadcrumbList",[73,77,79,82],{"item":74,"name":75,"@type":76,"position":8},"https://docshare.wps.com","Home","ListItem",{"item":78,"name":9,"@type":76,"position":14},"https://docshare.wps.com/document/",{"item":80,"name":40,"@type":76,"position":81},"https://docshare.wps.com/document/research-report/",3,{"item":83,"name":65,"@type":76,"position":19},"https://docshare.wps.com/document/logic-against-ghosts-comparison-of-two-proof-approaches-for-linked-lists/144550/",{"url":83,"name":65,"@type":85,"image":86,"author":91,"headline":65,"publisher":94,"fileFormat":97,"inLanguage":63,"description":67,"dateModified":98,"datePublished":99,"encodingFormat":97,"isAccessibleForFree":100,"interactionStatistic":101},"DigitalDocument",{"url":87,"@type":88,"width":89,"height":90},"https://docshare.wps.com/thumbnails/logic-against-ghosts-comparison-of-two-proof-approaches-for-linked-lists/144550.png","ImageObject",300,407,{"name":92,"@type":93},"Genevieve","Person",{"url":74,"name":95,"@type":96},"DocShare","Organization","application/pdf","2026-10-26","2026-08-26",true,{"@type":102,"interactionType":103,"userInteractionCount":44},"InteractionCounter",{"@type":104},"ViewAction",{"@type":106,"mainEntity":107},"FAQPage",[108,114,118],{"name":109,"@type":110,"acceptedAnswer":111},"What problem does the presentation address for IoT software safety?","Question",{"text":112,"@type":113},"It targets improving IoT software safety by making formal verification more affordable and easier to apply in practice.","Answer",{"name":115,"@type":110,"acceptedAnswer":116},"Why is the Contiki LIST module used as a use case?",{"text":117,"@type":113},"It is a critical linked-list component for low-power IoT devices and provides a generic API used widely across Contiki modules.",{"name":119,"@type":110,"acceptedAnswer":120},"How does the WP plugin work in the deductive verification approach?",{"text":121,"@type":113},"It applies Dijkstra’s weakest precondition calculus to programs annotated with ACSL contracts, producing verification conditions that are then sent to automatic or interactive provers.","https://schema.org",{"og:url":83,"og:type":124,"og:title":65,"og:site_name":95,"og:description":67},"article",{"robots":126,"canonical":83},"index,follow",{"doc_id":128,"site_id":62},144550,1787704755,{"code":4,"msg":5,"data":131},{"doc_id":128,"user_id":132,"nickname":92,"user_avatar":133,"doc_module":4,"category_id":39,"category_name":40,"doc_title":65,"doc_description":67,"doc_content":134,"file_id":135,"file_url":136,"file_type":137,"file_size":138,"view_count":44,"is_deleted":4,"is_public":8,"is_downloadable":8,"audit_status":8,"page_count":139,"language":140,"language_code":63,"site_id":62,"html_lang":63,"table_of_contents":141,"faqs":142,"seo_title":143,"seo_description":67,"update_tm":129,"read_time":144},1374391974585,"https://ap-avatar.wpscdn.com/davatar_276721f389ce27ea32af1340a28f341c","Logic Against Ghosts:  \nComparison of two Proof Approaches for Linked Lists  \nAllan Blanchard Nikolai Kosmatov Frédéric Loulergue – April 10, 2019 @ SAC-SVT 2019  \nMotivation  \nFormal veriﬁcation of IoT SoMware  \nThe VESSEDIA project  \n make IoT soMware safer  \n mainly by making formal veriﬁcation more aﬀordable for this ﬁeld  \n How? Make it easier to apply  \nUse case: the Contiki Operating System  \n an operating system for (low power) IoT devices  \n critical module: the linked-list module  \n2/18 - A. Blanchard, N. Kosmatov, F. Loulergue - April 10, 2019  \nMotivation  \nThe LIST module-Overview  \nProvides a generic list API for linked lists  \n about 176 LOC (excl. MACROS)  \n required by 32 modules of Contiki  \n more than 250 calls in the core part of Contiki  \nSome special features  \n no dynamic allocation  \n does not allow cycles  \n maintain item unicity  \n3/18 - A. Blanchard, N. Kosmatov, F. Loulergue - April 10, 2019  \nMotivation  \nThe LIST module-A rich API  \nstruct list { struct list *next;  \n};  \ntypedef struct list ** list_t;  \nvoid list_init(list_t pLst);  \nint list_length(list_t pLst);  \nvoid * list_head(list_t pLst);  \nvoid * list_tail(list_t pLst);  \nvoid * list_item_next(void *item);  \nvoid * list_pop (list_t pLst);  \nvoid list_push(list_t pLst, void *item);  \nvoid * list_chop(list_t pLst);  \nvoid list_add(list_t pLst, void *item);  \nvoid list_remove(list_t pLst, void *item);  \nvoid list_insert(list_t pLst, void *previtem, void *newitem); void list_copy(list_t dest, list_t src);  \n4/18 - A. Blanchard, N. Kosmatov, F. Loulergue - April 10, 2019  \nMotivation  \nThe LIST module-A rich API  \nstruct list { struct list *next;  \n};  \ntypedef struct list ** list_t;  \nvoid list_init(list_t pLst);  \nint list_length(list_t pLst);  \nvoid * list_head(list_t pLst);  \nvoid * list_tail(list_t pLst);  \nvoid * list_item_next(void *item);  \nvoid * list_pop (list_t pLst);  \nvoid list_push(list_t pLst, void *item);  \nvoid * list_chop(list_t pLst);  \nvoid list_add(list_t pLst, void *item);  \nvoid list_remove(list_t pLst, void *item);  \nvoid list_insert(list_t pLst, void *previtem, void *newitem); void list_copy(list_t dest, list_t src);  \nObservers  \n4/18 - A. Blanchard, N. Kosmatov, F. Loulergue - April 10, 2019  \nMotivation  \nThe LIST module-A rich API  \nstruct list { struct list *next;  \n};  \ntypedef struct list ** list_t;  \nvoid list_init(list_t pLst);  \nint list_length(list_t pLst);  \nvoid * list_head(list_t pLst);  \nvoid * list_tail(list_t pLst);  \nvoid * list_item_next(void *item);  \nvoid * list_pop (list_t pLst);  \nvoid list_push(list_t pLst, void *item);  \nvoid * list_chop(list_t pLst);  \nvoid list_add(list_t pLst, void *item);  \nvoid list_remove(list_t pLst, void *item);  \nvoid list_insert(list_t pLst, void *previtem, void *newitem); void list_copy(list_t dest, list_t src);  \nObservers  \nUpdate list beginning  \n4/18 - A. Blanchard, N. Kosmatov, F. Loulergue - April 10, 2019  \nMotivation  \nThe LIST module-A rich API  \nstruct list { struct list *next;  \n};  \ntypedef struct list ** list_t;  \nvoid list_init(list_t pLst);  \nint list_length(list_t pLst);  \nvoid * list_head(list_t pLst);  \nvoid * list_tail(list_t pLst);  \nvoid * list_item_next(void *item);  \nvoid * list_pop (list_t pLst);  \nvoid list_push(list_t pLst, void *item);  \nvoid * list_chop(list_t pLst);  \nvoid list_add(list_t pLst, void *item);  \nvoid list_remove(list_t pLst, void *item);  \nvoid list_insert(list_t pLst, void *previtem, void *newitem); void list_copy(list_t dest, list_t src);  \nObservers  \nUpdate list beginning  \nUpdate list end  \n4/18 - A. Blanchard, N. Kosmatov, F. Loulergue - April 10, 2019  \nMotivation  \nThe LIST module-A rich API  \nstruct list { struct list *next;  \n};  \ntypedef struct list ** list_t;  \nvoid list_init(list_t pLst);  \nint list_length(list_t pLst);  \nvoid * list_head(list_t pLst);  \nvoid * list_tail(list_t pLst);  \nvoid * list_item_next(void *item);  \nvoid * list_pop (list_t pLst);  \nvoid list_push(list_t pLst, void *item);  \nvoid * list_ch","cbCaieBUzuN5YdKo","https://ap.wps.com/l/cbCaieBUzuN5YdKo","pdf",1150600,31,"English","# Motivation\n## Formal verification for safer IoT software\n# Use case: Contiki OS LIST module\n## LIST module overview and special features\n## LIST module rich API\n## Observers for list state updates\n# Frama-C at a glance\n## ACSL and modular analysis of C code\n# Deductive verification with Frama-C\n## WP plugin and weakest precondition calculus\n## Verification conditions and provers","[{\"question\":\"What problem does the presentation address for IoT software safety?\",\"answer\":\"It targets improving IoT software safety by making formal verification more affordable and easier to apply in practice.\"},{\"question\":\"Why is the Contiki LIST module used as a use case?\",\"answer\":\"It is a critical linked-list component for low-power IoT devices and provides a generic API used widely across Contiki modules.\"},{\"question\":\"How does the WP plugin work in the deductive verification approach?\",\"answer\":\"It applies Dijkstra’s weakest precondition calculus to programs annotated with ACSL contracts, producing verification conditions that are then sent to automatic or interactive provers.\"}]","Logic Against Ghosts - Comparison of two Proof Approaches for Linked Lists | PDF",78]