• No se han encontrado resultados

ANEXO III.- MODELOS NORMALIZADOS DE DECLARACIÓN RESPONSABLE MODELO 1

NOTIFICACIÓN ELECTRÓNICA

Before we can prove the previously mentioned equivalence, we first have to introduce some other basic categories, namely that of signatures, and that of algebras of a given signature. In Appendix A, we introduce some of the basic concepts in category theory which are used throughout this chapter.

Definition 3.7 (Categories Sig and Alg(SIG)). The category Sig has signa-

tures as objects and signature morphisms as arrows. The category Alg(SIG) has SIG-algebras as objects and SIG-algebra homomorphisms as arrows, for a given signature SIG.

For showing that Sig and Alg(SIG) are indeed categories, we have to show that all characteristics, as mentioned in Appendix A, are satisfied. For the category Sig we will indicate how those requirements can be shown to hold. For an arbitrary element SIG = (S, OP ) ∈ ObjSig, we take the identity arrow

idSIG = (idS, idOP). For all s ∈ S we then have idS(s) = s. Furthermore,

for all o ∈ OP with σ(o) = s1· · · sn and τ (o) = s we have σ(idOP(o)) =

idS(s1) · · · idS(sn) = s1· · · sn and τ (idOP(o)) = idS(s) = s. Thus, σ(o) =

σ(idOP(o)) and τ (o) = τ (idOP(o)) and thus idSIG is an arrow in Sig. Given

two arrows f : SIG → SIGand g: SIG→ SIG′′, the composition g ◦ f is then taken as the component-wise composition, i.e., f ◦ g = (gS, gOP) ◦ (fS, fOP) =

(gS◦ fS, gOP◦ fOP). One can easily verify that this composition is indeed an

arrow in Sig. Associativity of arrow composition for arbitrary arrows f , g, and h can be shown to hold as follows:

(f ◦ g) ◦ h = ((fS, fOP) ◦ (gS, gOP)) ◦ (hS, hOP) = (fS ◦ gS, fOP ◦ gOP) ◦ (hS, hOP) = ((fS ◦ gS) ◦ hS, (fOP ◦ gOP) ◦ hOP) = (fS ◦ (gS ◦ hS), fOP ◦ (gOP ◦ hOP)) = (fS, fOP) ◦ ((gS ◦ hS), (gOP ◦ hOP)) = (fS, fOP) ◦ ((gS, gOP) ◦ (hS, hOP)) = f ◦ (g ◦ h) .

3.3 Uniform Signatures

For an arbitrary arrow f : C → D, the requirement on the composition of f with the identity morphisms idC and idD can be shown to hold as follows:

f ◦ idC = (fS, fOP) ◦ (idS,C, idOP,C) = (fS ◦ idS,C, fOP ◦ idOP,C) = (fS, fOP) = (idS,D ◦ fS, idOP,D ◦ fOP) = (idS,D, idOP,D) ◦ (fS, fOP) = idD ◦ f .

For a given graph structure signature, we use AlgGraph+(SIG) to denote the full sub-category of Graph having all SIG-algebra graphs as objects and all corresponding SIG-algebra graph morphisms as arrows. Within this category we can distinguish a further full sub-category consisting of all deterministic SIG- algebra graphs and their intermediate morphisms; this category will be denoted AlgGraph(SIG).

Lemma 3.8.If SIG is a graph structure signature, then the categories Alg(SIG) and AlgGraph(SIG) are equivalent.

Proof sketch. The proof is based on two functors, one of which turns an algebra

into a graph by including all data values as nodes in the graph and operations as edges; the other functor (re)constructs the algebra from the edges. The full proof can be found in Appendix B (Section B.1).

Remark 3.9. Note that the above equivalence is based on algebra graphs being multigraphs. Due to the fact that operations of algebras are functional, and the additional requirement that for deterministic algebra graphs their operation and projection edges between two nodes must be unique, Lemma 3.8 also holds when

Graphrepresents the category of simple graphs.

3.3

Uniform Signatures

In this section we define signatures with a specific structure, called uniform

signatures and indicate how arbitrary signatures can be transformed into an

equivalent uniform signature. Uniform signatures consist of two components: a signature and a partial order. The signature component is a graph structure

signature [135], which means that algebras of uniform signatures can equiva-

Chapter 3. Uniform Attributed Graphs

Eventually, this allows us to represent attributed graphs as one graph structure instead of a graph with an algebra component as is done in other approaches like, e.g., by Ehrig et al. [65].

For the signature component of uniform signatures we define some additional structure. The operation symbols of the signature component can be partitioned into functional and projection operation symbols. The set of data sorts can be partitioned into structured and flat data sorts. The partial order specifies an ordering relation on the operation symbols that is total on every set of projection operation symbols that have a common parameter sort.

Definition 3.10(uniform signature). A uniform signature USIG = h(S, OP ), ≺i

consists of a signature (S, OP ) and a partial ordering ≺ on the operation sym- bols. For the set OP of operation symbols there exist disjoint sets F and Π such that OP = F ∪ Π, where

• F = {f1, . . . , fm} is a set of so-called functional operation symbols,

• Π = {p1, . . . , pn} is a set of so-called projection operation symbols.

Furthermore,

• α(o) = 1, for all o ∈ OP.

For the set S of sorts there exists disjoint sets U and D such that U and D are exactly the set of all parameter sorts and target sorts, respectively, of the operations in OP .

• U = {s ∈ S | ∃o ∈ OP : σ(o) = s}, the set of data sorts; • D = {s ∈ S | ∃o ∈ OP : τ (o) = s}, the set of product sorts.

The ordering relation ≺ specifies an ordering on the elements in Π such that ≺ is partial on the set Π, ≺ is total on the set of projection operation symbols that share their parameter sort, and ≺ does not order projection operation symbols that have different parameter sorts. Formally,

∀p1, p2∈ Π : (p1= p2) ∨ (p1≺ p2) ∨ (p2≺ p1) ⇐⇒ σ(p1) = σ(p2) .

Let USIG and USIGbe two uniform signatures, a uniform signature mor-

phism h: USIG → USIGis a signature morphism h: USIG → USIGthat, addi- tionally, preserves and reflects the ordering, i.e.,

3.3 Uniform Signatures

For every u ∈ U we denote the subset of projection operation symbols having u as their parameter sort with Πu, i.e.,

Πu = {p ∈ Π | σ(p) = u} .

Note that for a uniform signature USIG = h(S, OP ), ≺i, the partitioning of S and OP is completely determined by τ and σ, and ≺, respectively. The former is based on the assumption that (uniform) signatures do not contain spurious sorts. The latter is true by definition, since ≺ is a partial ordering on the projection operation symbols only; the remaining operation symbols in OP thus form the set of functional operation symbols.

Remark 3.11. The ordering of the elements in Πu will be made explicit by an

index function I: Π→IN mapping every projection operation symbol of a product

sort u to an natural number in the range [1, · · · , |Πu|]. Preserving the ordering

of the projection operation symbols is then equivalent to preserving their indices. In the proofs in the coming sections we will make extensive use of the indices instead of the ordering relation.

At this point, we assume the existence of two additional disjoint global sets, namely U and P, of product sorts and project operation symbols, respectively (recall the global sets S and O from Section 3.2.1). For an arbitrary uniform signature USIG, we then assume its components to satisfy the following condi- tions:

DUSIG ⊆ S

UUSIG ⊆ U

FUSIG ⊆ O

ΠUSIG ⊆ P .

Furthermore, we introduce two injective functions, namely prod : S→ U and

proj : U × IN →P. The former maps sequences of data sorts on product sorts; the latter takes as input a product sort and a natural number and returns a projection operation symbol. For the global set of data sorts and operation symbols we introduce the functions dsort: S → S and oper : O → O, which are actually the identity functions on the respective sets, i.e., dsort = idS and oper = idO,

mapping every element to itself.

Likewise for arbitrary signature, we introduce a category USig consisting of uniform signatures.

Chapter 3. Uniform Attributed Graphs

Definition 3.12(Category USig). Uniform signatures and uniform signature

morphisms form the category USig.

The identity morphisms and morphism composition are defined analogously to the category Sig.

Example 3.13. An example uniform signature is

USIGINT = h(int, int2, ⊥; +, 0, p1, p2), ≺i ,

with D = {int, ⊥}, U = {int2, ⊥}, F = {+, 0}, and Π = {p1, p2} where

• +: int2→ int,

• 0: ⊥ → int, • p1: int2→ int,

• p2: int2→ int.

Furthermore we have Πint2 = {p1, p2} with p1≺ p2, and Π= ∅.