• Aucun résultat trouvé

A calculus of branching processes

N/A
N/A
Protected

Academic year: 2021

Partager "A calculus of branching processes"

Copied!
24
0
0

Texte intégral

(1)

HAL Id: hal-02357975

https://hal.archives-ouvertes.fr/hal-02357975

Submitted on 25 Aug 2020

HAL is a multi-disciplinary open access

archive for the deposit and dissemination of

sci-entific research documents, whether they are

pub-lished or not. The documents may come from

teaching and research institutions in France or

abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est

destinée au dépôt et à la diffusion de documents

scientifiques de niveau recherche, publiés ou non,

émanant des établissements d’enseignement et de

recherche français ou étrangers, des laboratoires

publics ou privés.

A calculus of branching processes

Thomas Ehrhard, Jean Krivine, Ying Jiang

To cite this version:

Thomas Ehrhard, Jean Krivine, Ying Jiang. A calculus of branching processes. Theoretical Computer

Science, Elsevier, 2019, �10.1016/j.tcs.2019.06.028�. �hal-02357975�

(2)

A Calculus of Branching Processes

Thomas Ehrhard

a

, Jean Krivine

a

, Ying Jiang

b

a

CNRS, Paris Diderot Univ. IRIF, 8, place Aur´

elie Nemours 75013 Paris, France

b

Institute of Software, Chinese Academy of Sciences, 4 South Fourth Street, Zhong Guan Cun, Beijing

100190, P.R. China

Abstract

CCS-like calculi can be viewed as an extension of classical automata with communication

primitives. We are interested here to follow this principle, applied to tree-automata.

It naturally yields a calculus of branching processes (CBP), where the continuations

of communications are allowed to branch according to the arity of the communication

channel. After introducing the calculus with a reduction semantics we show that CBP

can be “implemented” by a fully compositional LTS semantics. We argue that CBP

offers an interesting tradeoff between calculi with a fixed communication topology `a la

CCS and calculi with dynamic connectivity such as the π-calculus.

1. Introduction

The Calculus of Communicating Systems (CCS) [

15

] and Communicating Sequential

Processes (CSP) [

14

] are expressive formalisms that are widely used to model concurrent

systems, in which processes synchronize by handshake. One can view concurrent runs

in these calculi as computations of classical automata or Petri Nets in which transitions

have to synchronize on complementary symbols. The starting point of the formalism

we introduce in this paper is the following: what happens if instead of synchronizing

classical transition systems, we were to allow more expressive automata to synchronize?

We introduce a Calculus of Branching Processes (CBP), that is obtained by adding

synchronization to tree-automata [

9

]. We obtain a process calculus whose continuation

scheme is branching according to the arity of the communication symbols. A CBP process

of the form f (p, q) has communication symbol f and continuations p and q. Branching

communication structure can only be achieved if the computations of p and q are not

allowed to interact anymore. This leads naturally to a definition of a communication

graph that connects processes and specifies which symbols are able to interact. In classical

process algebra, the communication graph is left implicit since any two complementary

symbols may synchronize. This explains, for instance, the difficulty to make concrete

implementations of the π-calculus [

16

]: in the absence of a network topology, one has to

conceive of astute mechanisms to implement communications [

18

]. This has led to the

definition of process calculi in which routing of communication is either trivially directed

Email addresses: ehrhard@irif.fr (Thomas Ehrhard), jkrivine@irif.fr (Jean Krivine),

jy@ios.ac.cn (Ying Jiang)

(3)

[

11

,

12

] or explicit [

13

,

17

,

10

]. An interesting aspect of CBP is that it comes with

a structural operational semantics that makes explicit how the communication graph

evolves over time.

Outline. In Section

2

we introduce the specification of CBP’s operational semantics by

means of (communication) graph rewriting rules. The syntax of processes involves two

main constructs: parallel composition, as in CCS, and prefixing. As already suggested,

this latter construct differs from CCS prefixing in that there can be more than one

continuation. The number of continuations is determined by the label of the prefix which

is a function symbol. For the sake of simplicity, we assume in the technical developments

that this arity is always 2 (more general arities can easily be encoded in this setting).

The operational semantics of this calculus is mainly defined as a rewriting system.

Our main design choice is summarized in Figure

1

: when two processes p = f (p

1

, p

2

)

and q = ¯

f (q

1

, q

2

) synchronize, the resulting configuration stipulates that p

i

can only

communicate with q

i

(for i = 1, 2) and with the environment of p (and symmetrically for

q). We can motivate this choice as follows:

• p

1

can synchronize only with q

1

, and not with q

2

(and similarly for p

2

), to have

CBP behave as a conservative extension of tree automata, as explained in Section

3.1.

• p

1

cannot synchronize with p

2

in order to obtain branching continuations in the

style of process threads.

• Last, the fact that the continuations of a prefixed process p inherit the

synchro-nization capabilities of p is inspired by the operational semantics of CCS and has

the major effect of allowing the continuations of p to communicate by means of a

common, shared, context (the context X in Fig.

1

).

These restrictions on possible synchronizations are implemented by a graphical structure:

a process graph Γ is an undirected simple graph, the vertices of which are labeled by

processes. The edges of the process graph correspond to communication capabilities:

two processes can synchronize if they are located on opposite ends of an edge of this

graph. A process graph rewriting event corresponds to a synchronization that updates

the process graph according to the three principles listed above and summarized in Figure

1

. The corresponding rewriting relation on process graphs is presented in Section

2.4

.

Expressivity of CBP is discussed in Section

3

. First we show, in Section

3.1

, that

CBP is a conservative extension of tree automata, in the sense that the recognition of

a tree a by an automaton T can be expressed by the fact that a process representing

the “parallel composition” of T and (the dual of) a reduces to an idle process. We

then give an example, in Section

3.2

, that illustrates the branching behavior of process

continuations that are still able to interact by means of a shared environment. This

is obtained by modeling a reader and a writer thread that have access to a common

register process. Finally we explore, in Section

3.3

, the graph self-assembly capabilities

of CBP and we illustrate specifically that hexagones naturally arise from CBP rewriting,

allowing for instance to implement a ternary version of dining philosophers. We consider

this example as a local interaction based implementation of a distributed consensus,

(4)

interaction between the philosophers is possible before the final hexagonal configuration

is reached.

The compositional semantics of CBP is introduced in Section

4

. As usual, rewriting

semantics is not compositional (the semantics of a process cannot be described in terms

of the semantics of its subprocesses). Following a standard approach initiated by Milner

with CCS, we present a labeled transition system for CBP. Unlike CCS where labels

are simple letters or τ -symbols (for internal synchronizations), our labels involve also

addresses in process trees, which are the syntactic objects our LTS deals with. These

trees can be understood as process graphs enriched with further informations on the

sequential construction steps of the underlying graph structure.

Thanks to the presence of addresses in our process tree LTS, we are able to prove

in Section

5

that the two operational semantics presented in Section

2

and

4

are indeed

equivalent through a translation from process trees to process graphs.

2. The calculus CBP and its reduction semantics

In this section we introduce the calculus CBP and its reduction semantics, which is a

conservative extension of CCS [

15

]. This semantics describes the evolution of processes

that are distributed on the vertices of a graph whose edges enable message exchange:

two processes that are connected may interact if they communicate on complementary

function symbols. Importantly, processes that are not connected by an edge cannot

interact

1

.

CBP has essentially one reduction rule, which is informally described in Figure

1

. The

remainder of the present section is dedicated to the formal description of the reduction

semantics, which should be understood as the specification of a distributed computation.

Looking at Figure

1

the reader may wonder whether the new wiring of the right hand

side of the reduction may be obtained by means of local rules since there are, a priori,

many edges that may appear after a reduction (in particular for the full CBP calculus

whose reduction scheme is shown on the right of Fig.

1

). A solution to this problem is

presented in Section

4

, where a fully compositional semantics for CBP is introduced.

2.1. Syntax

For simplicity we restrict ourselves to binary CBP, where all function symbols have

arity 2. Full CBP is obtained by relaxing this condition.

A process is a term built over the following grammar:

s

::= f (p, p)

| 0 | D( ˜

f )

| s + s

(sums)

p

::= s

| (p k p) | p \ H

(processes)

with f

∈ F a function symbol, H ⊆ F and D( ˜

f ) a (guarded) recursive definition with

parameters ˜

f . We assume a definition set of the form Def =

def

S

i

{D

i

( ˜

f

i

) := s

i

}, where

˜

f

i

are function symbols occurring free in s

i

(see fn function defined in Section

2.3

).

1

Classical CCS terms may be denoted by processes distributed on the nodes of a clique, in this

(5)

f (p

<latexit sha1_base64="SAIPZz7u4pSRtPhOCu8FYK3GKDE=">AAACzXicjVHLSsNAFD2Nr1pfVZdugkWoICXpRpcFN+6sYB9YpSTTaR2aJiGZCLXq1h9wq9/iVyj+gf6Fd6YpqEV0QpIz595zZu69buiJWFrWW8aYmZ2bX8gu5paWV1bX8usb9ThIIsZrLPCCqOk6MfeEz2tSSI83w4g7A9fjDbd/qOKNKx7FIvBP5TDkFwOn54uuYI4k6qxbDNv2Xtgu77bzBatk6WVOAzsFhUr2+uUZQDXIv+IcHQRgSDAAhw9J2IODmJ4WbFgIibvAiLiIkNBxjlvkSJtQFqcMh9g+fXu0a6WsT3vlGWs1o1M8eiNSmtghTUB5EWF1mqnjiXZW7G/eI+2p7jakv5t6DYiVuCT2L90k8786VYtEFwe6BkE1hZpR1bHUJdFdUTc3v1QlySEkTuEOxSPCTCsnfTa1Jta1q946Ov6uMxWr9izNTfChbkkDtn+OcxrUyyWb8AlNuojxymIL2yjSPPdRwRGqqJG3jwc84sk4NhLjxrgbpxqZVLOJb8u4/wSyD5R9</latexit><latexit sha1_base64="7JO8ejhcSRYuiOyXxAcgG1u4eEI=">AAACzXicjVHLSsNAFD2Nr7a+qi7dBItQQUrSjS4LbtxZ0T6wlpKk0zo0L5KJUKtu/QG3+kPuFf9A/8I70whqEZ2Q5My595yZe68dujwWhvGa0WZm5+YXsrn84tLyymphbb0RB0nksLoTuEHUsq2YudxndcGFy1phxCzPdlnTHh7IePOSRTEP/FMxClnHswY+73PHEkSd9Uth19wNu5WdbqFolA219GlgpqBYzV49P53UcrWg8IJz9BDAQQIPDD4EYRcWYnraMGEgJK6DMXERIa7iDDfIkzahLEYZFrFD+g5o105Zn/bSM1Zqh05x6Y1IqWObNAHlRYTlabqKJ8pZsr95j5WnvNuI/nbq5RErcEHsX7rPzP/qZC0CfeyrGjjVFCpGVuekLonqiry5/qUqQQ4hcRL3KB4RdpTys8+60sSqdtlbS8XfVKZk5d5JcxO8y1vSgM2f45wGjUrZJHxMky5hsrLYxBZKNM89VHGIGurk7eMeD3jUjrREu9ZuJ6laJtVs4NvS7j4AREuVNA==</latexit><latexit sha1_base64="7JO8ejhcSRYuiOyXxAcgG1u4eEI=">AAACzXicjVHLSsNAFD2Nr7a+qi7dBItQQUrSjS4LbtxZ0T6wlpKk0zo0L5KJUKtu/QG3+kPuFf9A/8I70whqEZ2Q5My595yZe68dujwWhvGa0WZm5+YXsrn84tLyymphbb0RB0nksLoTuEHUsq2YudxndcGFy1phxCzPdlnTHh7IePOSRTEP/FMxClnHswY+73PHEkSd9Uth19wNu5WdbqFolA219GlgpqBYzV49P53UcrWg8IJz9BDAQQIPDD4EYRcWYnraMGEgJK6DMXERIa7iDDfIkzahLEYZFrFD+g5o105Zn/bSM1Zqh05x6Y1IqWObNAHlRYTlabqKJ8pZsr95j5WnvNuI/nbq5RErcEHsX7rPzP/qZC0CfeyrGjjVFCpGVuekLonqiry5/qUqQQ4hcRL3KB4RdpTys8+60sSqdtlbS8XfVKZk5d5JcxO8y1vSgM2f45wGjUrZJHxMky5hsrLYxBZKNM89VHGIGurk7eMeD3jUjrREu9ZuJ6laJtVs4NvS7j4AREuVNA==</latexit><latexit sha1_base64="4JisG+ecqRk0ygwMwem/kfYSsfs=">AAACzXicjVHLSsNAFD2Nr1pfVZdugkWoICXpRpcFN+6sYB9YS0nSaQ2myTCZCKXq1h9wq78l/oH+hXfGKahFdEKSM+fec2buvT6PwlQ6zmvOmptfWFzKLxdWVtfWN4qbW800yUTAGkESJaLteymLwpg1ZCgj1uaCeSM/Yi3/+ljFWzdMpGESn8sxZ92RN4zDQRh4kqiLQZn33APeq+73iiWn4uhlzwLXgBLMqifFF1yijwQBMozAEEMSjuAhpacDFw44cV1MiBOEQh1nuEOBtBllMcrwiL2m75B2HcPGtFeeqVYHdEpEryCljT3SJJQnCKvTbB3PtLNif/OeaE91tzH9feM1Ilbiiti/dNPM/+pULRIDHOkaQqqJa0ZVFxiXTHdF3dz+UpUkB06cwn2KC8KBVk77bGtNqmtXvfV0/E1nKlbtA5Ob4V3dkgbs/hznLGhWKy7hM6dUK5tR57GDXZRpnoeo4QR1NMg7xiOe8GydWpl1a91/plo5o9nGt2U9fACFApIl</latexit>

1

, p

2

)

¯

f (q

<latexit sha1_base64="7/0RG/hO2hGTySqWK4SGVl2gar4=">AAAC1HicjVHLTsJAFD3UF+ID1KWbRmKCiSEtG12SuHGJiTwSIKQtAzaUtkynJoiujFt/wK3+h1+h8Q/0L7wzlEQlRqdpe+bcc+7MvdcOPTcShvGW0hYWl5ZX0quZtfWNzWxua7sWBTF3WNUJvIA3bCtinuuzqnCFxxohZ9bQ9ljdHpzIeP2S8cgN/HMxDll7aPV9t+c6liCqk8u2bIvrvcKoYx6OOqWDTi5vFA219HlgJiBfTl+9PAOoBLlXtNBFAAcxhmDwIQh7sBDR04QJAyFxbUyI44RcFWe4QYa8MakYKSxiB/Tt066ZsD7tZc5IuR06xaOXk1PHPnkC0nHC8jRdxWOVWbK/5Z6onPJuY/rbSa4hsQIXxP7lmyn/65O1CPRwrGpwqaZQMbI6J8kSq67Im+tfqhKUISRO4i7FOWFHOWd91pUnUrXL3loq/q6UkpV7J9HG+JC3pAGbP8c5D2qlokn4jCZdwHSlsYs9FGieRyjjFBVU1cwf8IgnraZda7fa3VSqpRLPDr4t7f4TH86Wkw==</latexit><latexit sha1_base64="2hH6wGtd51I0yjp7YoflCX6Io4k=">AAAC1HicjVHLSsNAFD3GV+uz6tJNsAgVRBI3uhTcuKxoq6AlJNOpDublZCLU6krc+gNu9WvcK/6B/oV3phHUIjohyZlzz7kz994gDUWmHOd1yBoeGR0bL5UnJqemZ2Yrc/PNLMkl4w2WhIk8DPyMhyLmDSVUyA9Tyf0oCPlBcLat4wcXXGYiifdVN+WtyD+JRUcwXxHlVWaPA1/andq5566ee+srXqXqrDlm2YPALUB1q3T5/LRXL9eTyguO0UYChhwROGIowiF8ZPQcwYWDlLgWesRJQsLEOa4xQd6cVJwUPrFn9D2h3VHBxrTXOTPjZnRKSK8kp41l8iSkk4T1abaJ5yazZn/L3TM59d269A+KXBGxCqfE/uX7VP7Xp2tR6GDT1CCoptQwujpWZMlNV/TN7S9VKcqQEqdxm+KSMDPOzz7bxpOZ2nVvfRN/M0rN6j0rtDne9S1pwO7PcQ6C5vqaS3iXJl1Df5WwiCXUaJ4b2MIO6miYmd/jAY9W07qybqzbvtQaKjwL+Lasuw+x+5dK</latexit><latexit sha1_base64="2hH6wGtd51I0yjp7YoflCX6Io4k=">AAAC1HicjVHLSsNAFD3GV+uz6tJNsAgVRBI3uhTcuKxoq6AlJNOpDublZCLU6krc+gNu9WvcK/6B/oV3phHUIjohyZlzz7kz994gDUWmHOd1yBoeGR0bL5UnJqemZ2Yrc/PNLMkl4w2WhIk8DPyMhyLmDSVUyA9Tyf0oCPlBcLat4wcXXGYiifdVN+WtyD+JRUcwXxHlVWaPA1/andq5566ee+srXqXqrDlm2YPALUB1q3T5/LRXL9eTyguO0UYChhwROGIowiF8ZPQcwYWDlLgWesRJQsLEOa4xQd6cVJwUPrFn9D2h3VHBxrTXOTPjZnRKSK8kp41l8iSkk4T1abaJ5yazZn/L3TM59d269A+KXBGxCqfE/uX7VP7Xp2tR6GDT1CCoptQwujpWZMlNV/TN7S9VKcqQEqdxm+KSMDPOzz7bxpOZ2nVvfRN/M0rN6j0rtDne9S1pwO7PcQ6C5vqaS3iXJl1Df5WwiCXUaJ4b2MIO6miYmd/jAY9W07qybqzbvtQaKjwL+Lasuw+x+5dK</latexit><latexit sha1_base64="4StIhiud0+mtu75HbySKh7y+28Y=">AAAC1HicjVHLSsNAFD2Nr1ofjbp0EyxCBSlJN7osuHFZwT6gLSFJpzU0TdLJRCjVlbj1B9zqN4l/oH/hnTEFtYhOSHLm3HPuzL3XjQM/Eab5mtOWlldW1/LrhY3Nre2ivrPbTKKUe6zhRUHE266TsMAPWUP4ImDtmDNn7Aas5Y7OZLx1zXjiR+GlmMasN3aGoT/wPUcQZevFrutwY1Ce2NbxxK4e2XrJrJhqGYvAykAJ2apH+gu66COChxRjMIQQhAM4SOjpwIKJmLgeZsRxQr6KM9yiQN6UVIwUDrEj+g5p18nYkPYyZ6LcHp0S0MvJaeCQPBHpOGF5mqHiqcos2d9yz1ROebcp/d0s15hYgSti//LNlf/1yVoEBjhVNfhUU6wYWZ2XZUlVV+TNjS9VCcoQEydxn+KcsKec8z4bypOo2mVvHRV/U0rJyr2XaVO8y1vSgK2f41wEzWrFInxhlmrlbNR57OMAZZrnCWo4Rx0NNfNHPOFZa2o32p12/ynVcplnD9+W9vAB8rKUOw==</latexit>

1

, q

2

)

X

Z

Y

X

Z

Y

p

1

<latexit sha1_base64="NlrJxqzNQTce+F72o9HtypeQf0o=">AAACxnicjVHLTsJAFD0UH4gv1KWbRkLCirRudEnihiVGeSRISFsGnNBXplMNIUZ/wK1u/SvjH+hfeGcoiUqMTtP2zLn3nJl7rxv7PJGW9ZYz8iura+uFjeLm1vbObmlvv51EqfBYy4v8SHRdJ2E+D1lLcumzbiyYE7g+67iTMxXv3DCR8Ci8lNOY9QNnHPIR9xxJ1EU8sAelslWz9DKXgZ2Bcj1fuX8B0IxKr7jCEBE8pAjAEEIS9uEgoacHGxZi4vqYEScIcR1nuEORtCllMcpwiJ3Qd0y7XsaGtFeeiVZ7dIpPryCliQppIsoThNVppo6n2lmxv3nPtKe625T+buYVECtxTexfukXmf3WqFokRTnUNnGqKNaOq8zKXVHdF3dz8UpUkh5g4hYcUF4Q9rVz02dSaRNeueuvo+LvOVKzae1luig91Sxqw/XOcy6B9XLMJn9Okq5ivAg5xhCrN8wR1NNBEi7zHeMQTno2GERqpcTtPNXKZ5gDflvHwCVFWkYI=</latexit><latexit sha1_base64="hhD+t+ZSJ/st9vBVrFu8Ngd3St8=">AAACxnicjVHLSsNAFD1NfdT6qrp0EyyFrkriRpcFN11WtA+oUpLptIamSZhMlFJEF27dKi79CX9F/AP9C+9MU1CL6IQkZ86958zce93I92JpWW8ZI7uwuLScW8mvrq1vbBa2tptxmAjGGyz0Q9F2nZj7XsAb0pM+b0eCOyPX5y13eKTirUsuYi8MTuU44ucjZxB4fY85kqiTqGt3C0WrYullzgM7BcVqtnTz8nT3XA8LrzhDDyEYEozAEUAS9uEgpqcDGxYi4s4xIU4Q8nSc4xp50iaUxSnDIXZI3wHtOikb0F55xlrN6BSfXkFKEyXShJQnCKvTTB1PtLNif/OeaE91tzH93dRrRKzEBbF/6WaZ/9WpWiT6ONQ1eFRTpBlVHUtdEt0VdXPzS1WSHCLiFO5RXBBmWjnrs6k1sa5d9dbR8XedqVi1Z2lugg91Sxqw/XOc86C5X7EJH9Oky5iuHHaxhzLN8wBV1FBHg7wHuMcDHo2aERiJcTVNNTKpZgfflnH7CVUek1Y=</latexit><latexit sha1_base64="hhD+t+ZSJ/st9vBVrFu8Ngd3St8=">AAACxnicjVHLSsNAFD1NfdT6qrp0EyyFrkriRpcFN11WtA+oUpLptIamSZhMlFJEF27dKi79CX9F/AP9C+9MU1CL6IQkZ86958zce93I92JpWW8ZI7uwuLScW8mvrq1vbBa2tptxmAjGGyz0Q9F2nZj7XsAb0pM+b0eCOyPX5y13eKTirUsuYi8MTuU44ucjZxB4fY85kqiTqGt3C0WrYullzgM7BcVqtnTz8nT3XA8LrzhDDyEYEozAEUAS9uEgpqcDGxYi4s4xIU4Q8nSc4xp50iaUxSnDIXZI3wHtOikb0F55xlrN6BSfXkFKEyXShJQnCKvTTB1PtLNif/OeaE91tzH93dRrRKzEBbF/6WaZ/9WpWiT6ONQ1eFRTpBlVHUtdEt0VdXPzS1WSHCLiFO5RXBBmWjnrs6k1sa5d9dbR8XedqVi1Z2lugg91Sxqw/XOc86C5X7EJH9Oky5iuHHaxhzLN8wBV1FBHg7wHuMcDHo2aERiJcTVNNTKpZgfflnH7CVUek1Y=</latexit><latexit sha1_base64="AHrwLoaOt+E2Zbz+4uCRvPX1gS0=">AAACxnicjVHLSsNAFD2Nr1pfVZdugkXoqiRudFlw02VF+wAtJZlO69A0CZOJUorgD7jVTxP/QP/CO+MU1CI6IcmZc+85M/feMI1EpjzvteAsLa+srhXXSxubW9s75d29dpbkkvEWS6JEdsMg45GIeUsJFfFuKnkwCSPeCcdnOt655TITSXyppinvTYJRLIaCBYqoi7Tv98sVr+aZ5S4C34IK7Gom5RdcY4AEDDkm4IihCEcIkNFzBR8eUuJ6mBEnCQkT57hHibQ5ZXHKCIgd03dEuyvLxrTXnplRMzololeS0sURaRLKk4T1aa6J58ZZs795z4ynvtuU/qH1mhCrcEPsX7p55n91uhaFIU5NDYJqSg2jq2PWJTdd0Td3v1SlyCElTuMBxSVhZpTzPrtGk5nadW8DE38zmZrVe2Zzc7zrW9KA/Z/jXATt45pP+Nyr1Kt21EUc4BBVmucJ6migiRZ5j/CIJzw7DSd2cufuM9UpWM0+vi3n4QPx3I/7</latexit>

p

2

<latexit sha1_base64="+EoQr9nP4e6yFn9CDWtjAHsQEJk=">AAACx3icjVHLTsJAFD0UH4gv1KWbRkLCihQ2uiRxoztM5JEgIW0ZYEJfmU6JhBjjD7jVpX9l/AP9C+8MJVGJ0Wnanjn3njNz73Uij8fSst4yRnZtfWMzt5Xf3tnd2y8cHLbiMBEua7qhF4qOY8fM4wFrSi491okEs33HY21ncq7i7SkTMQ+DazmLWM+3RwEfcteWior6tXy/ULQqll7mKqimoFjPlu5fADTCwituMEAIFwl8MASQhD3YiOnpogoLEXE9zIkThLiOM9whT9qEshhl2MRO6DuiXTdlA9orz1irXTrFo1eQ0kSJNCHlCcLqNFPHE+2s2N+859pT3W1Gfyf18omVGBP7l26Z+V+dqkViiDNdA6eaIs2o6tzUJdFdUTc3v1QlySEiTuEBxQVhVyuXfTa1Jta1q97aOv6uMxWr9m6am+BD3ZIGXP05zlXQqlWqhK9o0mUsVg7HOEGZ5nmKOi7QQJO8x3jEE56NSyM0psbtItXIpJojfFvGwyeSO5GX</latexit><latexit sha1_base64="eWbuCUie0rBs5tvwZbA7oePGO3k=">AAACx3icjVHLSsNAFD1NfdT6qrp0EyyFrkrSjS4LbnRXwT6gFknSaTs0L5JJsRQRwbVbdelP+CviH+hfeGeaglpEJyQ5c+49Z+bea4cuj4VhvGW07NLyympuLb++sbm1XdjZbcZBEjms4QRuELVtK2Yu91lDcOGydhgxy7Nd1rJHxzLeGrMo5oF/LiYh63rWwOd97lhCUuFlNX9ZKBoVQy19EZgpKNaypZuXp7vnelB4xQV6COAggQcGH4KwCwsxPR2YMBAS18WUuIgQV3GGa+RJm1AWowyL2BF9B7TrpKxPe+kZK7VDp7j0RqTUUSJNQHkRYXmaruKJcpbsb95T5SnvNqG/nXp5xAoMif1LN8/8r07WItDHkaqBU02hYmR1TuqSqK7Im+tfqhLkEBIncY/iEWFHKed91pUmVrXL3loq/q4yJSv3Tpqb4EPekgZs/hznImhWKybhM5p0GbOVwz4OUKZ5HqKGE9TRIO8h7vGAR+1UC7SxdjVL1TKpZg/flnb7CZYDk2s=</latexit><latexit sha1_base64="eWbuCUie0rBs5tvwZbA7oePGO3k=">AAACx3icjVHLSsNAFD1NfdT6qrp0EyyFrkrSjS4LbnRXwT6gFknSaTs0L5JJsRQRwbVbdelP+CviH+hfeGeaglpEJyQ5c+49Z+bea4cuj4VhvGW07NLyympuLb++sbm1XdjZbcZBEjms4QRuELVtK2Yu91lDcOGydhgxy7Nd1rJHxzLeGrMo5oF/LiYh63rWwOd97lhCUuFlNX9ZKBoVQy19EZgpKNaypZuXp7vnelB4xQV6COAggQcGH4KwCwsxPR2YMBAS18WUuIgQV3GGa+RJm1AWowyL2BF9B7TrpKxPe+kZK7VDp7j0RqTUUSJNQHkRYXmaruKJcpbsb95T5SnvNqG/nXp5xAoMif1LN8/8r07WItDHkaqBU02hYmR1TuqSqK7Im+tfqhLkEBIncY/iEWFHKed91pUmVrXL3loq/q4yJSv3Tpqb4EPekgZs/hznImhWKybhM5p0GbOVwz4OUKZ5HqKGE9TRIO8h7vGAR+1UC7SxdjVL1TKpZg/flnb7CZYDk2s=</latexit><latexit sha1_base64="G6rXe8ek1ZujmxGmwjmPgOX6Ol0=">AAACx3icjVHLSsNAFD2Nr1pfVZdugkXoqiTd6LLgRncV7ANqKcl02oYmmTCZFEtx4Q+41T8T/0D/wjtjCj4QnZDkzLn3nJl7r5+EQaoc56VgrayurW8UN0tb2zu7e+X9g3YqMsl4i4lQyK7vpTwMYt5SgQp5N5Hci/yQd/zpuY53ZlymgYiv1Tzh/cgbx8EoYJ7SVDKolwblilNzzLJ/AjcHFeSrKcrPuMEQAgwZInDEUIRDeEjp6cGFg4S4PhbESUKBiXPcoUTajLI4ZXjETuk7pl0vZ2Paa8/UqBmdEtIrSWnjhDSC8iRhfZpt4plx1uxv3gvjqe82p7+fe0XEKkyI/Uu3zPyvTteiMMKZqSGgmhLD6OpY7pKZruib25+qUuSQEKfxkOKSMDPKZZ9to0lN7bq3nom/mkzN6j3LczO86VvSgN3v4/wJ2vWaS/jKqTSq+aiLOMIxqjTPUzRwgSZa5D3BAx7xZF1awppZtx+pViHXHOLLsu7fATLQkBA=</latexit>

q

<latexit sha1_base64="UCt/qeTRQvtxhN8hwMw5iztMzUY=">AAACxnicjVHLTsJAFD0UH4gv1KWbRkLCihQ2uiRxwxKjPBIkpC0DTujL6VRDiNEfcKtb/8r4B/oX3hlKohKj07Q9c+49Z+be60Qej6VlvWWM7Mrq2npuI7+5tb2zW9jbb8dhIlzWckMvFF3HjpnHA9aSXHqsGwlm+47HOs7kVMU7N0zEPAwu5DRifd8eB3zEXVsSdX49qA0KRati6WUug2oKivVs6f4FQDMsvOISQ4RwkcAHQwBJ2IONmJ4eqrAQEdfHjDhBiOs4wx3ypE0oi1GGTeyEvmPa9VI2oL3yjLXapVM8egUpTZRIE1KeIKxOM3U80c6K/c17pj3V3ab0d1Ivn1iJK2L/0i0y/6tTtUiMcKJr4FRTpBlVnZu6JLor6ubml6okOUTEKTykuCDsauWiz6bWxLp21Vtbx991pmLV3k1zE3yoW9KAqz/HuQzatUqV8BlNuoz5yuEQRyjTPI9RRwNNtMh7jEc84dloGIGRGLfzVCOTag7wbRkPn1YYkYQ=</latexit><latexit sha1_base64="XklrLpC45yHjXDeZhWZYNSe9vZ8=">AAACxnicjVHLTsJAFD0UH/hGXbppJCSsSMtGlyRuWGKUR4KEtGXAhr6cTjWEGF24datx6U/4K8Y/0L/wzlASlRidpu2Zc+85M/deO/LcWBjGW0bLLiwuLedWVtfWNza38ts7zThMuMMaTuiFvG1bMfPcgDWEKzzWjjizfNtjLXt0JOOtS8ZjNwxOxThiXd8aBu7AdSxB1MlFr9LLF4yyoZY+D8wUFKrZ4s3L091zPcy/4gx9hHCQwAdDAEHYg4WYng5MGIiI62JCHCfkqjjDNVZJm1AWowyL2BF9h7TrpGxAe+kZK7VDp3j0clLqKJImpDxOWJ6mq3iinCX7m/dEecq7jelvp14+sQLnxP6lm2X+VydrERjgUNXgUk2RYmR1TuqSqK7Im+tfqhLkEBEncZ/inLCjlLM+60oTq9plby0Vf1eZkpV7J81N8CFvSQM2f45zHjQrZZPwMU26hOnKYQ/7KNE8D1BFDXU0yHuIezzgUatpgZZoV9NULZNqdvFtabefWeCTWA==</latexit><latexit sha1_base64="XklrLpC45yHjXDeZhWZYNSe9vZ8=">AAACxnicjVHLTsJAFD0UH/hGXbppJCSsSMtGlyRuWGKUR4KEtGXAhr6cTjWEGF24datx6U/4K8Y/0L/wzlASlRidpu2Zc+85M/deO/LcWBjGW0bLLiwuLedWVtfWNza38ts7zThMuMMaTuiFvG1bMfPcgDWEKzzWjjizfNtjLXt0JOOtS8ZjNwxOxThiXd8aBu7AdSxB1MlFr9LLF4yyoZY+D8wUFKrZ4s3L091zPcy/4gx9hHCQwAdDAEHYg4WYng5MGIiI62JCHCfkqjjDNVZJm1AWowyL2BF9h7TrpGxAe+kZK7VDp3j0clLqKJImpDxOWJ6mq3iinCX7m/dEecq7jelvp14+sQLnxP6lm2X+VydrERjgUNXgUk2RYmR1TuqSqK7Im+tfqhLkEBEncZ/inLCjlLM+60oTq9plby0Vf1eZkpV7J81N8CFvSQM2f45zHjQrZZPwMU26hOnKYQ/7KNE8D1BFDXU0yHuIezzgUatpgZZoV9NULZNqdvFtabefWeCTWA==</latexit><latexit sha1_base64="1zw1RXDTXnzDRMe91M+FzvnNVqI=">AAACxnicjVHLSsNAFD2Nr1pfVZdugkXoqiTd6LLgpsuK9gFVSpJO69C8nEyUUgR/wK1+mvgH+hfeGaegFtEJSc6ce8+Zuff6acgz6TivBWtpeWV1rbhe2tjc2t4p7+51siQXAWsHSZiInu9lLOQxa0suQ9ZLBfMiP2Rdf3Kq4t1bJjKexBdymrKryBvHfMQDTxJ1fjOoD8oVp+boZS8C14AKzGol5RdcYogEAXJEYIghCYfwkNHThwsHKXFXmBEnCHEdZ7hHibQ5ZTHK8Iid0HdMu75hY9orz0yrAzolpFeQ0sYRaRLKE4TVabaO59pZsb95z7SnutuU/r7xioiVuCb2L9088786VYvECCe6Bk41pZpR1QXGJdddUTe3v1QlySElTuEhxQXhQCvnfba1JtO1q956Ov6mMxWr9oHJzfGubkkDdn+OcxF06jWX8JlTaVTNqIs4wCGqNM9jNNBEC23yHuMRT3i2mlZs5dbdZ6pVMJp9fFvWwwf2no/9</latexit>

2

q

<latexit sha1_base64="Ky1vJLgHUa93r16ph4LLFdrrISE=">AAACxnicjVHLTsJAFD0UH4gv1KWbRkLCirRudEnihiVGeSRITFsGnNCX06mGEKM/4Fa3/pXxD/QvvDOURCVGp2l75tx7zsy91419nkjLessZ+aXlldXCWnF9Y3Nru7Sz206iVHis5UV+JLqukzCfh6wlufRZNxbMCVyfddzxiYp3bphIeBSey0nM+oEzCvmQe44k6uz60r4sla2apZe5COwMlOv5yv0LgGZUesUFBojgIUUAhhCSsA8HCT092LAQE9fHlDhBiOs4wx2KpE0pi1GGQ+yYviPa9TI2pL3yTLTao1N8egUpTVRIE1GeIKxOM3U81c6K/c17qj3V3Sb0dzOvgFiJK2L/0s0z/6tTtUgMcaxr4FRTrBlVnZe5pLor6ubml6okOcTEKTyguCDsaeW8z6bWJLp21VtHx991pmLV3styU3yoW9KA7Z/jXATtw5pN+JQmXcVsFbCPA1Rpnkeoo4EmWuQ9wiOe8Gw0jNBIjdtZqpHLNHv4toyHT1O4kYM=</latexit><latexit sha1_base64="BEDQsMbzP/E6ct5DCN+5YZrMq3M=">AAACxnicjVHLTsJAFD0UH4gv1KWbRkLCirRudEnihiVGeSRISFsGbOjL6VRDiNGFW7cal/6Ev2L8A/0L7wwlUYnRadqeOfeeM3PvtSPPjYVhvGW07MLi0nJuJb+6tr6xWdjabsZhwh3WcEIv5G3bipnnBqwhXOGxdsSZ5dsea9mjIxlvXTIeu2FwKsYR6/rWMHAHrmMJok4uemavUDQqhlr6PDBTUKxmSzcvT3fP9bDwijP0EcJBAh8MAQRhDxZiejowYSAirosJcZyQq+IM18iTNqEsRhkWsSP6DmnXSdmA9tIzVmqHTvHo5aTUUSJNSHmcsDxNV/FEOUv2N++J8pR3G9PfTr18YgXOif1LN8v8r07WIjDAoarBpZoixcjqnNQlUV2RN9e/VCXIISJO4j7FOWFHKWd91pUmVrXL3loq/q4yJSv3Tpqb4EPekgZs/hznPGjuV0zCxzTpMqYrh13soUzzPEAVNdTRIO8h7vGAR62mBVqiXU1TtUyq2cG3pd1+AleAk1c=</latexit><latexit sha1_base64="BEDQsMbzP/E6ct5DCN+5YZrMq3M=">AAACxnicjVHLTsJAFD0UH4gv1KWbRkLCirRudEnihiVGeSRISFsGbOjL6VRDiNGFW7cal/6Ev2L8A/0L7wwlUYnRadqeOfeeM3PvtSPPjYVhvGW07MLi0nJuJb+6tr6xWdjabsZhwh3WcEIv5G3bipnnBqwhXOGxdsSZ5dsea9mjIxlvXTIeu2FwKsYR6/rWMHAHrmMJok4uemavUDQqhlr6PDBTUKxmSzcvT3fP9bDwijP0EcJBAh8MAQRhDxZiejowYSAirosJcZyQq+IM18iTNqEsRhkWsSP6DmnXSdmA9tIzVmqHTvHo5aTUUSJNSHmcsDxNV/FEOUv2N++J8pR3G9PfTr18YgXOif1LN8v8r07WIjDAoarBpZoixcjqnNQlUV2RN9e/VCXIISJO4j7FOWFHKWd91pUmVrXL3loq/q4yJSv3Tpqb4EPekgZs/hznPGjuV0zCxzTpMqYrh13soUzzPEAVNdTRIO8h7vGAR62mBVqiXU1TtUyq2cG3pd1+AleAk1c=</latexit><latexit sha1_base64="Bu4+jv7LGlv40ZQVr20DXOMRkfY=">AAACxnicjVHLSsNAFD2Nr1pfVZdugkXoqiRudFlw02VF+4BaSjKd1qF5OZkopQj+gFv9NPEP9C+8M6agFtEJSc6ce8+Zuff6SSBS5TivBWtpeWV1rbhe2tjc2t4p7+610ziTjLdYHMSy63spD0TEW0qogHcTyb3QD3jHn5zpeOeWy1TE0aWaJrwfeuNIjATzFFEXNwN3UK44NccsexG4OaggX824/IIrDBGDIUMIjgiKcAAPKT09uHCQENfHjDhJSJg4xz1KpM0oi1OGR+yEvmPa9XI2or32TI2a0SkBvZKUNo5IE1OeJKxPs008M86a/c17Zjz13ab093OvkFiFa2L/0s0z/6vTtSiMcGpqEFRTYhhdHctdMtMVfXP7S1WKHBLiNB5SXBJmRjnvs200qald99Yz8TeTqVm9Z3luhnd9Sxqw+3Oci6B9XHMJnzuVejUfdREHOESV5nmCOhpookXeYzziCc9Ww4qszLr7TLUKuWYf35b18AH0Po/8</latexit>

1

x

<latexit sha1_base64="+0kDlssSGRRwI/Gdid0VoL3QvkM=">AAACw3icjVHLSsNAFD2Nr1pfVZdugkXoqiRu1JUFQVy2YmxBiyTTaQ3Ni8lELKVf4FZ/w7V/Iv6B/oV3pimoRfSGJGfOvefM3LleEviptKy3gjE3v7C4VFwurayurW+UN7cu0zgTjDssDmLR9tyUB37EHenLgLcTwd3QC3jLG5yofOuOi9SPows5THgndPuR3/OZK4lq3t+UK1bN0mHOAjsHlePnl3NQNOLyK67RRQyGDCE4IkjCAVyk9FzBhoWEuA5GxAlCvs5zjFEibUZVnCpcYgf07dPqKmcjWivPVKsZ7RLQK0hpYo80MdUJwmo3U+cz7azY37xH2lOdbUh/L/cKiZW4JfYv3bTyvzrVi0QPh7oHn3pKNKO6Y7lLpm9Fndz80pUkh4Q4hbuUF4SZVk7v2dSaVPeu7tbV+XddqVi1Znlthg91Shqw/XOcs8DZrx3V7KZVqVcxiSJ2sIsqjfMAdZyhAUdbP+ART8apERjCkJNSo5BrtvEtjPEnJHmRKg==</latexit><latexit sha1_base64="OAzCcSBBUK/mp5IXar1dftjX5gg=">AAACw3icjVHLSsNAFD2Nr1pfVZeCBIvQVUncqCsLgrhswdhCLZKk0xqaF5OJWEqXrtzqb7jun4h/oPgT3pmmoBbRCUnOnHvOmbkzTux7iTCM15w2N7+wuJRfLqysrq1vFDe3LpMo5S6z3MiPeNOxE+Z7IbOEJ3zWjDmzA8dnDad/KuuNW8YTLwovxCBm7cDuhV7Xc21BVP3uulgyKoYa+iwwM1A6eR7XP+53x7Wo+IIrdBDBRYoADCEEYR82EnpaMGEgJq6NIXGckKfqDCMUyJuSipHCJrZP3x7NWhkb0lxmJsrt0io+vZycOvbJE5GOE5ar6aqeqmTJ/pY9VJlybwP6O1lWQKzADbF/+abK//pkLwJdHKkePOopVozszs1SUnUqcuf6l64EJcTESdyhOifsKuf0nHXlSVTv8mxtVX9TSsnKuZtpU7zLXdIFmz+vcxZYB5Xjilk3StUyJiOPHeyhTNd5iCrOUYOloh/wiCftTPM1romJVMtlnm18G9roEx+Zk28=</latexit><latexit sha1_base64="OAzCcSBBUK/mp5IXar1dftjX5gg=">AAACw3icjVHLSsNAFD2Nr1pfVZeCBIvQVUncqCsLgrhswdhCLZKk0xqaF5OJWEqXrtzqb7jun4h/oPgT3pmmoBbRCUnOnHvOmbkzTux7iTCM15w2N7+wuJRfLqysrq1vFDe3LpMo5S6z3MiPeNOxE+Z7IbOEJ3zWjDmzA8dnDad/KuuNW8YTLwovxCBm7cDuhV7Xc21BVP3uulgyKoYa+iwwM1A6eR7XP+53x7Wo+IIrdBDBRYoADCEEYR82EnpaMGEgJq6NIXGckKfqDCMUyJuSipHCJrZP3x7NWhkb0lxmJsrt0io+vZycOvbJE5GOE5ar6aqeqmTJ/pY9VJlybwP6O1lWQKzADbF/+abK//pkLwJdHKkePOopVozszs1SUnUqcuf6l64EJcTESdyhOifsKuf0nHXlSVTv8mxtVX9TSsnKuZtpU7zLXdIFmz+vcxZYB5Xjilk3StUyJiOPHeyhTNd5iCrOUYOloh/wiCftTPM1romJVMtlnm18G9roEx+Zk28=</latexit><latexit sha1_base64="ZBl2LIPumnpFgpv5+M3PNrgmiIQ=">AAACw3icjVHLSsNAFD2Nr1pfVZdugkXoqiRu1F1BEJctGFuoRZJ0WofmxWQiltIvcKvfJv6B/oV3ximoRXRCkjPn3nNm7r1BFvFcOs5ryVpaXlldK69XNja3tnequ3vXeVqIkHlhGqWiG/g5i3jCPMllxLqZYH4cRKwTjM9VvHPPRM7T5EpOMtaP/VHChzz0JVHth9tqzWk4etmLwDWgBrNaafUFNxggRYgCMRgSSMIRfOT09ODCQUZcH1PiBCGu4wwzVEhbUBajDJ/YMX1HtOsZNqG98sy1OqRTInoFKW0ckSalPEFYnWbreKGdFfub91R7qrtN6B8Yr5hYiTti/9LNM/+rU7VIDHGqa+BUU6YZVV1oXArdFXVz+0tVkhwy4hQeUFwQDrVy3mdba3Jdu+qtr+NvOlOxah+a3ALv6pY0YPfnOBeBd9w4a7htp9asm0mXcYBD1GmcJ2jiEi142voRT3i2LqzIEpb8TLVKRrOPb8uafQDNMY8z</latexit>

y

<latexit sha1_base64="nF5BvtnQYeHoFMDxg4JJUMmWzfg=">AAACw3icjVHLSsNAFD1NfdT6qrp0EyyFrkriRt0VBHHZgrGFWiSZTmtoXkwmQinFD3Cre/9K/AP9C+9MU1CL6IQkZ86958zce70k8FNpWW8Fo7iyurZe2ihvbm3v7Fb29q/TOBOMOywOYtH13JQHfsQd6cuAdxPB3dALeMcbn6t4556L1I+jKzlJeD90R5E/9JkriWpPbitVq2HpZS4DOwfVZrH28AKgFVdecYMBYjBkCMERQRIO4CKlpwcbFhLi+pgSJwj5Os4xQ5m0GWVxynCJHdN3RLtezka0V56pVjM6JaBXkNJEjTQx5QnC6jRTxzPtrNjfvKfaU91tQn8v9wqJlbgj9i/dIvO/OlWLxBCnugafako0o6pjuUumu6Jubn6pSpJDQpzCA4oLwkwrF302tSbVtaveujr+rjMVq/Ysz83woW5JA7Z/jnMZOMeNs4bdpkHXMV8lHOIIdRrnCZq4RAuOtn7EE56NCyMwhCHnqUYh1xzg2zJmny2DkLs=</latexit><latexit sha1_base64="O5NwD+147UcSAkREdS096je37ic=">AAACw3icjVHLSsNAFD1NfdT6qrp0EyyFrkriRt0VBHHZgrGFKpKk0zo0TcJkIpRS3LhzqwuX/oS/Iv6B/oV3pimoRXRCkjPn3nNm7r1eHPBEWtZbzsgvLC4tF1aKq2vrG5ulre3zJEqFzxw/CiLR9tyEBTxkjuQyYO1YMHfoBazlDY5VvHXDRMKj8EyOYnY5dPsh73HflUQ1R1elslWz9DLngZ2Bcj1fuX15untuRKVXXKCLCD5SDMEQQhIO4CKhpwMbFmLiLjEmThDiOs4wQZG0KWUxynCJHdC3T7tOxoa0V56JVvt0SkCvIKWJCmkiyhOE1WmmjqfaWbG/eY+1p7rbiP5e5jUkVuKa2L90s8z/6lQtEj0c6ho41RRrRlXnZy6p7oq6ufmlKkkOMXEKdykuCPtaOeuzqTWJrl311tXxd52pWLX3s9wUH+qWNGD75zjngbNfO6rZTRp0FdNVwC72UKVxHqCOUzTgaOt7PODRODECQxhymmrkMs0Ovi1j8gkvd5KP</latexit><latexit sha1_base64="O5NwD+147UcSAkREdS096je37ic=">AAACw3icjVHLSsNAFD1NfdT6qrp0EyyFrkriRt0VBHHZgrGFKpKk0zo0TcJkIpRS3LhzqwuX/oS/Iv6B/oV3pimoRXRCkjPn3nNm7r1eHPBEWtZbzsgvLC4tF1aKq2vrG5ulre3zJEqFzxw/CiLR9tyEBTxkjuQyYO1YMHfoBazlDY5VvHXDRMKj8EyOYnY5dPsh73HflUQ1R1elslWz9DLngZ2Bcj1fuX15untuRKVXXKCLCD5SDMEQQhIO4CKhpwMbFmLiLjEmThDiOs4wQZG0KWUxynCJHdC3T7tOxoa0V56JVvt0SkCvIKWJCmkiyhOE1WmmjqfaWbG/eY+1p7rbiP5e5jUkVuKa2L90s8z/6lQtEj0c6ho41RRrRlXnZy6p7oq6ufmlKkkOMXEKdykuCPtaOeuzqTWJrl311tXxd52pWLX3s9wUH+qWNGD75zjngbNfO6rZTRp0FdNVwC72UKVxHqCOUzTgaOt7PODRODECQxhymmrkMs0Ovi1j8gkvd5KP</latexit><latexit sha1_base64="vcWWAnxASnvvVYTaCLNzCUHJg08=">AAACw3icjVHLSsNAFD2Nr/quunQTLEJXJXGj7gqCuGzB2EItkkyndWiahMlEKKVf4Fa/TfwD/QvvjFNQi+iEJGfOvefM3HujLBa58rzXkrO0vLK6Vl7f2Nza3tmt7O3f5GkhGQ9YGqeyE4U5j0XCAyVUzDuZ5OE4ink7Gl3oePuBy1ykybWaZLw3DoeJGAgWKqJak7tK1at7ZrmLwLegCruaaeUFt+gjBUOBMTgSKMIxQuT0dOHDQ0ZcD1PiJCFh4hwzbJC2oCxOGSGxI/oOade1bEJ77ZkbNaNTYnolKV0ckyalPElYn+aaeGGcNfub99R46rtN6B9ZrzGxCvfE/qWbZ/5Xp2tRGODM1CCopswwujpmXQrTFX1z90tVihwy4jTuU1wSZkY577NrNLmpXfc2NPE3k6lZvWc2t8C7viUN2P85zkUQnNTP637LqzZqdtJlHOIINRrnKRq4QhOBsX7EE56dSyd2pKM+U52S1Rzg23JmH8+QjzQ=</latexit>

x

<latexit sha1_base64="jJiUa+Tp8c7VmijGt3l/djO3Pj0=">AAACxnicjVHLSsNAFD2Nr1pfVZdugkXoqiRudGfBTZcV7QNqkWQ6raFJJiQTtRTBH3Cr/+NPiDuX+hGCd6YpqEV0QpIz555zZu6MG/leIi3rJWfMzS8sLuWXCyura+sbxc2tZiLSmPEGE76I266TcN8LeUN60uftKOZO4Pq85Q6PVb11xePEE+GZHEW8GziD0Ot7zJFEnd5c2BfFklWx9DBngZ2B0tHHk3gFUBfFZ5yjBwGGFAE4QkjCPhwk9HRgw0JEXBdj4mJCnq5z3KJA3pRUnBQOsUP6DmjWydiQ5ioz0W5Gq/j0xuQ0sUceQbqYsFrN1PVUJyv2t+yxzlR7G9HfzbICYiUuif3LN1X+16d6kejjUPfgUU+RZlR3LEtJ9amonZtfupKUEBGncI/qMWGmndNzNrUn0b2rs3V0/U0rFavmLNOmeFe7pAu2f17nLGjuV2zCJ1apWsZk5LGDXZTpPg9QRQ11NCh7gHs84NGoGaGRGtcTqZHLPNv4Noy7T1Duk1A=</latexit><latexit sha1_base64="+zFkXTjLySrYrbP1ItiRT9JPJ5A=">AAACxnicjVHLSsNAFD2Nr/quuhHcBIvQVUnc6M6Cmy4r2gfUUpJxWofmRTJRSxH8Abf6C36HPyF+gfoRgnemKfhAdEKSM+eec2bujBt5IpGW9ZwzpqZnZufy8wuLS8srq4W19UYSpjHjdRZ6YdxynYR7IuB1KaTHW1HMHd/1eNMdHKp684LHiQiDEzmMeMd3+oHoCeZIoo6vuna3ULTKlh7mT2BnoHjw/hi+bD74tbDwhFOcIQRDCh8cASRhDw4SetqwYSEiroMRcTEhoesc11ggb0oqTgqH2AF9+zRrZ2xAc5WZaDejVTx6Y3Ka2CFPSLqYsFrN1PVUJyv2t+yRzlR7G9LfzbJ8YiXOif3LN1H+16d6kehhX/cgqKdIM6o7lqWk+lTUzs1PXUlKiIhT+IzqMWGmnZNzNrUn0b2rs3V0/VUrFavmLNOmeFO7pAu2v1/nT9DYLduEj6xipYTxyGML2yjRfe6hgipqqFN2H7e4w71RNQIjNS7HUiOXeTbwZRg3H/TtlIQ=</latexit><latexit sha1_base64="+zFkXTjLySrYrbP1ItiRT9JPJ5A=">AAACxnicjVHLSsNAFD2Nr/quuhHcBIvQVUnc6M6Cmy4r2gfUUpJxWofmRTJRSxH8Abf6C36HPyF+gfoRgnemKfhAdEKSM+eec2bujBt5IpGW9ZwzpqZnZufy8wuLS8srq4W19UYSpjHjdRZ6YdxynYR7IuB1KaTHW1HMHd/1eNMdHKp684LHiQiDEzmMeMd3+oHoCeZIoo6vuna3ULTKlh7mT2BnoHjw/hi+bD74tbDwhFOcIQRDCh8cASRhDw4SetqwYSEiroMRcTEhoesc11ggb0oqTgqH2AF9+zRrZ2xAc5WZaDejVTx6Y3Ka2CFPSLqYsFrN1PVUJyv2t+yRzlR7G9LfzbJ8YiXOif3LN1H+16d6kehhX/cgqKdIM6o7lqWk+lTUzs1PXUlKiIhT+IzqMWGmnZNzNrUn0b2rs3V0/VUrFavmLNOmeFO7pAu2v1/nT9DYLduEj6xipYTxyGML2yjRfe6hgipqqFN2H7e4w71RNQIjNS7HUiOXeTbwZRg3H/TtlIQ=</latexit><latexit sha1_base64="99nZGlvlTn7OuWt5apEidAwa8CA=">AAACxnicjVHLSsNAFD2Nr1pfVZdugkXoqiRudFlw02VF+4BaSjKd1qF5kUzUUgR/wK1+mvgH+hfeGaegFtEJSc6ce8+Zuff6SSAy6TivBWtpeWV1rbhe2tjc2t4p7+61szhPGW+xOIjTru9lPBARb0khA95NUu6FfsA7/uRMxTs3PM1EHF3KacL7oTeOxEgwTxJ1cTdwB+WKU3P0sheBa0AFZjXj8guuMEQMhhwhOCJIwgE8ZPT04MJBQlwfM+JSQkLHOe5RIm1OWZwyPGIn9B3TrmfYiPbKM9NqRqcE9KaktHFEmpjyUsLqNFvHc+2s2N+8Z9pT3W1Kf994hcRKXBP7l26e+V+dqkVihFNdg6CaEs2o6phxyXVX1M3tL1VJckiIU3hI8ZQw08p5n22tyXTtqreejr/pTMWqPTO5Od7VLWnA7s9xLoL2cc0lfO5U6lUz6iIOcIgqzfMEdTTQRIu8x3jEE56thhVZuXX7mWoVjGYf35b18AEE+5AD</latexit>

1

x

2

<latexit sha1_base64="BrcSq+f6sjiKqkWzFS0otC0BTkU=">AAACxnicjVHLSsNAFD2Nr1pfVZdugkXoqiTd6M6Cmy4r2gfUUpLptA5Nk5BM1FIEf8Ct/o8/Ie5c6kcI3pmmoBbRCUnOnHvOmbkzbuiJWFrWS8ZYWFxaXsmu5tbWNza38ts7jThIIsbrLPCCqOU6MfeEz+tSSI+3wog7I9fjTXd4ourNKx7FIvDP5TjknZEz8EVfMEcSdXbTLXfzBatk6WHOAzsFheOPp+AVQC3IP+MCPQRgSDAChw9J2IODmJ42bFgIietgQlxESOg6xy1y5E1IxUnhEDuk74Bm7ZT1aa4yY+1mtIpHb0ROEwfkCUgXEVarmbqe6GTF/pY90Zlqb2P6u2nWiFiJS2L/8s2U//WpXiT6ONI9COop1IzqjqUpiT4VtXPzS1eSEkLiFO5RPSLMtHN2zqb2xLp3dbaOrr9ppWLVnKXaBO9ql3TB9s/rnAeNcskmfGoVKkVMRxZ72EeR7vMQFVRRQ52yB7jHAx6NquEbiXE9lRqZ1LOLb8O4+wRTTpNR</latexit><latexit sha1_base64="d9xL4v6Jg0xqzVs5cfoORmnxl6U=">AAACxnicjVHLSsNAFD2Nr1pfVTeCm2ARuipJN7qz4KbLivYBtZQkndbQvJhM1FIEf8Ct/oLf4U+IX6B+hOCdaQpqEZ2Q5My555yZO2NHnhsLw3jJaHPzC4tL2eXcyura+kZ+c6sRhwl3WN0JvZC3bCtmnhuwunCFx1oRZ5Zve6xpD49lvXnJeOyGwZkYRazjW4PA7buOJYg6ve6Wu/mCUTLU0GeBmYLC0cdT+Lrz6NfC/DPO0UMIBwl8MAQQhD1YiOlpw4SBiLgOxsRxQq6qM9wgR96EVIwUFrFD+g5o1k7ZgOYyM1Zuh1bx6OXk1LFPnpB0nLBcTVf1RCVL9rfsscqUexvR306zfGIFLoj9yzdV/tcnexHo41D14FJPkWJkd06akqhTkTvXv3QlKCEiTuIe1TlhRzmn56wrT6x6l2drqfqbUkpWzp1Um+Bd7pIu2Px5nbOgUS6ZhE+MQqWIychiF3so0n0eoIIqaqhT9gB3uMeDVtUCLdGuJlItk3q28W1ot5/3TZSF</latexit><latexit sha1_base64="d9xL4v6Jg0xqzVs5cfoORmnxl6U=">AAACxnicjVHLSsNAFD2Nr1pfVTeCm2ARuipJN7qz4KbLivYBtZQkndbQvJhM1FIEf8Ct/oLf4U+IX6B+hOCdaQpqEZ2Q5My555yZO2NHnhsLw3jJaHPzC4tL2eXcyura+kZ+c6sRhwl3WN0JvZC3bCtmnhuwunCFx1oRZ5Zve6xpD49lvXnJeOyGwZkYRazjW4PA7buOJYg6ve6Wu/mCUTLU0GeBmYLC0cdT+Lrz6NfC/DPO0UMIBwl8MAQQhD1YiOlpw4SBiLgOxsRxQq6qM9wgR96EVIwUFrFD+g5o1k7ZgOYyM1Zuh1bx6OXk1LFPnpB0nLBcTVf1RCVL9rfsscqUexvR306zfGIFLoj9yzdV/tcnexHo41D14FJPkWJkd06akqhTkTvXv3QlKCEiTuIe1TlhRzmn56wrT6x6l2drqfqbUkpWzp1Um+Bd7pIu2Px5nbOgUS6ZhE+MQqWIychiF3so0n0eoIIqaqhT9gB3uMeDVtUCLdGuJlItk3q28W1ot5/3TZSF</latexit><latexit sha1_base64="DAA2hroAh3d/JLjnZKACZY1rPXk=">AAACxnicjVHLSsNAFD2Nr1pfVZdugkXoqiRudFlw02VF+4BaSpJO69C8mEzUUgR/wK1+mvgH+hfeGaegFtEJSc6ce8+Zuff6acgz6TivBWtpeWV1rbhe2tjc2t4p7+61syQXAWsFSZiIru9lLOQxa0kuQ9ZNBfMiP2Qdf3Km4p0bJjKexJdymrJ+5I1jPuKBJ4m6uBscD8oVp+boZS8C14AKzGom5RdcYYgEAXJEYIghCYfwkNHTgwsHKXF9zIgThLiOM9yjRNqcshhleMRO6DumXc+wMe2VZ6bVAZ0S0itIaeOINAnlCcLqNFvHc+2s2N+8Z9pT3W1Kf994RcRKXBP7l26e+V+dqkVihFNdA6eaUs2o6gLjkuuuqJvbX6qS5JASp/CQ4oJwoJXzPttak+naVW89HX/TmYpV+8Dk5nhXt6QBuz/HuQjaxzWX8LlTqVfNqIs4wCGqNM8T1NFAEy3yHuMRT3i2GlZs5dbtZ6pVMJp9fFvWwwcHW5AE</latexit>

y

<latexit sha1_base64="HqzrfLRU2eA+HZTDEsLIbE06Apw=">AAACxnicjVHLTsJAFD0UH4gv1KWbRkLCirRsdEnihiVGeSRISFsGnNBXplMNIUZ/wK1u/SvjH+hfeGcoiY8YnabtmXPvOTP3Xjf2eSIt6zVn5FdW19YLG8XNre2d3dLefieJUuGxthf5kei5TsJ8HrK25NJnvVgwJ3B91nWnpyrevWYi4VF4IWcxGwTOJORj7jmSqPPZsD4sla2apZf5E9gZKDfylbtnAK2o9IJLjBDBQ4oADCEkYR8OEnr6sGEhJm6AOXGCENdxhlsUSZtSFqMMh9gpfSe062dsSHvlmWi1R6f49ApSmqiQJqI8QVidZup4qp0V+5v3XHuqu83o72ZeAbESV8T+pVtm/lenapEY40TXwKmmWDOqOi9zSXVX1M3NT1VJcoiJU3hEcUHY08pln02tSXTtqreOjr/pTMWqvZflpnhXt6QB29/H+RN06jWb8BlNuorFKuAQR6jSPI/RQBMttMl7ggc84sloGqGRGjeLVCOXaQ7wZRn3H2kokYw=</latexit><latexit sha1_base64="pBJS/dy5h2v0/UlruRQa1ysfykw=">AAACxnicjVHLTsJAFD0UH4gv1KWbRkLCirRsdEnihiVGeSRISFsGnNBX2qmGEKMLt241Lv0Jf8X4B/oX3hlKohKj07Q9c+49Z+bea4cuj4VhvGW07NLyympuLb++sbm1XdjZbcVBEjms6QRuEHVsK2Yu91lTcOGyThgxy7Nd1rbHxzLevmRRzAP/TExC1vOskc+H3LEEUaeTfrVfKBoVQy19EZgpKNaypZuXp7vnRlB4xTkGCOAggQcGH4KwCwsxPV2YMBAS18OUuIgQV3GGa+RJm1AWowyL2DF9R7TrpqxPe+kZK7VDp7j0RqTUUSJNQHkRYXmaruKJcpbsb95T5SnvNqG/nXp5xApcEPuXbp75X52sRWCII1UDp5pCxcjqnNQlUV2RN9e/VCXIISRO4gHFI8KOUs77rCtNrGqXvbVU/F1lSlbunTQ3wYe8JQ3Y/DnORdCqVkzCJzTpMmYrh30coEzzPEQNdTTQJO8R7vGAR62u+VqiXc1StUyq2cO3pd1+Amzwk2A=</latexit><latexit sha1_base64="pBJS/dy5h2v0/UlruRQa1ysfykw=">AAACxnicjVHLTsJAFD0UH4gv1KWbRkLCirRsdEnihiVGeSRISFsGnNBX2qmGEKMLt241Lv0Jf8X4B/oX3hlKohKj07Q9c+49Z+bea4cuj4VhvGW07NLyympuLb++sbm1XdjZbcVBEjms6QRuEHVsK2Yu91lTcOGyThgxy7Nd1rbHxzLevmRRzAP/TExC1vOskc+H3LEEUaeTfrVfKBoVQy19EZgpKNaypZuXp7vnRlB4xTkGCOAggQcGH4KwCwsxPV2YMBAS18OUuIgQV3GGa+RJm1AWowyL2DF9R7TrpqxPe+kZK7VDp7j0RqTUUSJNQHkRYXmaruKJcpbsb95T5SnvNqG/nXp5xApcEPuXbp75X52sRWCII1UDp5pCxcjqnNQlUV2RN9e/VCXIISRO4gHFI8KOUs77rCtNrGqXvbVU/F1lSlbunTQ3wYe8JQ3Y/DnORdCqVkzCJzTpMmYrh30coEzzPEQNdTTQJO8R7vGAR62u+VqiXc1StUyq2cO3pd1+Amzwk2A=</latexit><latexit sha1_base64="MC6AZD2FIz38Sfs93gixq5QQQsc=">AAACxnicjVHLSsNAFD2Nr1pfVZdugkXoqiTd6LLgpsuK9gG1lGQ6raF5MZkopQj+gFv9NPEP9C+8M05BLaITkpw5954zc+/10zDIpOO8FqyV1bX1jeJmaWt7Z3evvH/QyZJcMN5mSZiInu9lPAxi3paBDHkvFdyL/JB3/em5indvuciCJL6Ss5QPIm8SB+OAeZKoy9mwPixXnJqjl70MXAMqMKuVlF9wjRESMOSIwBFDEg7hIaOnDxcOUuIGmBMnCAU6znGPEmlzyuKU4RE7pe+Edn3DxrRXnplWMzolpFeQ0sYJaRLKE4TVabaO59pZsb95z7WnutuM/r7xioiVuCH2L90i8786VYvEGGe6hoBqSjWjqmPGJdddUTe3v1QlySElTuERxQVhppWLPttak+naVW89HX/TmYpVe2Zyc7yrW9KA3Z/jXAades0lfOFUGlUz6iKOcIwqzfMUDTTRQpu8J3jEE56tphVbuXX3mWoVjOYQ35b18AEJvZAF</latexit>

2

y

<latexit sha1_base64="CcrsHLQA3U87k+B+4nsDB32SG8o=">AAACxnicjVHLTsJAFD0UH4gv1KWbRkLCirRudEnihiVGeSRISDsM2NBXplMNIUZ/wK1u/SvjH+hfeGcoiUqMTtP2zLn3nJl7rxv7XiIt6y1n5FdW19YLG8XNre2d3dLefjuJUsF4i0V+JLquk3DfC3lLetLn3VhwJ3B93nEnZyreueEi8aLwUk5j3g+cceiNPOZIoi6mA3tQKls1Sy9zGdgZKNfzlfsXAM2o9IorDBGBIUUAjhCSsA8HCT092LAQE9fHjDhByNNxjjsUSZtSFqcMh9gJfce062VsSHvlmWg1o1N8egUpTVRIE1GeIKxOM3U81c6K/c17pj3V3ab0dzOvgFiJa2L/0i0y/6tTtUiMcKpr8KimWDOqOpa5pLor6ubml6okOcTEKTykuCDMtHLRZ1NrEl276q2j4+86U7Fqz7LcFB/qljRg++c4l0H7uGYTPqdJVzFfBRziCFWa5wnqaKCJFnmP8YgnPBsNIzRS43aeauQyzQG+LePhE2bIkYs=</latexit><latexit sha1_base64="w4Mnnwtr6rxa0rAmKcUXgNTkq9g=">AAACxnicjVHLSsNAFD1NfdT6qrp0EyyFrkriRpcFN11WtA+oUpLptIamSZhMlFJEF27dKi79CX9F/AP9C+9MU1CL6IQkZ86958zce93I92JpWW8ZI7uwuLScW8mvrq1vbBa2tptxmAjGGyz0Q9F2nZj7XsAb0pM+b0eCOyPX5y13eKTirUsuYi8MTuU44ucjZxB4fY85kqiTcdfuFopWxdLLnAd2CorVbOnm5enuuR4WXnGGHkIwJBiBI4Ak7MNBTE8HNixExJ1jQpwg5Ok4xzXypE0oi1OGQ+yQvgPadVI2oL3yjLWa0Sk+vYKUJkqkCSlPEFanmTqeaGfF/uY90Z7qbmP6u6nXiFiJC2L/0s0y/6tTtUj0cahr8KimSDOqOpa6JLor6ubml6okOUTEKdyjuCDMtHLWZ1NrYl276q2j4+86U7Fqz9LcBB/qljRg++c450Fzv2ITPqZJlzFdOexiD2Wa5wGqqKGOBnkPcI8HPBo1IzAS42qaamRSzQ6+LeP2E2qQk18=</latexit><latexit sha1_base64="w4Mnnwtr6rxa0rAmKcUXgNTkq9g=">AAACxnicjVHLSsNAFD1NfdT6qrp0EyyFrkriRpcFN11WtA+oUpLptIamSZhMlFJEF27dKi79CX9F/AP9C+9MU1CL6IQkZ86958zce93I92JpWW8ZI7uwuLScW8mvrq1vbBa2tptxmAjGGyz0Q9F2nZj7XsAb0pM+b0eCOyPX5y13eKTirUsuYi8MTuU44ucjZxB4fY85kqiTcdfuFopWxdLLnAd2CorVbOnm5enuuR4WXnGGHkIwJBiBI4Ak7MNBTE8HNixExJ1jQpwg5Ok4xzXypE0oi1OGQ+yQvgPadVI2oL3yjLWa0Sk+vYKUJkqkCSlPEFanmTqeaGfF/uY90Z7qbmP6u6nXiFiJC2L/0s0y/6tTtUj0cahr8KimSDOqOpa6JLor6ubml6okOUTEKdyjuCDMtHLWZ1NrYl276q2j4+86U7Fqz9LcBB/qljRg++c450Fzv2ITPqZJlzFdOexiD2Wa5wGqqKGOBnkPcI8HPBo1IzAS42qaamRSzQ6+LeP2E2qQk18=</latexit><latexit sha1_base64="9hIENFVim/elkbVkZ3y2lYeneV4=">AAACxnicjVHLSsNAFD2Nr1pfVZdugkXoqiRudFlw02VF+wAtJZlO69A0CZOJUorgD7jVTxP/QP/CO+MU1CI6IcmZc+85M/feMI1EpjzvteAsLa+srhXXSxubW9s75d29dpbkkvEWS6JEdsMg45GIeUsJFfFuKnkwCSPeCcdnOt655TITSXyppinvTYJRLIaCBYqoi2nf75crXs0zy10EvgUV2NVMyi+4xgAJGHJMwBFDEY4QIKPnCj48pMT1MCNOEhImznGPEmlzyuKUERA7pu+IdleWjWmvPTOjZnRKRK8kpYsj0iSUJwnr01wTz42zZn/znhlPfbcp/UPrNSFW4YbYv3TzzP/qdC0KQ5yaGgTVlBpGV8esS266om/ufqlKkUNKnMYDikvCzCjnfXaNJjO1694GJv5mMjWr98zm5njXt6QB+z/HuQjaxzWf8LlXqVftqIs4wCGqNM8T1NFAEy3yHuERT3h2Gk7s5M7dZ6pTsJp9fFvOwwcHXZAE</latexit>

1

{x, y}

<latexit sha1_base64="7Byszu/yLrE1FM6rJ9ZnVicZWdE=">AAADH3icjVLLTttAFD0xr5RXoV12Y4GQWCDksKHLSGy6BKlJkAhCtjMBi/FD9rhqCHxEt7DiT9ixQ11Vyh+0f9EzN47EQwjGsufOueecmXs9QaajwnjeqOZMTc/MztU/zC8sLi1/XFn91C7SMg9VK0x1mh8GfqF0lKiWiYxWh1mu/DjQqhOc79l854fKiyhNvptBpo5j/zSJ+lHoG0Kd7vDn1qB7dbKy7m17MtyXQaMK1pv1iz93APbT1VoNXfSQIkSJGAoJDGMNHwWfIzTgISN2jCGxnFEkeYUrzFNbkqXI8Ime83vK1VGFJlxbz0LUIXfRfHMqXWxQk5KXM7a7uZIvxdmir3kPxdOebcA5qLxiogZnRN/STZjv1dlaDPr4KjVErCkTxFYXVi6ldMWe3H1UlaFDRszGPeZzxqEoJ312RVNI7ba3vuT/CtOidh1W3BL/qlP2iPQ5x8wNZR7XYD109VcmHNvTmKd4zLPuWpBLssnnrWk8vyMvg/bOdoPxAa/PJsajji9YwybvyC6a+IZ9tKRzv3CNG+fWuXcenN9jqlOrNJ/xZDij/4Mopb0=</latexit><latexit sha1_base64="6K+kvl+ylMJlRkhHs/ydf98kbWI=">AAADH3icjVJNT9tAFJy40AZKC5QjFwtUiQNCTi9wjMSFYxANQSII2c4GLNYfstdVQ8qP4Aonfg0HJNQTEv8A/gWzL44ERYiuZe/beTOz+543yHRUGM+7rzkfJiY/fqpPTX+e+fJ1dm7+226Rlnmo2mGq03wv8Aulo0S1TWS02sty5ceBVp3gZNPmO79UXkRp8tMMMnUQ+0dJ1I9C3xDqdIe/Vwfds8O5ZW/Nk+G+DhpVsNysn97d7LSmWul8rYYuekgRokQMhQSGsYaPgs8+GvCQETvAkFjOKJK8whmmqS3JUmT4RE/4PeJqv0ITrq1nIeqQu2i+OZUuvlOTkpcztru5ki/F2aJveQ/F055twDmovGKiBsdE39ONmf+rs7UY9LEhNUSsKRPEVhdWLqV0xZ7cfVaVoUNGzMY95nPGoSjHfXZFU0jttre+5B+EaVG7DituicfqlD0ifc4xc0OZRzVYD139lTHH9jTmKZ7zrLsW5A/Z5PPWNP69I6+D3R9rDcbbvD4rGI06FrGEFd6RdTSxhRba0rlzXODSuXKunVvn74jq1CrNAl4M5/4JUiemdA==</latexit><latexit sha1_base64="6K+kvl+ylMJlRkhHs/ydf98kbWI=">AAADH3icjVJNT9tAFJy40AZKC5QjFwtUiQNCTi9wjMSFYxANQSII2c4GLNYfstdVQ8qP4Aonfg0HJNQTEv8A/gWzL44ERYiuZe/beTOz+543yHRUGM+7rzkfJiY/fqpPTX+e+fJ1dm7+226Rlnmo2mGq03wv8Aulo0S1TWS02sty5ceBVp3gZNPmO79UXkRp8tMMMnUQ+0dJ1I9C3xDqdIe/Vwfds8O5ZW/Nk+G+DhpVsNysn97d7LSmWul8rYYuekgRokQMhQSGsYaPgs8+GvCQETvAkFjOKJK8whmmqS3JUmT4RE/4PeJqv0ITrq1nIeqQu2i+OZUuvlOTkpcztru5ki/F2aJveQ/F055twDmovGKiBsdE39ONmf+rs7UY9LEhNUSsKRPEVhdWLqV0xZ7cfVaVoUNGzMY95nPGoSjHfXZFU0jttre+5B+EaVG7DituicfqlD0ifc4xc0OZRzVYD139lTHH9jTmKZ7zrLsW5A/Z5PPWNP69I6+D3R9rDcbbvD4rGI06FrGEFd6RdTSxhRba0rlzXODSuXKunVvn74jq1CrNAl4M5/4JUiemdA==</latexit><latexit sha1_base64="Gio+MHbgHb5MAU1s14sPv4MrfEU=">AAADH3icjVLLTttAFD1xS6EplNAuu7EaVcqiihw2ZYnEhiVIDUEiUWU7k9TK+CF7XDVK8xFs2xVfww51yx/AX/TMZSLxUNWOZc+dc885M/d6okInlQmC64b37Pnai/WNl81Xm1uvt1s7b06qvC5j1Y9znZenUVgpnWSqbxKj1WlRqjCNtBpEswObH3xTZZXk2WczL9QoDadZMkni0BAaDBffP86Hyy+tdtANZPhPg54L2nDjKN9pNDDEGDli1EihkMEw1ghR8TlDDwEKYiMsiJWMEskrLNGktiZLkRESnfE75erMoRnX1rMSdcxdNN+SSh8fqMnJKxnb3XzJ1+Js0b95L8TTnm3OOXJeKVGDr0T/pVsx/1dnazGYYE9qSFhTIYitLnYutXTFnty/V5WhQ0HMxmPmS8axKFd99kVTSe22t6Hkb4RpUbuOHbfGrTvlmMiEc8rcQua7GqyHdn9lxbE9TXmK+zzrrgX5QTb5vDW9x3fkaXCy2+0xPg7a+x13fzbwDu/R4R35hH0c4gh96dw5fuKXd+Fdelfe7zuq13Cat3gwvOs/jtSjZQ==</latexit>

X

Z

Y

X

Y

Z

Figure 1: Binary CBP’s reduction rule (left): the nodes x and y are ready to synchronize on symbols f

and ¯

f (of arity 2), and are connected by an edge. X (resp. Y ) denotes nodes in the context that are

connected to x but not y (resp. y but not x). Z denotes nodes of the context of the reduction that

are connected to both x and y. The reduction replaces nodes x and y by their continuations x

1

, x

2

and

y

1

, y

2

. New edges connect nodes in X (resp. Y ) and Z to the continuations of x (resp. y). On the right,

the reduction scheme for n-ary functions in the full CBP.

We let

P = {p, q, . . . } denote the set of process terms. We also consider the involution

¯. :

F → F that will serve to denote dual function symbols

2

.

Let

V =

def

{x, y, z, . . . } be a set of vertices. A process graph Γ = (V, E, π : V → P)

is a tuple where V

⊆ V are the vertices of Γ, E ⊆ {{x, y} | x, y ∈ V } are its edges,

and π : V

→ P is a labeling function that maps each vertex to a process. We use

G =

def

{Γ, ∆, . . . } to denote the set of process graphs.

2.2. Update

Computations in CBP progress in the style of classical process algebra:

complemen-tary communication symbols are consumed conjunctly and their continuation is spawned.

In the context of binary CBP, each function symbol comes with two continuation

pro-cesses. Unlike the CCS term a.(p

k q) that has a unique continuation p k q, the CBP

term a(p, q) has two continuations that may not exchange messages in the future.

3

This

is captured by a special form of substitution (described below) that substitutes a node

by two continuation nodes, while taking care of the new edges that should appear.

We introduce the update functions that will be used to bring process graphs into a

reducible form. These functions are defined respectively on V, E, π and eventually on Γ.

2

Unlike CCS, self-dual function symbols, ¯

f = f , are also allowed.

3

However, the CCS process a.(p k q) can be mimicked by the CBP process a(p k q,

0

), where p and q

(6)

For all V, E, π, with x

∈ V , x

1

, x

2

6∈ V and p, q ∈ P:

V [x

1

, x

2

/x]

=

def

(V

\ x) ] {x

1

, x

2

}

(E

] {{z, t}})[x

1

, x

2

/x]

=

def

{{x

1

, t

}, {x

2

, t

}} ] (E[x

1

, x

2

/x]) if x = z

(E

] {{z, t}})[x

1

, x

2

/x]

=

def

{{z, t}} ] (E[x

1

, x

2

/x]) if x

6∈ {z, t}

∅[x

1

, x

2

/x]

=

def

π[x

1

: p, x

2

: q/x]

=

def

[y

7→ π(y)]

y

∈V \{x}

+ [x

1

7→ p; x

2

7→ q]

where π

0

= π + [y

7→ p] is a labeling map with Dom(π

0

) = Dom(π)

] {y} and satisfying

π

0

(x) = π(x) for all x

∈ Dom(π) and π

0

(y) = p.

Definition 2.1 (Process graph update). Let Γ =

def

(V, E, π) and Γ

0

=

def

(V

0

, E

0

, π

0

).

We define Γ

{(x

1

: p, x

2

: q)/x

| (y

1

: p

0

, y

2

: q

0

)/y

} = Γ

0

if:

V

0

= V [x

1

, x

2

/x][y

1

, y

2

/y]

E

0

= (E

\ {{x, y}})[x

1

, x

2

/x][y

1

, y

2

/y]

∪ {{x

1

, y

1

}, {x

2

, y

2

}}

π

0

= π[x

1

: p, x

2

: q/x][y

1

: p

0

, y

2

: q

0

/y]

Let x be a vertex and p be a process, we use

{x : p} for the process graph (V, E, π)

where V =

{x}, E = ∅ and π(x) = p. We say that a process graph (V, E, π) is idle if

π(x) = 0 for all x

∈ V .

2.3. Normalization

Process graph reduction can be blocked by processes that are not in a reducible form.

This is due to three factors:

• Processes of the form p k q need to be distributed as two processes connected by

an edge.

• Restriction operators need to act as a fresh function symbol generators at the level

of process graphs.

• Constants need to be replaced by their definitions.

Bringing process graphs to a reducible form is the job of the normalization procedure

that we introduce now. For all p

∈ P, for all function symbols f, g ∈ F such that g does

not occur in p, we write p

{g/f} for the substitution of symbol f by g in p.

We define the function fn :

P → V, which yields the free names of processes, as:

fn(f (p, q)) =

def

{f} ∪ fn(p) ∪ fn(q)

fn(p + q)

=

def

fn(p)

∪ fn(q)

fn(p

k q)

=

def

fn(p)

∪ fn(q)

fn(D( ˜

f ))

=

def

{f ∈ ˜

f

}

fn(0)

=

def

fn(p

\ H)

=

def

fn(p)

\ H

(7)

and, for all process graph (V, E, π), we define fn(π) =

def

S

x

∈V

fn(π(x)). Process

normal-ization V

p

⊆ P × P is:

p

k (q \ H) V

p

(p

k q) \ H if H ∩ fn(p) = ∅

(p

\ H) k q V

p

(p

k q) \ H if H ∩ fn(q) = ∅

p

\ H \ H

0

V

p

p

\ (H ∪ H

0

)

D( ˜

f )

V

p

s

{ ˜

f /˜

g

} if (D(˜g), s) ∈ Def

and is applied up-to α renaming of bound names. Normalization propagates at the level

of process graphs. For all x

∈ V :

(V, E, π + [x

7→ p]) V

g

(V, E, π + [x

7→ q]) if p V

p

q

(V, E, π + [x

7→ p \ {g} ] H]) V

g

(V, E, π + [x

7→ (p{f/g}) \ H])

if f

6∈ fn(π) ∪ fn(p) ∪ H

(V, E, π + [x

7→ p k q]) V

g

(V [x

1

, x

2

/x], E[x

1

, x

2

/x], π[x

1

: p, x

2

: q/x])

where x

i

, y

i

6∈ V .

Definition 2.2 (Normalized process graph). A process graph (V, E, π) is normalized if

all its nodes are either idle or labeled by a function symbol, i.e. for all x

∈ V , π(x) = 0

or π(x) = f (p, q) for some f

∈ F and p, q ∈ P.

2.4. Process graph rewriting

We are now in position to formally describe the reduction given in Fig.

1

. Summation

contexts are terms with exactly one hole of the form:

S[

•] =

def

s +

• | • + s | •

The process graph reduction semantics is the least relation satisfying derivations (

1

) and

(

2

), for all Γ =

def

(V, E, π).

{x, y} ∈ E {x

0

, x

1

, y

0

, y

1

} ∩ V = ∅ π(x) = S[f(p

0

, p

1

)]

π(y) = S

0

[ ¯

f (q

0

, q

1

)]

Γ

{x,y}

Γ

{(x

0

: p

0

, x

1

: p

1

)/x

| (y

1

: q

0

, y

1

: q

1

)/y

}

(1)

Reduction of process graphs is performed up-to normalization steps:

Γ V

g

{x,y}

0

V

g

Γ

0

Γ

{x,y}

Γ

0

(2)

We write also Γ

→ Γ

0

when Γ

{x,y}

Γ

0

for some x, y. We use

for the

reflexive-transitive closure of this relation.

3. Expressivity

In this section we explore the expressivity of CBP. Although the formal treatment is

restricted to binary CBP, in writing examples we will feel free to use the full calculus

CBP. These examples can easily be encoded using the strict binary CBP, but this would

be to the cost of readability.

(8)

3.1. Encoding tree automata

One major motivation of this work was to extend tree automata (considered from a

top-down point of view) to an interactive setting, just as CCS can be understood as a

natural interactive extension of ordinary word automata in the following sense. Given an

automaton A, it is possible to define a process P

A

such that, for any word w = a

1

. . . a

k

,

the automaton A recognizes w iff the CCS process w

k P

A

reduces to 0 (where we trivially

see w as the process a

1

.

· · · .a

k

.0), using the same method as in the definition of CCS

testing semantics in [

7

] (where one would probably have rather written ¯

w

k P

A

where

¯

w = ¯

a

1

.

· · · . ¯

a

k

.0, but this is a pure matter of conventional choice in the definition of P

A

).

The object of this section is to prove a completely similar statement for tree automata

and CBP.

A tree automaton is a tuple T = (Q, Θ,

◦) where Q is a finite set of states, ◦ ∈

Q is a final state and Θ is a finite set of transitions. An element of Θ is a triple

(q, f, (q

1

, q

2

)) where f

∈ F and q, q

1

, q

2

∈ Q. For the sake of simplicity, and without

loss of expressiveness, we assume that no element of Θ has the form (

◦, f, (q

1

, q

2

)) (no

transitions from the final state).

Let

∗ be a special symbol representing the empty tree. Trees are defined as follows:

a ::=

∗ | f(a, a)

where f

∈ F. We use T to denote the set of trees.

Given an automaton T = (Q, Θ,

◦) and an element q of Q, we define a set of trees

L(T, q) = L

q

where (L

q

)

q

∈Q

is the smallest element of (2

T

)

Q

such that

• ∗ ∈ L

• if a

i

∈ L

q

i

for i = 1, 2 and (q, f, (q

1

, q

2

))

∈ Θ, then f(a

1

, a

2

)

∈ L

q

.

The set

L(T, q) is the tree language recognized by T at state q.

Given a tree a, we can define a process

b

a in the following straightforward way:

b

∗ = 0

and

f (a

\

1

, a

2

) = f (

b

a

1

,

a

b

2

).

Now we explain how to associate a process with a tree automaton, so assume T =

(Q, Θ,

◦) to be a given tree automaton. Let ˜

f be a repetition-free list of all names which

occur in Θ. With each q

∈ Q we associate injectively a process constant D

q

. We define

a set Def

T

by

Def

T

=

{D

q

( ˜

f ) :=

X

(q,f,(q

1

,q

2

))

∈Θ

¯

f (D

q

1

( ˜

f ), D

q

2

( ˜

f ))

| q ∈ Q \ {◦}} ∪ {(D

( ˜

f ) := 0

} .

Theorem 3.1. Let q

∈ Q and let a be a tree. Then a ∈ L(T, q) iff {x : (b

a

k D

q

( ˜

f ))

} →

Γ

0

where Γ

0

is an idle process graph.

Proof. By induction on the tree a. Observe that

{x : (b

a

k D

q

( ˜

f ))

} V

g

Γ = (

{y, z}, {{y, z}}, [y 7→

b

a, z

7→ D

q

( ˜

f )]).

Assume first that a =

∗. If a ∈ L(T, q) then we have q = ◦ so that Γ is an idle process

graph. Conversely, assume that Γ

Γ

0

where Γ

0

is idle. Since

b

a = 0, no f / ¯

f reduction

(9)

Assume now that a = f (a

1

, a

2

). If a

∈ L(T, q) then there must exist q

1

, q

2

∈ Q such

that (q, f, (q

1

, q

2

))

∈ Θ with a

i

∈ L(T, q

i

) for i = 1, 2. Setting

Γ

i

= (

{y

i

, z

i

}, {{y

i

, z

i

}}, [y

i

7→

a

b

i

, z

i

7→ D

q

i

( ˜

f )])

for i = 1, 2 (with pairwise distinct vertices z

i

s and y

i

s), we know by inductive hypothesis

that Γ

i

Γ

i

0

where the Γ

i

0

s are idle. Since (q, f, (q

1

, q

2

))

∈ Θ we have D

q

( ˜

f ) :=

¯

f (D

q

1

( ˜

f ), D

q

2

( ˜

f )) + s

∈ Def

T

for some (possibly null) sum s. On the other hand

b

a =

f (

a

b

1

,

a

b

2

). Therefore Γ

{y,z}

Γ

0

= (

{y

1

, y

2

, z

1

, z

2

}, {{y

1

, z

1

}, {y

2

, z

2

}}, π) where π(y

i

) =

b

a

i

and π(z

i

) = D

q

i

( ˜

f ) for i = 1, 2 (up to some V

g

steps). Since Γ

i

reduces to an idle

process graph for i = 1, 2, it follows that Γ

0

also reduces to an idle process graph.

If now Γ

Γ

0

where Γ

0

is idle, since

b

a = f (

a

b

1

,

a

b

2

), q cannot be the final state,

and D

q

( ˜

f ) must V

g

normalize (by updating the value of this constant D

q

using Def

T

)

to a sum of the form ¯

f (p

1

, p

2

) + s where the p

i

s are processes and s is a (possibly nil)

sum. In view of the definition of Def

T

, this means that, for some q

1

, q

2

∈ Q, one has

(q, f, (q

1

, q

2

))

∈ Θ and p

i

= D

q

i

( ˜

f ) for i = 1, 2 and moreover the reduction starting from

Γ is of the form

Γ V

g

(

{y, z}, {{y, z}}, [y 7→ f(

a

b

1

,

a

b

2

), z

7→ ¯

f (D

q

1

( ˜

f ), D

q

2

( ˜

f )) + s])

{y,z}

(

{y

1

, y

2

, z

1

, z

2

}, {{y

1

, z

1

}, {y

2

, z

2

}}, [y

i

7→

a

b

i

, z

i

7→ D

q

i

( ˜

f )]

i

∈1,2

)

and, calling Γ

0

this latter graph process, we know that Γ

0

Γ

0

. In view of the

communi-cations allowed by the graph structure of Γ

0

, this implies that Γ

i

reduces to an idle process

graph for i = 1, 2, where Γ

i

= (

{y

i

, z

i

}, {{y

i

, z

i

}}, [y

i

7→

a

b

i

, z

i

7→ D

q

i

( ˜

f )]). Therefore, by

inductive hypothesis, a

i

∈ L(T, q

i

) and hence a

∈ L(T, q) since (q, f, (q

1

, q

2

))

∈ Θ.

3.2. Threads and shared memory

We illustrate here the fact that CBP naturally models thread-like synchronization,

using shared memory, and process-like communication by means of remote procedure

calls. We first model a simple one bit register

4

:

Reg

0

=

def

r

0

(Reg

0

) + w

0

(Reg

0

) + w

1

(Reg

1

)

Reg

1

=

def

r

1

(Reg

1

) + w

0

(Reg

0

) + w

1

(Reg

1

)

Now a thread that attempts to read or write b

∈ {0, 1} from the register is simply

Read

b

=

def

¯

r

b

(0)

Write

b

=

def

w

¯

b

(0)

Eventually we consider a server that may (indefinitely) spawn pairs of threads upon

calling the function symbol sp:

Spawn =

def

sp(0, 0, Spawn)

4

Note that the encoding of the one-bit register is done in a fragment of CBP that coincides with CCS

Figure

Figure 1: Binary CBP’s reduction rule (left): the nodes x and y are ready to synchronize on symbols f and ¯f (of arity 2), and are connected by an edge
Figure 2: A computation of the threads processes (thick edges denote reduction redexes)
Figure 3 illustrates the proof of p’s assembly into Γ philo 3 . We obtain the desired hexagon by transforming a triangle graph, which is the normalization of the process graph { x : p } , following the reductions of Fig
Figure 3: Proof of the assembly of p into the 3-dining philosophers. Nodes labeled with a nil process as well as edges connecting to them are faded out
+2

Références

Documents relatifs

We compute the posterior distributions of the initial population and parameter of binary branching processes, in the limit of a large number of generations.. We compare this

A nowadays classical technique of studying subcritical branching processes in random environment (see, for instance, [14, 4, 2, 3] ) is similar to that one used to investigate

In the theory of branching process, branching processes in random environment (BPRE), as an impor- tant part, was introduced by Smith and Wilkinson [ 10 ] by supposing that

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

For a sub-critical stable branching mechanism, we consider the genealogical tree of the extant population at some fixed time and prove that, up to a deterministic time- change, it

However we think that the µ &lt; 0 case corresponds to that of decreasing variances for the variable speed branching Brownian motion for which results concerning the position of

The aim of this section is to investigate the genealogy of atoms of a branching- stable point measure with negative scaling exponent, viewed as individual in a CMJ branching

In order to follow the coalescences in the ancestral lineages and to describe the backward genealogy of the population, we dene non- exchangeable Markovian coalescent processes