1 / 8

Towards Using Constructive Type Theory for Verifiable Modular Transformations

Towards Using Constructive Type Theory for Verifiable Modular Transformations. Steffen Zschaler , Iman Poernomo , Jeffrey Terrell FREECO’11 Lancaster, 26 July 2011. Motivation. Object-Relational Mappings Classes & Attributes: A Table for every Class A column for every attribute

laird
Télécharger la présentation

Towards Using Constructive Type Theory for Verifiable Modular Transformations

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Towards Using Constructive Type Theory for VerifiableModular Transformations Steffen Zschaler, ImanPoernomo, Jeffrey Terrell FREECO’11 Lancaster, 26 July 2011

  2. Motivation Object-Relational Mappings • Classes & Attributes: • A Table for every Class • A column for every attribute • Associations • Model with foreign keys • Many-to-many: Additional table • One-to-one: May merge tables • Inheritance • Model with foreign keys  use joins for every query • Model with one global table  denormalisation • Would like choice • Require modular transformation • Require contracts to make composition safe (c) Steffen Zschaler

  3. Constructive Type Theory 101 a : T • Example types • Basic types: int, String, ... • Function types: T1 -> T2 • Dependent types: •  x : T1. T2(x) •  x : T1. T2(x) • Curry–Howard isomorphism: • Can interpret instances of types as proofs (c) Steffen Zschaler

  4. Model Transformations • Transform source models into target models • Source model instance of MMS • Target model instance of MMT • Can specify as a forall-exists type: •  s: MMS. Pre s   t : MMT. Post s t (c) Steffen Zschaler

  5. Composing Transformations  trans : MMS  MMT  Prop.  proof : ( s: MMS.  t: MMT. trans s t  ...).  s: MMS. Pre s   t : MMT. Post s t  trans s t Formal description of dependencies between transformations – contract (c) Steffen Zschaler

  6. Structure of Contracts Three types of statements • Requirements on what trans must ensure • Conjoin statements that refer to properties of t and no further  clauses  s: MMS.  t: MMT. trans s t  SID s = TID t • Requirements on what trans must not constrain • Conjoin statements that equate properties of t with all-quantified variables  s: MMS.  n: NAT. t: MMT. trans s t  TID t = n • Assumptions trans may make • Precedent of an implication  s: MMS.  t: MMT. assume s t  trans s t (c) Steffen Zschaler

  7. Conclusions & Outlook • Contracts are important to make composition safe • Higher-order type theory can be used to express such contracts for transformations • Initial work, more research needed • Larger, more complex examples • Different composition strategies • Integration with main-stream transformation languages (c) Steffen Zschaler

  8. Thank you for your Attention! (c) Steffen Zschaler

More Related