Data Abstraction and Data Refinement
description
Transcript of Data Abstraction and Data Refinement
![Page 1: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/1.jpg)
Data Abstraction and Data Refinement
Adalberto Farias
Alexandre Mota
Augusto Sampaio
![Page 2: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/2.jpg)
Foundations
Abstract Interpretation
Data Refinement
![Page 3: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/3.jpg)
Data Refinement
Relations between global states via concrete operations must be more restrict than via abstract operations
Concrete initialisations, operations and finalisations must be subsets of the corresponding abstract ones.
![Page 4: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/4.jpg)
Data Refinement
Rules using downward simulation (from abstract to concrete)
Rules using upward simulation (from concrete to abstract)
![Page 5: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/5.jpg)
Data Refinement
Rules using downward simulation (from abstract to concrete)
Rules using upward simulation (from concrete to abstract)
data abstraction
![Page 6: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/6.jpg)
Usual ScenarioAbstract
Specification(AS,AI,AOps)
ConcreteSpecification(CS,CI,COps)
Retrieve RefinementRules
YES
NOT
What changes?
Data structures (state, inputs,outputs)Data domainsOperations
![Page 7: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/7.jpg)
Data Abstraction Scenario (Z)Abstract
Specification(AS,AI,AOps)
ConcreteSpecification(CS,CI,COps)
RefinementRules
Retrieve
YES
What changes?
Data structures (state, inputs,outputs)Data domainsOperations
![Page 8: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/8.jpg)
Data Abstraction Scenario (CSP)
AbstractSpecification(AS,AI,AOps)
Retrieve RefinementRules
ConcreteSpecification(CS,CI,COps)
YES
ConcreteSpecification(CS,CI,COps)
AbstractSpecification(AS,AI,AOps) Retrieve
PZA PZ[[Ren]]
FD
Systematic Calculation
![Page 9: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/9.jpg)
Relational Semantics
![Page 10: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/10.jpg)
Casting to Z (no IO)
![Page 11: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/11.jpg)
Abstraction relations
v1
v2
...vn
v1A
v2A
...vn
A
C A
v1
vn
Retrieve
![Page 12: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/12.jpg)
Abstract State and Retrieve
![Page 13: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/13.jpg)
Abstract Schemas (meta schemas)
![Page 14: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/14.jpg)
Casting to Z (with IO)
![Page 15: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/15.jpg)
Abstraction relations C AR
C? A?R?
C! A!R!
![Page 16: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/16.jpg)
Retrieve and Abstract Schemas
![Page 17: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/17.jpg)
Relational Refinement and Process Refinement
![Page 18: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/18.jpg)
Casting to CSP (no IO)
PZ
PZA
![Page 19: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/19.jpg)
Casting to CSP (with IO)
PZ
PZA
![Page 20: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/20.jpg)
Casting to CSP (with IO)
![Page 21: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/21.jpg)
If R is relational (no IO)?
![Page 22: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/22.jpg)
If R is functional (no IO)?
![Page 23: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/23.jpg)
If R,R? or R! are relational (with IO)?
![Page 24: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/24.jpg)
If R,R? or R! are relational (with IO)?
![Page 25: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/25.jpg)
If R,R? and R! are functional (with IO)?
![Page 26: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/26.jpg)
Construction of Abstract Schemas
![Page 27: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/27.jpg)
Abstraction of Declarations
Replacement of concrete types with abstract ones
![Page 28: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/28.jpg)
Abstraction of Predicates
Denoted by the semantic function [[.]]Only specific predicates are really
interpreted
![Page 29: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/29.jpg)
Conformance with Meta Schemas
![Page 30: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/30.jpg)
Example
![Page 31: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/31.jpg)
Calculating Abstraction Relations
![Page 32: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/32.jpg)
Example
![Page 33: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/33.jpg)
Example
![Page 34: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/34.jpg)
Conclusions
Use of Data Refinement instead of Abstract Interpretation
Systematic calculation of abstraction relations
Templates for construction of abstract schemas
Use of FD in process refinement
![Page 35: Data Abstraction and Data Refinement](https://reader035.fdocuments.us/reader035/viewer/2022062500/56815144550346895dbf649f/html5/thumbnails/35.jpg)
Future work
Deeper investigation of process equivalence under FD instead of refinement
The use of data abstraction in automatic verification of data refinements