18
A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato [email protected] ITT Industries, inc @ NRL Washington, DC http://www.cs.stanford.edu/~iliano CS Department, UMBC February 27-28 2003

A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato [email protected] ITT Industries,

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

A Concurrent Logical Framework

(Joint work with Frank Pfenning, David Walker, and Kevin Watkins)

Iliano [email protected]

ITT Industries, inc @ NRL Washington, DC

http://www.cs.stanford.edu/~iliano

CS Department, UMBC

February 27-28 2003

Page 2: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

I. Cervesato: A Concurrent Logical Framework 2

CLF

Where it comes fromLogical FrameworksThe LF approach

What it isTrue concurrencyMonadic encapsulationA canonical approach

What’s next?

Page 3: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

I. Cervesato: A Concurrent Logical Framework 3

All about Logical Frameworks

Represent and reason about object systems

Languages, logics, …Often semi-formalized as deductive systemsReasoning often informal

BenefitsFormal specification of object systemAutomate verification of reasoning argumentsFeed back into other tools

Theorem provers, PCC, …

Page 4: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

I. Cervesato: A Concurrent Logical Framework 4

The LF Way

Identify fundamental mechanisms and build them into the framework (soundly!)

done (right) once and for all instead of each time

Modular constructions: [-Algebras]app f a

Variable binding, -renaming, substitution [LF]x. x+1

Disposable, updateable cell [LLF]^s’. f ^ s

True concurrency [CLF]

Page 5: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

I. Cervesato: A Concurrent Logical Framework 5

It’s all about Adequacy

Task- complex- long- tedious

Object system RepresentationA

utomated

Informal

Adequacy: correctness of the transcriptionLF: make adequacy as simple as possible

rather than (Gödel numbers)

Page 6: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

I. Cervesato: A Concurrent Logical Framework 6

Representation Targets

Mottos, mottos, mottos …

LF: judgments-as-types / proofs-as-objects3+5 = 8 N : ev (+ 3 5) 8

LLF: state-as-linear-hypotheses / imperative-computations-as-linear-functions

CLF: concurrent-computations-as-monadic-expressions / …

nextLF: blablablablablabla-as-blablablablablablablabla / blablablablablablablablabl-as-blablablablablabablablablablablablabla

Judgment(a statement we want to make)

typeobject

Page 7: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

I. Cervesato: A Concurrent Logical Framework 7

Make it Canonical, Sam

Each object of interest has exactly 1 representationCanonical objects:

-long, -normal _LF termDecidable, computable

termsproofs

evaluations

N:tm

N:pf A B

N:ev E V

Object system _LF

1-1

Page 8: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

I. Cervesato: A Concurrent Logical Framework 8

Types (“asynchronous” constructors of ILL)

A ::= a | x:A. B | A –o B | A & B | T

TermsN ::= x | x:A. N | N1 N2

^x:A. N | N1^N2 |<N1,N2> | fst N | snd N |<>

Main judgment ; |- N : A

But what is LLF?But what is LF?

TypesA ::= a | x:A. B

TermsN ::= x | x:A. N | N1 N2

Main judgment |- N : A

Page 9: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

I. Cervesato: A Concurrent Logical Framework 9

CLF

Page 10: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

I. Cervesato: A Concurrent Logical Framework 10

An Example

Securityprotocolspec.

netout(m)

netin(m)

x. netout(x) netin(x)net(m)Security

protocolspec.

Many instances can be executing concurrently

Page 11: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

I. Cervesato: A Concurrent Logical Framework 11

LLF Encoding

net : step o– netout mo– (netin m –o step).

LLF forces continuation-passing style

Consider 2 independent applications: ni

1. net ^ no1 ^ (ni

2. net ^ no2 ^ C)

ni2. net ^ no

2 ^ (ni1. net ^ no

1 ^ C)

Should be indistinguishable (true concurrency)

Equate them at the meta-levelsame-trace T1 T2 o- …

Never-ending even for small system!

Page 12: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

I. Cervesato: A Concurrent Logical Framework 12

Encoding in Linear logic

m. netout m –o netin m

Much simpler

In general, requires “synchronous” operators and 1

Concurrency given by “commuting conversions”let x1 y1 = N1 in (let x2 y2 = N2 in M)

= let x2 y2 = N2 in (let x1 y1 = N1 in M) if xi,yi FV(R2-i)

… looks like what we want …

Page 13: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

I. Cervesato: A Concurrent Logical Framework 13

However …

Commuting conversions are too wildAllow permutations we don’t care for

Synchronous types destroy uniqueness of canonical forms nat:type. z:nat. s:nat->nat. c:1. Natural numbers: z, s z, s (s z), … What about let 1 = c in z ? What if c is linear?

No good!

Page 14: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

I. Cervesato: A Concurrent Logical Framework 14

Monadic Encapsulation

Separate synchronous and asynchronous types

Outside the monadLLF types (asynchronous)-long, -normal forms

Inside the monadSynchronous typesCommuting conversions

Concurrency equation-long, -normal forms

Monad is a sandbox for synchronous behavior

Page 15: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

I. Cervesato: A Concurrent Logical Framework 15

CLF

TypesA ::= a | x:A. B | A –o B | A & B | T | {S}S ::= A | !A | S1 S2 | 1 | x:A. S

TermsN ::= x | x:A. N | N1 N2 | ^x:A. N | N1^N2 |

<N1,N2> | fst N | snd N | <> | {E}E ::= M | let {p} = N in EM ::= N | !N | M1 M2 | 1 | [N,M]p ::= x | !x | p1 p2 | 1 | [x,p]

Page 16: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

I. Cervesato: A Concurrent Logical Framework 16

Example in CLF

net : netin m –o { netout m }.

Relating the 2 specifications2 sets of CLF declarationsMeta-level definition of trace transformation

simplify-net {Ti/o} {T}Trivial mappingPermutations handled automatically

No need to take actionCritical for more complex examples

Page 17: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

I. Cervesato: A Concurrent Logical Framework 18

Examples and Applications

-calculusSynchronousAsynchronous

Concurrent MLPetri nets

Execution-sequence semanticsTrace semantics

MSR security protocol specification language

No implementation … yet …

Page 18: A Concurrent Logical Framework (Joint work with Frank Pfenning, David Walker, and Kevin Watkins) Iliano Cervesato iliano@itd.nrl.navy.mil ITT Industries,

I. Cervesato: A Concurrent Logical Framework 22

Conclusions

CLFA logical framework that internalizes true

concurrencyMonadic encapsulation tames commuting

conversionsCanonical approach to meta-theoryGood number of examples

This is just the beginning … plenty more to do!