reasoning with mutable data structures
play

Reasoning with Mutable Data Structures Tamara Rezk Javier Blanco F - PowerPoint PPT Presentation

Reasoning with Mutable Data Structures Tamara Rezk Javier Blanco F A MAF Universidad Nacional de Crdoba, Argentina Reasoning with Mutable Data Structures p. 1/16 This talk Motivation: a problem (pointer variables aliasing) Reynolds


  1. Reasoning with Mutable Data Structures Tamara Rezk Javier Blanco F A MAF Universidad Nacional de Córdoba, Argentina Reasoning with Mutable Data Structures– p. 1/16

  2. This talk Motivation: a problem (pointer variables aliasing) Reynolds’ Logic More problems (reasoning with the logic), more motivations Method to implement pointer-programs Case study Conclusions Reasoning with Mutable Data Structures– p. 2/16

  3. � � � ✠ � ✠ � ☛ ✡ ✡ ✡ � ✠ � ✟ ✁ ✄ ✡ ✡ ✁ ✂ ✄ ✂ � ✁ ✝ ✁ ✞ ✄ ☎ ✝ ✞ � ✡ Aliasing everywhere ✂✆☎ Reasoning with Mutable Data Structures– p. 3/16

  4. � ☛ � ✠ � ✡ ✡ ✡ � ✁ ✠ � ✠ � ✡ ✡ ✟ � � � ✁ ✂ ✄ ✂ � ✁ ✝ ✄ ✞ ✄ ☎ ✝ ✞ � ✁ ✡ Aliasing everywhere ✂✆☎ � � � � � � � � Reasoning with Mutable Data Structures– p. 3/16

  5. � ✠ � ✠ � ✡ ✡ ✡ � ✁ ✠ � ✡ ✡ ✡ � ✟ � ☛ � ✁ ✂ ✄ ✂ � ✁ ✝ ✄ ✞ ✄ ☎ ✝ ✞ � ✁ � Aliasing everywhere ✂✆☎ � � � � � � � � � � � � � � � � � Reasoning with Mutable Data Structures– p. 3/16

  6. ✡ � ✠ � ✡ ✡ ✡ ✠ � ✡ � ☛ � � ✠ � ✡ � ✟ ✁ ✞ ✁ ✄ ✝ ✂ � ✁ ✄ ✂ ☎ ✝ ✞ � ✁ ✄ � Aliasing everywhere ✂✆☎ � � � � � � � � � � � � � � � � � � � � � � � � � Reasoning with Mutable Data Structures– p. 3/16

  7. ✡ � ✡ ✡ ✡ ✟ � ✠ � ✡ � ☛ � � ✠ � ✡ � ✠ ✁ ✞ ✁ ✄ ✝ ✂ � ✁ ✄ ✂ ☎ ✝ ✞ � ✁ ✄ � Aliasing everywhere ✂✆☎ � � � � � � � � � � � � � � � � � � � � � � � � � Reasoning with Mutable Data Structures– p. 3/16

  8. � � ✁ � ✝ � ✝ ✟ � ✠ � ☛ ✠ ✟ � ✠ � ✠ � ✟ � ✠ � � ☛ ✆ ✝ ✠ ✆ ☛ ✁ ✂ ✄ ☎ � ✆ ✁ ☛ ✝ ☛ ✁ ✟ ☛ ✡ ✞ ☎ ✝ � ✡ ✞ ☎ ✆ ✁ � Aliasing everywhere � � � � � � � � � � � � � � � � � Reasoning with Mutable Data Structures– p. 3/16

  9. � � ✁ � ✝ � ✝ ✟ � ✠ � ☛ ✠ ✟ � ✠ � ✠ � ✟ � ✠ � � ☛ ✆ ✝ ✠ ✆ ☛ ✁ ✂ ✄ ☎ � ✆ ✁ ☛ ✝ ☛ ✁ ✟ ☛ ✡ ✞ ☎ ✝ � ✡ ✞ ☎ ✆ ✁ � Aliasing everywhere � � � � � � � � � � � � � � � � � Reasoning with Mutable Data Structures– p. 3/16

  10. ☎ � ✝ � ✁ ✆ ✟ ✝ ✟ ✁ ✆ ☎ ✞ ✡ � ✝ ✞ ✝ ✆ ☛ ✁ ✂ ✄ ☎ � ✁ ✡ ☛ ✝ ☛ ✆ ✁ ☛ � How to verify the program? Reasoning with Mutable Data Structures– p. 4/16

  11. ☎ ✤ ✄ ☎ ✥ ✖ ✘ ✜ ✞ ✣ ✢ ☛ ✘ ✚ ✁ ✖ ✘ ✞ ✜ ✛ � ✄ ✘ ✞ ✡ ✘ ✚ ✡ ☛ ✛ ☛ ✢ ✣ ✞ ✘ ✡ ✡ ✚ ✛ ✖ � ✡ ✞ ✟ ✡ � ★ ✁ ✟ ✡ ✖ ✘ ✆ ✦✧ ✄ ✡ ✟ ✁ ✟ ✁ ✂ ☎ ✚ ☎ ✄ ✘ ✞ ✡ ✞ ✟ ✘ ✞ ☎ ✝ � ✁ ✆ ✟ ✝ ✟ ✁ ✆ ☎ ✞ ✡ � ✝ ✞ ✝ ✆ ☛ ✁ ✂ ✄ ☎ � ✁ ✡ ☛ ✝ ☛ ✆ ✁ ☛ � � ✚ ✟ ✡ ✒ ✘ ✕ ☞ ✟ ✖ ✡ ✆ ✗ ☎ ✚ ✞ ✡ ✎ ✍ ✁ ✝ ✂ ✄ ☎ ✆ ✄ ✁ ✞ ✌ ✟ ✟ � ✄ ☎ ☞ ☎ Reasoning with Mutable Data Structures– p. 4/16 How to verify the program? ✄ ✙✘ ✚✪✩ ✝✔✓ ✆✑✏ ✠☛✡ ✄ ✙✘

  12. ☎ ✤ ✄ ☎ ✥ ✖ ✘ ✜ ✞ ✣ ✢ ☛ ✘ ✚ ✁ ✖ ✘ ✞ ✜ ✛ � ✄ ✘ ✞ ✡ ✘ ✚ ✡ ☛ ✛ ☛ ✢ ✣ ✞ ✘ ✡ ✡ ✚ ✛ ✖ � ✡ ✞ ✟ ✡ � ★ ✁ ✟ ✡ ✖ ✘ ✆ ✦✧ ✄ ✡ ✟ ✁ ✟ ✁ ✂ ☎ ✚ ☎ ✄ ✘ ✞ ✡ ✞ ✟ ✘ ✞ ☎ ✝ � ✁ ✆ ✟ ✝ ✟ ✁ ✆ ☎ ✞ ✡ � ✝ ✞ ✝ ✆ ☛ ✁ ✂ ✄ ☎ � ✁ ✡ ☛ ✝ ☛ ✆ ✁ ☛ � � ✚ ✟ ✡ ✒ ✘ ✕ ☞ ✟ ✖ ✡ ✆ ✗ ☎ ✚ ✞ ✡ ✎ ✍ ✁ ✝ ✂ ✄ ☎ ✆ ✄ ✁ ✞ ✌ ✟ ✟ � ✄ ☎ ☞ ☎ Reasoning with Mutable Data Structures– p. 4/16 How to verify the program? ✄ ✙✘ ✚✪✩ ✝✔✓ ✆✑✏ ✠☛✡ ✄ ✙✘

  13. ☛ ✦✧ ✥ ☎ ✄ ✘ ✞ ✡ ✡ ✘ ✟ ✁ ✟ ✁ ✂ ✄ ☎ ✖ ✜ ✄ ✘ ✡ � ✛ ☛ ✢ ✣ ✞ ✚ ✤ ✞ ✖ ✁ ✚ ✘ ☛ ✢ ✣ ☎ ✘ ✜ ✟ ✠ ✞ ✡ ✚ ✘ ✡ � � ✛ ✠ � ✡ ✡ ✡ ☛ � ☎ ✖ ✞ ✡ ✡ ✞ ✚ ✆ ✚ ✘ ✖ ✟ � ✁ ★ � ✡ ✟ ✞ � ✘ ✡ � ✟ ✞ ☎ ✆ ✁ ✟ ✝ ✆ � ✁ � ✝ � ✝ � ✁ ✡ ✝ ✄ ✁ ☛ ✁ ✂ ✄ ☎ � ✆ ☛ ☎ ✝ ☛ ✆ ✁ ☛ ✡ ✞ ✂ ☎ ✞ ✡ ✟ ✖ ✆ ✗ ☎ � ✞ ✚ ☞ ✘ ✡ ✟ ✛ ☎ ✄ ✘ ✟ ✕ ✆ ✄ ✄ ✁ ✝ ✞ ✟ ✟ ✄ ☎ ✁ ☞ ✌ ✍ ✡ ✎ ✂ ✒ ✠ Reasoning with Mutable Data Structures– p. 4/16 How to verify the program? ✄ ✙✘ ✚✪✩ ✝✔✓ ✆✑✏ ✠☛✡ ✄ ✙✘

  14. ☛ ✢ ✁ ✄ ✘ ✞ ✡ ✦✧ ✡ ✟ ✟ ✥ ✁ ✂ ✄ ☎ ☎ ✄ ✘ ☎ ✖ ✡ ✖ ✛ � ✣ ✞ ✚ ✘ ✤ ✁ ✘ ✚ ✘ ☛ ✢ ✣ ✞ ✜ ✞ ✞ ✡ � ✚ ✘ ✡ � ✟ � ✠ ✡ ✞ ✡ ✡ ☛ � ✠ � ✠ ✡ � ✚ ★ ✆ ✚ ✘ ✖ ✡ ✟ ✁ � ☎ ✡ ✟ ✞ � � ✖ ✛ ☛ ✘ � ✆ ✞ ☎ ✆ ✁ ✟ ✝ ✟ ✁ � � ✝ � ✝ � ✁ ✂ ✡ ✝ ☎ ✁ ☛ ✁ ✂ ✄ ☎ � ✆ ☛ ☎ ✝ ☛ ✆ ✁ ☛ ✡ ✞ ✄ ✆ ✜ ✘ ✆ ✗ ☎ ✍ ✁ ✞ ✡ ✚ ✡ ✟ ✟ ✛ ☎ ✄ ✘ ✞ ✡ ✖ ✟ ✄ ☎ ✁ ✝ ✞ ✟ ✟ ✄ ✄ ☞ ☞ ✌ ✍ ✡ ✎ ✄ ✒ ✂ ✕ � Reasoning with Mutable Data Structures– p. 4/16 How to verify the program? ✄ ✙✘ ✚✪✩ ✝✔✓ ✆✑✏ ✠☛✡ ✄ ✙✘

  15. � Separation Logic Extension of Hoare logic (J.Reynolds, P .O’Hearn). No need of using complex reachability predicates. Novel ”separating conjunction” : New ways of assertion (predicate ”points-to” ). Rules for heap manipulation commands Restrictions over expressions (no pointer references, due to variables substitution) Reasoning with Mutable Data Structures– p. 5/16

  16. � Separation Logic Extension of Hoare logic (J.Reynolds, P .O’Hearn). No need of using complex reachability predicates. Novel ”separating conjunction” : New ways of assertion (predicate ”points-to” ). Rules for heap manipulation commands Restrictions over expressions (no pointer references, due to variables substitution) Reasoning with Mutable Data Structures– p. 5/16

  17. � Separation Logic Extension of Hoare logic (J.Reynolds, P .O’Hearn). No need of using complex reachability predicates. Novel ”separating conjunction” : . New ways of assertion (predicate ”points-to” ). Rules for heap manipulation commands. Restrictions over expressions (no pointer references, due to variables substitution) Reasoning with Mutable Data Structures– p. 5/16

  18. � Separation Logic Extension of Hoare logic (J.Reynolds, P .O’Hearn). No need of using complex reachability predicates. Novel ”separating conjunction” : . New ways of assertion (predicate ”points-to” ). Rules for heap manipulation commands. Restrictions over expressions (no pointer references, due to variables substitution) Reasoning with Mutable Data Structures– p. 5/16

  19. � Separation Logic Extension of Hoare logic (J.Reynolds, P .O’Hearn). No need of using complex reachability predicates. Novel ”separating conjunction” : . New ways of assertion (predicate ”points-to” ). Rules for heap manipulation commands. Restrictions over expressions (no pointer references, due to variables substitution) Reasoning with Mutable Data Structures– p. 5/16

  20. � Separation Logic Extension of Hoare logic (J.Reynolds, P .O’Hearn). No need of using complex reachability predicates. Novel ”separating conjunction” : . New ways of assertion (predicate ”points-to” ). Rules for heap manipulation commands. Restrictions over expressions (no pointer references, due to variables substitution) Reasoning with Mutable Data Structures– p. 5/16

  21. � Separation Logic Extension of Hoare logic (J.Reynolds, P .O’Hearn). No need of using complex reachability predicates. Novel ”separating conjunction” : . New ways of assertion (predicate ”points-to” ). Rules for heap manipulation commands. Restrictions over expressions (no pointer references, due to variables substitution). Reasoning with Mutable Data Structures– p. 5/16

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend