• 検索結果がありません。

How to prove a coformula

N/A
N/A
Protected

Academic year: 2021

シェア "How to prove a coformula"

Copied!
52
0
0

読み込み中.... (全文を見る)

全文

(1)

.

. . . .

.

.

How to prove a coformula

Minao Kukita [email protected]

Kyoto University

Logic Seminar Series The University of Melbourne

September 10, 2010

(2)

A formal system standing alone is an incomplete entity: it needs its interpretation.

Dana Scott, “Rules and derived rules.”

(3)

Background:

Greg Restall’s coformulas.

A gap between logic and computation.

Our aim:

To consider what kind of proof theory is suitable for coformulas by

taking into account what coformulas are and should be in an intuitive

sense, and in what context they are useful.

(4)

Outline

. . 1 . Coformulas

. . 2 . Relation between logic and computation

. . 3 . Coformulas as recursive types

. . 4 . Proofs

(5)

. . 1 . Coformulas

. . 2 . Relation between logic and computation

. . 3 . Coformulas as recursive types

. . 4 . Proofs

(6)

Stream

There are three viewpoints from which we can study streams:

set-theoretic (static)

computational (dynamic)

category-theoretic (both)

(7)

Stream: from the set-theoretic point of view

. Definition .

.

. . . .

. . Given a set A, Stream(A) = A ω (= ∏

n ω A = (ω A)).

Note that

Stream(A) = A × Stream(A) = A × (A × Stream(A)) = . . . i.e., Stream(A) satisfies the following equation:

Stream(A) = A × Stream(A)

(8)

Stream: from the computational point of view

. Definition .

.

. . . .

.

.

A stream s on the data type A is a machine M = (Q , q 0 , δ) where:

Q is a set of the states of the machine, q 0 Q is the initial state, and

δ : Q A × Q is a function from a state q to a pair (a, q 0 ) of an atomic data a and a state q 0 .

δ(q) = h a, q 0 i means that a is the output of M in the state q, while q 0 is

the state immediately after q. Call them head and tail respectively.

(9)

Examples

Name Definition Output

ones (1.ones) 1, 1, 1, 1, 1, 1, . . . nats (0.(s+ ones nats)) 0, 1, 2, 3, 4, 5, . . . facts (1.(s* (tail nats) facts)) 1, 1, 2, 6, 24, 120, . . .

Fibs (1.1.(s+ Fibs (tail Fibs))) 1, 1, 2, 3, 5, 8, . . .

where s+ and s* stand for the stream operations of adding and

multiplying componentwise respectively.

(10)

s* *0 //

*1

66

66 66 66 66

66 66 s+ +0 //

+1

55

55 55 55 55

55 55 ones

1

facts

1

LL

nats

0

KK

(11)

Stream: from the category-theoretic point of view

. Definition .

.

. . . .

.

.

Stream(A) is a final F A -coalgebra, i.e., a terminal object in the category F A -CoAlg, where F A : Set Set is a functor defined by:

F A X = A × X , F A f = h 1 A , f i and F A -CoAlg consists of:

Objects: functions f : X F A X in Set.

Arrows: α : f g is a function from dom(f ) to dom(g ) such that

g α = F A α f .

(12)

Specifically, Stream(A) = h head, tail i : A ω A × A ω .

Many operations on Stream(A) can be defined as a mediating arrow to this terminal object. E. g.:

ones: Stream(ω) ω × ω ω oo h id

ω

,[[ h 1,! i ]] i ω × 1

ω ω

h head,tail i

OO

[[ h 1,! i ]] 1

oo

h 1,! i

OO

(13)

interleave: Stream(A) × Stream(A) Stream(A) A × A ω oo h id

A

,[[φ]] i A × (A ω × A ω )

A ω

h head,tail i

OO

A ω × A ω

[[φ]]

oo

φ

OO

where φ = h head fst, h snd, tail fst ii .

(14)

Coformulas (cf. Restall, forthcoming)

For simplicity we think only of binary connectives.

. Definition .

.

. . . .

.

.

Let Σ be a set of binary connectives. A coformula on Σ is a machine M = (Q, q 0 , δ) where:

Q is a set of the states, q 0 is the initial state,

δ : Q Σ × Q × Q is a function from a state q to a triple (σ, q 0 , q 00 ) of a connective σ Σ and two next states q 0 and q 00 .

M is called finite if Q is. We call σ the head of this coformula, and q 0 , q 00

the tails.

(15)

Set-theoretically, a coformula is an infinite binary trees with each node labelled with a connective in Σ.

Category-theoretically, coformulas are a terminal object F Σ -CoAlg, where F Σ : Set Set is defined by:

F Σ X = Σ × X × X , F Σ f = h id Σ , f , f i

Specifically it is h head, tail 0 , tail 1 i : T Σ Σ × T Σ × T Σ , where T Σ is the

set of infinite binary trees with labels Σ.

(16)

Examples

Let and be binary connectives. Then followings are coformulas:

Q = { ? } , q 0 = ?, δ(?) = h→ , ?, ? i .

Q = { ], \ } , q 0 = ], δ(]) = h→ , \, \ i , δ(\) = h∧ , ], ] i .

(17)

. Definition .

.

. . . .

.

.

R T Σ × T Σ is called bisimulation relation on T Σ if for all M , M 0 T Σ ,

M R M 0

 

head( M ) = head( M 0 ) tail 0 ( M )Rtail 0 ( M 0 ) tail 1 ( M )Rtail 1 ( M 0 )

Coformulas M and M 0 T Σ are said to be bisimilar, written M ' B M 0

if, head( M ) = head( M 0 ) and for some bisimilation relation R, M R M 0 .

Two bisimilar coformulas are observationally equal, i.e., we cannot

distinguish one from the other by observing their behaviors.

(18)

The formula-coformula pair is one of many dual notions of the same kind:

Algebra ⇐⇒ Coalgebra Recursion ⇐⇒ Corecursion

List ⇐⇒ Stream

Formula ⇐⇒ Coformula So to think of coformulas seems a natural step.

But the following questions also seem as natural:

What, if any, can they stand for?

Is there any context in which they are useful?

(19)

—Yes.

Some of them can be thought of as recursive types,

They can fill a gap between logic and computation.

(20)

. . 1 . Coformulas

. . 2 . Relation between logic and computation

. . 3 . Coformulas as recursive types

. . 4 . Proofs

(21)

Curry-Howard isomorphisms

Logic Typed λ calculus

Propositional logic ⇐⇒ Simply typed λ calculus 1st-order logic ⇐⇒ Dependant type theory 2nd-order prop. logic ⇐⇒ Polymorphic type theory

etc.

Proposition ⇐⇒ Type

-I ( -I) ⇐⇒ Abstraction

-E ( -E) ⇐⇒ Function application

Proof ⇐⇒ Term

Normalization ⇐⇒ Reduction

etc.

(22)

Difference between logic and computation

Hence the clich´ e:

“To construct a proof is to write a program.”

But not vice versa:

“To write a program is NOT to construct a proof.”

Cf. Nordstr¨ om et al. Programming in Martin-L¨ of Type Theory:

“In type theory it is also possible to write specifications of programming tasks as well as to develop provably correct programs. Type theory is therefore more than a programming languages, and it should not be compared with programming languages, but with formalized

programming logics such as LCF and PL/CV.” (my emphases)

(23)

λω λC

λ2 y y y y y y y y

λP 2 w w w w w w w w w

λω λP ω

λ z z z z z z z z

λP w w w w w w w w

The λ cube: they are all strongly normalising,

therefore not Turing complete.

(24)

λω λC

λ2 y y y y y y y y

λP 2 w w w w w w w w w

λω λP ω

λ z z z z z z z z

λP w w w w w w w w

The λ cube: they are all strongly normalising,

therefore not Turing complete.

(25)

On the other hand, most practical programming languages do not have the SN property.

An example of non-terminating program:

while (now.isToday()) {

System.out.print( );

}

We need such constructions particularly in order to allow recursive

(26)

Consider how the following definition works:

f (n) =

{ 1 if n = 0

n f (n 1) otherwise

What we do here is to compute the least fixed point of the functional Φ : (N + N) (N + N) such that:

Φ(f )(n) =

{ 1 if n = 0

n f (n 1) otherwise

where N + N is the set of partial functions on natural numbers.

But how do we find the least fixed point of such functionals?

(27)

Curry’s fixed-point combinator

(28)

. Definition .

.

. . . .

.

.

x A is called a fixed point of f : A A if f (x) = x.

F : (A A) A is called a fixed-point operator if for all f : A A, f (F (f )) = F (f ).

Let Y be λy .(λx.y(xx ))(λx.y(xx)). Then for any term M , YM β M((λx.M (xx ))(λx.M (xx )))

β M(M((λx.M (xx ))(λx.M (xx )))) M (YM ) β M(M((λx.M (xx ))(λx.M (xx ))))

M(YM) = β YM .

(29)

Definition of factorial using a fixed-point operator:

(define Y (lambda (f)

((lambda (x) (f (x x))) (lambda (x) (f (x x)))))) (define (F f)

(lambda (n)

(if (= n 0) 1

(* n (f (- n 1))))))) ((Y F) 5)

>> 120

(30)

Note the following facts:

. Fact . .

. . . .

.

.

Y has no β nf , therefore 6` λ? Y : σ, for any pure type system λ?

enjoying the SN property.

λ with Y (or any other mechanism for finding the least fixed point of an arbitrary term) is Turing complete.

So such a mechanism is the major factor that divides logics (typed λ

calculi) and programming languages.

(31)

. . 1 . Coformulas

. . 2 . Relation between logic and computation

. . 3 . Coformulas as recursive types

. . 4 . Proofs

(32)

Reflexive domain

. Definition .

. .

A type D with terms φ D : D (D D) and ψ D : (D D) D is called a reflexive domain if

φ D ψ D = I D→D

where I D D : (D D) (D D) is the identity function on (D D).

Rules for reflexive domains:

M : D D ψ D M : D fold

M : D

φ D M : D D unfold

M : D D

(33)

y:D!D

x:D

unfold

x:D!D x:D

xx:D

y(xx):D

x D

:y(xx):D!D

y:D!D

x:D

unfold

x:D!D x:D

xx:D

y(xx):D

x D

:y(xx):D!D

fold

(x D

:y(xx)):D

(x D

:y(xx))( (x D

:y(xx))):D

y D!D

:(x D

:y(xx))( (x D

:y(xx))):(D!D)!D

Minao Kukita (Kyoto U.) How to prove a coformula Logic Seminar Series 32 / 51

(34)

A reflexive domain D D can be defined by means of more general notion of recursive types.

Recursive types are type expressions of the form rect.τ

where τ is a type expression and t is a type variable.

Roughly, rect.τ is a type which satisties the equation:

rect.τ = τ [rect.τ /t]

Therefore, a reflexive domain D D is defined as rect.t t.

(35)

Type expressions

. Definition .

.

. . . .

.

.

Let TVar be a set of type variables (ranged over by t). The set TExp of type expressions (ranged over by τ ) is defined by the following grammer:

τ ::= t | τ στ | rect.τ where σ Σ.

A type expression is called coformulaic if it is closed and does not contain

subexpressions of the form rect .t 0 (whether t = t 0 or not). We denote the

set of coformulaic expressions by TExp 0 .

(36)

We define a function F : T fin

Σ TExp 0 that transforms any finite coformula into coformulaic expression as follows:

Given a finite coformula M = h Q , q 0 , δ i , we can construct a corresponding TExp 0 as follows: Let Q = { q k : 0 k n } . Let

S k = t i(k,0) σ k t i(k,1)

where δ(q k ) = h σ k , q i(k,0) , q i (k,1) i and t i (k ,0) ’s are distinct type variables

for 0 k n.

(37)

Define ˆ S k (0 k n) inductively as follows:

S ˆ n = rect n .S n

S ˆ k −1 = rect k−1 .(S k−1S n /t n ] . . .S k /t k ])

Then let ˆ S 0 be F M.

(38)

For example, consider the following coformula M = h Q , q 0 , δ i : Q = { q 0 , q 1 , q 3 } ,

δ(q 0 ) = h→ , q 1 , q 2 i , δ(q 1 ) = h∧ , q 2 , q 0 i , δ(q 2 ) = h∨, q 0 , q 1 i.

Applying F to M , we get

rect 0 .(rect 1 .(rect 2 .(t 0 t 1 ) t 0 ) rect 2 .(t 0 rect 1 .(rect 2 .(t 0 t 1 ) t 0 )))

(39)

S 2 = t 0 t 1

S 1 = t 2 t 0

S 0 = t 1 t 2 S ˆ 2 = rect 2 .(t 0 t 1 ) S 1 [ˆ S 2 /t 2 ] = rect 2 .(t 0 t 1 ) t 0

S 0 [ˆ S 2 /t 2 ] = t 1 rect 2 .(t 0 t 1 ) S ˆ 1 = rect 1 .(rect 2 .(t 0 t 1 ) t 0 ) S 0S 2 /t 2 ][ˆ S 1 /t 1 ] = rect 1 .(rect 2 .(t 0 t 1 ) t 0 )

rect 2 .(t 0 rect 1 .(rect 2 .(t 0 t 1 ) t 0 ))

(40)

Remark: The order of S k ’s may affect the result. For example, in the construction of ˆ S 0 , if we start with S 1 instead of S 2 , the result will be rect 0 .(rect 1 .(rect 2 .(t 0 rect 1 .(t 2 t 0 )) t 0 ) rect 2 .(t 0 rect 1 .(t 2 t 0 ))) not

rect 0 .(rect 1 .(rect 2 .(t 0 t 1 ) t 0 ) rect 2 .(t 0 rect 1 .(rect 2 .(t 0 t 1 ) t 0 )))

However, we can ignore the difference for the reason explained later.

(41)

Conversely, we define a function G : TExp 0 T fin

Σ that transforms a coformulaic expression into a finite coformula.

Define : TExp 0 Σ × TExp 0 × TExp 0 by:

0 στ 1 ) = h σ, τ 0 , τ 1 i

(rect.τ) = (τ [rect.τ /t])

(42)

Then by the finality of T Σ there exists unique arrow [[ ]] : TExp 0 T Σ such that the following diagram commutes:

Σ × T Σ × T Σ oo h id

Σ

,[[ ]],[[ ]] i Σ × TExp 0 × TExp 0

T Σ h head,tail

0

,tail

1

i

OO

TExp 0

[[ ]]

oo

OO

Call this [[ ]] G .

(43)

. Lemma . .

. . . .

.

.

Let S 0 , S 1 , S 2 be type expressions that consist of type variables t 0 , t 1 , t 3 only and not containing rec. Let θ be (possibly empty) successive substitutions each of which is of the form [rect i .S i θ 0 /t i ]. Then G (rect 0 .S 0 [rect 1 .S 1 θ 1 /t 1 ][rect 2 .S 2 θ 2 /t 2 ]) is bisimilar to G (rect 0 .S 0 [rect 1 .S 1 θ 1 0 /t 1 ][rect 2 .S 2 θ 0 2 /t 2 ]).

Proof. By usual coinduction. ¤

This result justifies the remark above.

(44)

. Proposition .

.

. . . .

. . For each M ∈ T fin Σ , M is bisimilar to GF ( M ).

Proof. By usual coinduction, using the above lemma. ¤

(45)

Based on above result, we propose that coformulas should be restricted to T fin

Σ .

This restriction has some advantage because

it gets rid of the coformulas that cannot be captured by any finitery method,

it enables us to focus on coformulas that have relevance in relation to computation and programming language,

we can avail ourselves of existent semantics and a proof system.

(46)

. . 1 . Coformulas

. . 2 . Relation between logic and computation

. . 3 . Coformulas as recursive types

. . 4 . Proofs

(47)

Abramsky (1991b) formulates “logical interpretations” for the language of domain theory.

This language contains usual type constructors in domain theory, including

(function spaces), × (products), (coalesced sums), P (plotkin powerdomains), rec (recursive domains), etc.

We can exploit this logic for coformulas.

(48)

Proof system

Let Σ = {→ , ∧} for simplicity.

We supply a natural deduction system with additional rules for each coformula M = h Q, q 0 , δ i and q Q:

M : δ(q)

fold M q (M ) : q rec-I M : q

unfold M q (M ) : δ(q) rec-E

Here we abuse the notation δ(q ) to denote q 0 σq 00 , where δ(q) = h σ, q 0 , q 00 i .

We say M is proved if its initial state is proved.

(49)

Q = { q 0 , q 1 , q 2 }

δ(q 0 ) = q 1 q 2 , δ(q 1 ) = q 2 q 0 , δ(q 2 ) = q 0 q 1 ,

(x:q

0 )

re -E

unfold

q0 (x):q

1

!q

2

(y:q

1 )

unfold

q0 (x)y :q

2

re-E

unfold

q2

(unfold

q0

(x)y):q

0

!q

1

(x:q

0 )

unfold

q2

(unfold

q0

(x)y)x:q

1

x

x q

0

:(unfold

q2

(unfold

q0

(x)y)x):q

0

!q

1

re-I

fold

q2 (x

q

0

:(unfold

q2

(unfold

q0

(x)y)x)):q

2

y

y q

1

:(fold

q2 (x

q

0

:(unfold

q2

(unfold

q0

(x)y)x))):q

1

!q

2

re -I

fold

q

0 (y

q1

:(fold

q

2 (x

q0

:(unfold

q

2

(unfold

q

0

(x)y)x)))):q

0

Minao Kukita (Kyoto U.) How to prove a coformula Logic Seminar Series 48 / 51

(50)

Curry’s paradox Q = {q 0 , q 1 }

δ(q 0 ) = q 0 q 0 , δ(q 1 ) = q 1 q 0

(x:q

1 )

re-E

unfold

q

1 (x):q

1

!q

0

(x:q

1 )

unfold

q

1 (x)x:q

0

x

x q1

:(unfold

q1 (x)x):q

1

!q

0

(x:q

1 )

re-E

unfold

q1 (x):q

1

!q

0

(x:q

1 )

unfold

q

1 (x)x:q

0

x

x q

1

:(unfold

q

1 (x)x):q

1

!q

0

re-I

unfold

q1 (x

q1

:(unfold

q1

(x)x)):q

1

(x q1

:(unfold

q1

(x)x))(unfold

q1 (x

q1

:(unfold

q1

(x)x))):q

0

Minao Kukita (Kyoto U.) How to prove a coformula Logic Seminar Series 49 / 51

(51)

Remarks

This system suggest that (finite) coformulas can be understood as self-referential sentences.

One needs specification of coformulas outside proof. So this system may not seem purely syntactical. However, as far as finite coformulas are concerned, we can write down these specifications in a syntactic fashion.

Some proofs has no normal form (as expected).

(52)

To sum up,

There is a substantial gap between logic and programming, despite Curry-Howard isomorphism.

Coformulas are logical analogues to recursive types in programming languages, and hence can fill the gap.

As such, they may well be restricted to finite ones.

Then a kind of type theory can be applied to coformulas.

参照

関連したドキュメント

I give a proof of the theorem over any separably closed field F using ℓ-adic perverse sheaves.. My proof is different from the one of Mirkovi´c

In this paper, we we have illustrated how the modified recursive schemes 2.15 and 2.27 can be used to solve a class of doubly singular two-point boundary value problems 1.1 with Types

They are done in such a way that the same decomposition can easily be extended to general diagrams with the same topology of bonds covering the branch point, usually due to the

The idea of applying (implicit) Runge-Kutta methods to a reformulated form instead of DAEs of standard form was first proposed in [11, 12], and it is shown that the

The main problems which are solved in this paper are: how to systematically enumerate combinatorial braid foliations of a disc; how to verify whether a com- binatorial foliation can

In Section 3 using the method of level sets, we show integral inequalities comparing some weighted Sobolev norm of a function with a corresponding norm of its symmetric

The object of this paper is the uniqueness for a d -dimensional Fokker-Planck type equation with inhomogeneous (possibly degenerated) measurable not necessarily bounded

L. It is shown that the right-sided, left-sided, and symmetric maximal functions of any measurable function can be integrable only simultaneously. The analogous statement is proved