Data Abstraction and Data Refinement
description
Transcript of Data Abstraction and Data Refinement
Data Abstraction and Data Refinement
Adalberto Farias
Alexandre Mota
Augusto Sampaio
Foundations
Abstract Interpretation
Data Refinement
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.
Data Refinement
Rules using downward simulation (from abstract to concrete)
Rules using upward simulation (from concrete to abstract)
Data Refinement
Rules using downward simulation (from abstract to concrete)
Rules using upward simulation (from concrete to abstract)
data abstraction
Usual ScenarioAbstract
Specification(AS,AI,AOps)
ConcreteSpecification(CS,CI,COps)
Retrieve RefinementRules
YES
NOT
What changes?
Data structures (state, inputs,outputs)Data domainsOperations
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
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
Relational Semantics
Casting to Z (no IO)
Abstraction relations
v1
v2
...vn
v1A
v2A
...vn
A
C A
v1
vn
Retrieve
Abstract State and Retrieve
Abstract Schemas (meta schemas)
Casting to Z (with IO)
Abstraction relations C AR
C? A?R?
C! A!R!
Retrieve and Abstract Schemas
Relational Refinement and Process Refinement
Casting to CSP (no IO)
PZ
PZA
Casting to CSP (with IO)
PZ
PZA
Casting to CSP (with IO)
If R is relational (no IO)?
If R is functional (no IO)?
If R,R? or R! are relational (with IO)?
If R,R? or R! are relational (with IO)?
If R,R? and R! are functional (with IO)?
Construction of Abstract Schemas
Abstraction of Declarations
Replacement of concrete types with abstract ones
Abstraction of Predicates
Denoted by the semantic function [[.]]Only specific predicates are really
interpreted
Conformance with Meta Schemas
Example
Calculating Abstraction Relations
Example
Example
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
Future work
Deeper investigation of process equivalence under FD instead of refinement
The use of data abstraction in automatic verification of data refinements