PredLogInTheoAlgRel

July 7, 2009

www.bucephalus.org Contents

I *** ADDITIONS TO “THEORY ALGEBRAS OF RELATIONS” *** 5

II Version 1.1: Additions to “Theory algebras of relations” [part-thalgadditions] 5

1  More mathematical prelimilaries  [moresyntax.tex

2007-08-23] 6 1.1 Properties of the identity relation . . . . . . . . . . . . . 12

2  Subschemas  [subschema.tex 20088-04-30] 13

2.1 Subschemas . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2 The boolean algebra of total subschemas . . . . . . . . . 15 2.3 The quasi–boolean algebra of partial subschemas . . . . . 16

3  Update: Attribute translation  [attransupdate.tex

2008-01-31] 19 3.1 UPDATE OF thalgref 22.2; REPETITION . . . . . . . . . 19 3.2 UPDATE OF thalgref 22; BUT THIS OLDER VERSION OF

THE UPDATE IS OBSOLETE . . . . . . . . . . . . . . . . . 22

4 Theory algebras of relations [subtheoalg.tex 2008-06-02] 24 4.1 First–order theory algebras . . . . . . . . . . . . . . . . 24

III Version 2.0: New chapters for “Theory algebras of relations” [part-

morethalgadds] 26

5  Members and factors  [membership.tex 2008-04-28] 27

5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 27 5.2 Some special classes of relations . . . . . . . . . . . . . . 28 5.3 Records as relations and the generalized membership … 30 5.4 Properties . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.5 Subschemas as relations and factors . . . . . . . . . . . . 39 5.6 Factorizations . . . . . . . . . . . . . . . . . . . . . . . 41

6  Compact relations  [compact.tex 2007-10-25] 42

6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 42 6.2 Compact relations and their representations . . . . . . . 42 6.3 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 46 6.4 Compact relations and their representations . . . . . . . 46 6.5 Cartesian and compact relations . . . . . . . . . . . . . . 48 6.6 Singular decompositions . . . . . . . . . . . . . . . . . . 49 6.7 The theory algebra of compact relations . . . . . . . . . . 51 6.8 Appendix: Finite–cofinite tables . . . . . . . . . . . . . . 53 6.9 Cotables . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.10 The theory algebra of compact relations; a constructive

summary of the operations . . . . . . . . . . . . . . . . . . . 56

IV Version 2.0: General–algebraic properties of boolean and theory algebras (OPTIONAL OR OBSOLETE)

[part-genalg] 63

7 Axiomatic approach to theory algebras [thalgaxioms.tex 2008-03-26] 64 7.1 Element structures for generalized quasi–boolean algebras 64 7.2 The definition of theory algebras . . . . . . . . . . . . . 65 7.3 Free theory algebras . . . . . . . . . . . . . . . . . . . . 67 7.4 Generations and closures in boolean algebras . . . . . . . 68 7.5 Disvalent disjunctions and quasi–partitions . . . . . . . . 70

8  Generations and closures  [generations.tex 2008-03-06] 72
9  General–algebraic notions  [substrucs.tex 2007-08-07] 75

9.1 Iso–translations . . . . . . . . . . . . . . . . . . . . . . 76 9.2 Isomorphisms . . . . . . . . . . . . . . . . . . . . . . . . 77 9.3 Homomorphisms . . . . . . . . . . . . . . . . . . . . . . 78 9.4 Congruences . . . . . . . . . . . . . . . . . . . . . . . . 79 9.5 Comparison and translations of signatures . . . . . . . . 80 9.6 Comparison and translations of interpretations . . . . . . 83 9.7 Closures and generations in single–sort / mono–carrier

structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 9.8 Closures and generations in symbolized structures / (ordi-

nary) interpretations . . . . . . . . . . . . . . . . . . . . . . 86

10  Images, generations and closures  [theogens.tex

2007-08-30] 87 10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 87 10.2 Boolean constructions in 𝔓 (C) . . . . . . . . . . . . . . 88 10.3 Boolean constructions in ℜ𝔢𝔩 (X) . . . . . . . . . . . . . 90 10.4 Schematic constructions in 𝔓𝔯𝔢𝔩 (X) . . . . . . . . . . . 92 10.5 Theory–algebraic constructions in 𝔓𝔯𝔢𝔩 (X) . . . . . . . . 93 10.6 Identitive theory–algebraic constructions . . . . . . . . . 94

V *** AN INTERPRETATION OF FIRST–ORDER PREDICATE LOGIC *** 95

VI Preparations [part-preparat] 95

11  Foreword  [foreword.tex 2008-06-03] 97
12  Introduction  [newintro.tex 2008-01-08] 98

12.1 Ordinary structures, signatures and interpretations …. 98 12.2 Typed variable sets, terms and formulas . . . . . . . . . . 101 12.3 Interpretations of terms and formulas . . . . . . . . . . . 103 12.4 Schematic functions and relations . . . . . . . . . . . . . 105 12.5 The interpretation of terms and formulas . . . . . . . . . 110

13  Summary of symbols  [symbolsum.tex 2008-03-05]124
13.1  Structures,  signatures and interpretations ***

structures.tex *** . . . . . . . . . . . . . . . . 124 13.2 Syntax *** express.tex *** . . . . . . . . . 125

13.3  Interpretation  of  terms  and  formulas ***

interpret.tex *** . . . . . . . . . . . . . . . . . 125

13.4  Schematic  functions  and  coapplications ***

funapps.tex *** . . . . . . . . . . . . . . . . . . . 125

13.5 Theory–algebraic interpretation of terms and formulas

*** theoalgrel.tex *** . . . . . . . . . . . . . 125

VII Operators, symbolized structures and general algebra [part-struct]126

14  Additional operators  [xfunxrelconvert.tex 2008-06-16]127

14.1 Schematic conversions . . . . . . . . . . . . . . . . . . . 128 14.2 Identity relations . . . . . . . . . . . . . . . . . . . . . . 132 14.3 Flip functions . . . . . . . . . . . . . . . . . . . . . . . 133 14.4 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 134

15 Structures, signatures and interpretations [structures.tex 2007-08-07] 135 15.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 135 15.2 Ordinary operators and types . . . . . . . . . . . . . . . 136 15.3 (Ordinary) Structures . . . . . . . . . . . . . . . . . . . 139 15.4 Ordinary type expressions and signatures . . . . . . . . . 144 15.5 Interpretations or symbolized structures . . . . . . . . . . 148 15.6 Special structures and signatures . . . . . . . . . . . . . 153

VIII Excursion: schematic relations

and functions [part-opstructures]154

16 Excursion into schematic operators [opstrucsoverview.tex 2008-06-05] 155 16.1 Introduction and overview . . . . . . . . . . . . . . . . . 155

17 Schematic functions, coapplications and parametrizations [parametrics.tex 2008-08-22] 163 17.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 163 17.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 164 17.3 Schematic functions . . . . . . . . . . . . . . . . . . . . 165 17.4 Compatible schematic function classes . . . . . . . . . . . 166 17.5 Predicates and characteristic functions . . . . . . . . . . 167 17.6 Multifunctions and coapplications . . . . . . . . . . . . . 168 17.7 Partial and total parametrizations . . . . . . . . . . . . . 172 17.8 Generalized and particularized parametrizations . . . . . 176

18  *** OBSOLETE ***  [funapps2.tex 2008-06-10]177

18.1 Function diagrams for ordinary and schematic functions . 177

IX (Multi–carrier) (first–order) predicate logic (with identity and de-

scriptions) [part-interpret]178

19  Syntax  [express.tex 2007-09-13]179

19.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 179 19.2 Variable sets . . . . . . . . . . . . . . . . . . . . . . . . 180 19.3 Parameterized signatures . . . . . . . . . . . . . . . . . 181 19.4 Terms and formulas . . . . . . . . . . . . . . . . . . . . 183 19.5 Special expressions and syntactical operations . . . . . . 188 19.6 Theories . . . . . . . . . . . . . . . . . . . . . . . . . . 190

20  Interpretation of terms and formulas  [interpret.tex

2007-10-02] 193 20.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 193 20.2 Parameterized interpretations . . . . . . . . . . . . . . . 195 20.3 The schema and the assignment class of a parameterized

interpretation . . . . . . . . . . . . . . . . . . . . . . . . . . 197 20.4 Interpretations of terms and formulas . . . . . . . . . . . 198 20.5 The evaluative interpretation . . . . . . . . . . . . . . . 202 20.6 The schema–operational interpretation . . . . . . . . . . 204 20.7 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . 207 20.8 Important properties . . . . . . . . . . . . . . . . . . . . 209 20.9 Other conventional variations of interpretations . . . . . . 210

21  Interpretation structures  [xinterpret.tex 2008-06-27]214

21.1 Interpretation structures . . . . . . . . . . . . . . . . . . 215 21.2 Extended interpretation structures . . . . . . . . . . . . 216

22  The interpretation theorem  [theoalgrel.tex 2007-07-23]219

22.1 Properties of codomains and domain schemas . . . . . . . 220 22.2 The interpretation theorem . . . . . . . . . . . . . . . . 221 22.3 The expression structure . . . . . . . . . . . . . . . . . . 222 22.4 Interpretation structure of parameterized interpretations . 223

X Model theory [part-modeltheory]225 22.5 Classes of signatures, structures and interpretations … 226 22.6 Models . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 22.7 Theories . . . . . . . . . . . . . . . . . . . . . . . . . . 228 22.8 Subvalence and equivalence . . . . . . . . . . . . . . . . 229

23  Translations  [translations.tex 2007-07-10]230

XI PROBABLY OBSOLETE 231

24  Transformations and normalizations  [transnorm.tex

2007-088-01] 232 24.1 Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . 233 24.2 The (ordinary) relationalization of structures and theories 235

25 Ordinary–relational structures and their logic [logic.tex 2007-07-10] 236 25.1 Applications on relations . . . . . . . . . . . . . . . . . . 236 25.2 Repetition . . . . . . . . . . . . . . . . . . . . . . . . . 237 25.3 The theory–algebraic interpretation of expressions …. 237

XII Appendix: Little compendium of important structures and theories

[part-compendium] 239

26 The “little book” of important theories and structures[littlebook.tex 2007-09-10] 240 26.1 A selection of structures . . . . . . . . . . . . . . . . . . 240 26.2 Dual numeral arithmetic . . . . . . . . . . . . . . . . . . 240 26.3 Byte logic and arithmetic . . . . . . . . . . . . . . . . . 240 26.4 Integer arithmetic . . . . . . . . . . . . . . . . . . . . . 240 26.5 Finite arithmetic structures . . . . . . . . . . . . . . . . 242 26.6 Arithmetic of numerals . . . . . . . . . . . . . . . . . . . 243 26.7 A selection of theories . . . . . . . . . . . . . . . . . . . 252

27  Polynomials  [polynomial.tex 2008-02-10]260

27.1 Rings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 27.2 Polynomial expressions . . . . . . . . . . . . . . . . . . . 261

XIII Finite model constructions [part-

finmodel] 262

28  Propositional logic  [propsystem.tex 2007-11-22]263

28.1 The bit value algebra . . . . . . . . . . . . . . . . . . . 263 28.2 Propositional formulas and their semantics . . . . . . . . 264

29 Propositional formula systems and normalizations [propsystem2.tex 2007-11-22] 269 29.1 Propositional formula systems . . . . . . . . . . . . . . . 269 29.2 Normalizations . . . . . . . . . . . . . . . . . . . . . . . 270 29.3 Ordered normal forms . . . . . . . . . . . . . . . . . . . 271 29.4 Literal normal forms . . . . . . . . . . . . . . . . . . . . 273

30 Para–tables and their algebra [paratabs.tex 2007-10-31]276 30.1 Para–tables . . . . . . . . . . . . . . . . . . . . . . . . . 276 30.2 Para–tables as relation classes . . . . . . . . . . . . . . . 280

31 Para–tables and their algebra [paratabs1.tex 2007-10-31]286 31.1 On records and schemas . . . . . . . . . . . . . . . . . . 286 31.2 Para–tables . . . . . . . . . . . . . . . . . . . . . . . . . 287 31.3 Para–tables and relation classes . . . . . . . . . . . . . . 291 31.4 Theory–algebraic operations on para–tables . . . . . . . . 298

32  Finite model construction for pure predicate logic  [fin-

model.tex 2007-08-17] 301 32.1 Para–structures and para–interpretations . . . . . . . . . 302 32.2 Para–interpretations . . . . . . . . . . . . . . . . . . . . 303 32.3 The transformation of predicate into propositional formulas 305 32.4 An introductory examples . . . . . . . . . . . . . . . . . 307 32.5 More examples . . . . . . . . . . . . . . . . . . . . . . . 308 32.6 Case study: The proto–theory of equivalence relations on

a ternary carrier class . . . . . . . . . . . . . . . . . . . . . 309

33  Toy logic  [toyalgebra.tex 2008-08-06]314

33.1 Example: R : D ↭ D and {A, B, C} partition of D … 318

XIV *** AUTO–DECONSTRUCTION OF THEORY ALGEBRAS *** 319

XV Decompositions of relations [part-

decomp] 319

34  Decompositions in theory algebras  [genalgnotions.tex

2008-06-20] 320 34.1 General–algebraic notions . . . . . . . . . . . . . . . . . 320 34.2 Theory–algebraic generations and closures . . . . . . . . 321 34.3 Generations and closures of first–order theory algebras . . 323 34.4 Disvalent disjunctions and quasi–partitions . . . . . . . . 325 34.5 Quasi–foundations . . . . . . . . . . . . . . . . . . . . . 325 34.6 Partitions . . . . . . . . . . . . . . . . . . . . . . . . . 326 34.7 Preliminaries . . . . . . . . . . . . . . . . . . . . . . . . 329 34.8 Local and overall ranges of a relation . . . . . . . . . . . 330 34.9 Cartesian relations . . . . . . . . . . . . . . . . . . . . . 331 34.10 Range hierarchies, range partitions and range partition

schemas from a relation . . . . . . . . . . . . . . . . . . . . 332 34.11 The cartesian partition and the range partition of a relation 333 34.12 The partition theorems for theory–algebraic spaces …. 334

35  Cartesian closures and compact decompositions  [cartc-

los.tex 2008-06-03] 337 35.1 Cartesian closures and cartesian complements of relations 337

36  Decompositions  [coelim.tex 2008-02-11]339

36.1 General conventions . . . . . . . . . . . . . . . . . . . . 339 36.2 Coelimination . . . . . . . . . . . . . . . . . . . . . . . 340 36.3 Decomposition of clos({R} , {i, j}) . . . . . . . . . . . . 358

37  Decompositions and normal forms  [decompo.tex

2007-11-22] 359 37.1 The irredundant decomposition . . . . . . . . . . . . . . 359 37.2 The core decomposition . . . . . . . . . . . . . . . . . . 360 37.3 The equivalent–attribute decompostion . . . . . . . . . . 361

38  Perspectives  [perspectives.tex 2008-06-24]362

XVI Block algebra and compact re-

lations [part-block]365

39  Block classes  [partitions.tex 2007-09-07]366

39.1 Block classes . . . . . . . . . . . . . . . . . . . . . . . . 366

40  Super–schemas and block schemas  [powschema.tex

2007-09-07] 369 40.1 Repetitions . . . . . . . . . . . . . . . . . . . . . . . . . 369 40.2 Unions and Venn diagrams of schemas . . . . . . . . . . . 370 40.3 Super–schemas . . . . . . . . . . . . . . . . . . . . . . . 371 40.4 Power of schemas . . . . . . . . . . . . . . . . . . . . . . 373 40.5 Block schemas . . . . . . . . . . . . . . . . . . . . . . . 374

41  Block relations  [blocks.tex 2007-08-20]383

41.1 Block relations . . . . . . . . . . . . . . . . . . . . . . . 383 41.2 Conflation . . . . . . . . . . . . . . . . . . . . . . . . . 384 41.3 The quasi–boolean lattice on block relation classes …. 387 41.4 The natural block relation . . . . . . . . . . . . . . . . . 389

42  Diamonds and boxes of relations  [diamonds.tex

2007-08-08] 392 42.1 Diamonds and boxes . . . . . . . . . . . . . . . . . . . . 392 42.2 Diamond and box block relations . . . . . . . . . . . . . 396 42.3 Case study . . . . . . . . . . . . . . . . . . . . . . . . . 408

XVII Block model construction and the decidablility of predicate logic[part-

antichurch] 412

43  Para–bi–tables and their algebra  [parabitabs.tex

2007-11-28] 413

XVIII Operationalizators and appli-

cators [part-applic]414

44  Various functionalizations and relationalizations  [rel-

strucs.tex 2007-10-10] 415 44.1 Ordinary functionalizations and relationalizations …. 415 44.2 Schematic functionalizations and relationalizations …. 417 44.3 The relationalization of a symbolized structure / an inter-

pretation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420

45  Operator modifications  [schoenfinkel.tex 2007-10-24]421

45.1 Curry–functions . . . . . . . . . . . . . . . . . . . . . . 421

46  Applications  [appstrucs.tex 2007-10-16]425

46.1 Record applicators . . . . . . . . . . . . . . . . . . . . . 425 46.2 Applications on relations . . . . . . . . . . . . . . . . . . 429 46.3 Oppomorphisms . . . . . . . . . . . . . . . . . . . . . . 436

Part I

*** ADDITIONS TO “THEORY ALGEBRAS OF RELATIONS” ***

Part II

Version 1.1: Additions to “Theory algebras of relations”

1 More mathematical prelimilaries

*** add the following lemma to syntax.tex ***

1.0.1 Lemma

For every class B and class family A = {A_{k} | k ∈ K} holds:

(1) B ⊆ ⋂ A ⇔ ∀k ∈ K . B ⊆ A_{k}

(2) ⋃ A ⊆ B ⇔ ∀k ∈ K . A_{k} ⊆ B

(3) (∃k ∈ K . A_{k} ⊆ B) ⇒ ⋂ A ⊆ B

(4) (∃k ∈ K . B ⊆ A_{k}) ⇒ B ⊆ ⋃ A

*** add the following definition to syntax.tex as 5.6.4 ***

⨄ K the (big) disjunct union

*** add the following lemma to schemprod.tex as 12.1.17 ***

1.0.2 Lemma Let X and Y be two schemas.

(1) The following statements are equivalent:

(a) X = Y

(b) ⊕X = ⊕Y

(c) ⊛X = ⊛Y

(2) If X and Y are proper schemas, then the following statements are equivalent, too:

(a) X = Y

(b) ⊗X = ⊗Y

1.0.3 Proof of 1.0.2

Let X = [X_{i}|i ∈ I] and Y = [Y_{j}|j ∈ J]. The statements in 1.0.2 follow directly from basic identities such as

X = Y iff I = J and X_{i} = X_{j} for each i ∈ I

and definition Thalg 12.1.2 of ⊛, ⊕ and ⊗.

1.0.4 Remark

The main idea of lemma 1.0.2 is the mutual derivability of X, ⊗X, ⊛X, and ⊕X. Suppose, Γ = ⊗X (or Γ = ⊛X or Γ = ⊕X) is given, then X can be reconstructed from Γ via

I := ⋃_{ξ∈Γ}dom (ξ)
X_{i} := {ξ(i) | ξ ∈ Γ, i ∈ dom (ξ)} for each i ∈ I
X := [X_{i}|i ∈ I]

The only restriction comes with the cartesian product ⊗X, which is equal (namely ∅) for all improper schemas. E.g.

X = [ \begin{matrix}i ↦ & ℤ \\ j ↦ & ∅ \end{matrix} ] ≠ [ \begin{matrix}l ↦ & ∅ \\ m ↦ & ℕ \end{matrix} ] = Y  but  ⊗ X = ∅ = ⊗Y

General changes in section 12 schemprod.tex Section 12 has the following structure: 12.1 Various products 12.2 Various ordinal products 12.3 Concatenation of tuple classes 12.4 Distributivity 12.5 Power products My suggestion is to take out “12.4 Distributivity” and put it in a separate file (schemprod2.tex) and add it to or behind (an updated version of) section “14. Order structures on schemas”

*** The next lemma comes under a new heading “complementation” in the new section; it must be after section 14 because it uses the definition of Incl (X). ***

1.0.5 Lemma

Let X = [X_{i}|i ∈ I] be a schema and Y ∈ Incl (X). Then

⊗X \ ⊗Y = ⋃_{i∈I} ⊗ (X√ [ i ↦ X_{i} \ Y_{i} ])

1.0.6 Proof of 1.0.5

Recall Thalg 14.2.1 , that Y ∈ Incl (X) means that Y = [Y_{i}|i ∈ I] with Y_{i} ⊆ X_{i} for i ∈ I.

⊗X \ ⊗Y = {ξ ∈ ⊗X | ξ ∉ ⊗Y } = {ξ ∈ ⊗X | ¬∀i ∈ I . ξ_{i} ∈ Y_{i}} = {ξ ∈ ⊗X | ∃i ∈ I . ξ_{i} ∈ (X_{i} \ Y_{i})}

= ⋃_{i∈I}{ξ ∈ ⊗X | ξ_{i} ∈ (X_{i} \ Y_{i})}

= ⋃_{i∈I}(X√ [ i ↦ X_{i} \ Y_{i} ])

1.0.7 Example

Let X be a schema and Y ∈ Incl (X) be given by

X = [\begin{matrix}i ↦ & \{1, 2, 3\} \\ j ↦ & \{1, 2, 3\} \\ k ↦ & \{1, 2, 3\} \end{matrix}] and Y = [\begin{matrix}i ↦ & \{1, 2\} \\ j ↦ & \{3\} \\ k ↦ & \{1, 2, 3\} \end{matrix}]

Then

\begin{matrix}⊗X \ ⊗Y = ⊗ [\begin{matrix}i ↦ & \{1, 2, 3\} \ \{1, 2\} \\ j ↦ & \{1, 2, 3\} \\ k ↦ & \{1, 2, 3\} \end{matrix}] ∪ \\ ⊗ [\begin{matrix}i ↦ & \{1, 2, 3\} \\ j ↦ & \{1, 2, 3\} \ \{3\} \\ k ↦ & \{1, 2, 3\} \end{matrix}] ∪ ⊗ [\begin{matrix}i ↦ & \{1, 2, 3\} \\ j ↦ & \{1, 2, 3\} \\ k ↦ & \{1, 2, 3\} \ \{1, 2, 3\} \end{matrix}] \end{matrix}

*** add the following lemma to

                                                  distinctops.tex as 16.5.4 ***

1.0.8 Lemma

Let X = [X_{i}|i ∈ I] be a schema and J ⊆ I. If pr (X, J) is proper then pr (⊗X, I \ J) = ⊗pr (X, I \ J) else pr (⊗X, I \ J) = ∅ ⊆ ⊗pr (X, I \ J)

1.0.9 Proof of 1.0.8

pr (X, J) is not proper

⇔ ∃j ∈ J . X_{j} = ∅ due to def. Thalg 9.3.3(1)

⇒ X is not proper

⇒ ⊗X = ∅ due to Thalg 12.1.12(1)

So in case pr (X, J) is not proper, we have

pr (⊗X, I \ J)

= {pr (ξ, I \ J) | ξ ∈ ⊗X} due to def. Thalg 16.5.1

= ∅ because ⊗X = ∅

On the other hand, if pr (X, J) is proper, then

pr (⊗X, I \ J)

= {pr (ξ, I \ J) | ξ ∈ ⊗X} due to def. Thalg 16.5.1

= {pr (ξ, I \ J) | ξ = [ξ_{i}|i ∈ I], ξ_{i} ∈ X_{i} for i ∈ I}

due to def. Thalg 12.1.2 of ⊗X

= {[ξ_{i}|i ∈ I \ J] | ξ = [ξ_{i}|i ∈ I], ξ_{i} ∈ X_{i} for i ∈ I}

due to def. Thalg 10.2.1 of pr (ξ, I \ J)

= {[ξ_{i}|i ∈ I \ J] | ξ_{i} ∈ X_{i} for i ∈ I \ J}

= ⊗[X_{i}|i ∈ I \ J] def. Thalg 12.1.2 , again

= ⊗pr (X, I \ J) def. Thalg 10.2.1 , again

*** Add the following lemma to relrel.tex as 20.4.32 (proof is 20.4.33), at the end of “20.4 Properties of semantic operations” ***

1.0.10 Lemma

Let X be a proper schema and R, S ∈ Prel (X). Then

(1) R ⊓ S = [ \begin{matrix}x (R) ∨ x (S) \\ ξ ↝ pr (ξ, @R) ∈ R ∧ pr (ξ, @S) ∈ S \end{matrix} ]

(2) R ⊔ S = [ \begin{matrix}x (R) ∨ x (S) \\ ξ ↝ pr (ξ, @R) ∈ R ∨ pr (ξ, @S) ∈ S \end{matrix} ]

1.0.11 Proof of 1.0.10

Let X = [X_{i}|i ∈ I], R = [Y, Γ] with J = @ (R) and S = [Z, Σ] with K = @ (S), i.e. Y = [X_{j}|j ∈ J] and Z = [Z_{k}|k ∈ K]. We have

R ∥ Z

= [\begin{matrix}Y ∨ Z \\ Γ ⊙ ⊗(Z \ Y) \end{matrix}]

due to Thalg 20.1.3(2)

= [ \begin{matrix}Y ∨ Z \\ \{υ ˙∨ ζ | υ ∈ Γ, ζ ∈ ⊗(Z \ Y)\} \end{matrix} ]

due to def. Thalg 16.6.1 of ⊙

= [ \begin{matrix}Y ∨ Z \\ \{ξ ∈ ⊗(Y ∨ Z) | pr (ξ, J) ∈ Γ, pr (ξ, K \ J) ∈ ⊗(Z \ Y)\} \end{matrix} ]

= [ \begin{matrix}Y ∨ Z \\ \{ξ ∈ ⊗(Y ∨ Z) | pr (ξ, J) ∈ Γ\} \end{matrix} ]

because pr (ξ, K \ J) ∈ ⊗(Z \ Y ) holds anyway, for all ξ ∈ ⊗(Y ∨ Z)

= [ \begin{matrix}Y ∨ Z \\ ξ ↝ pr (ξ, J) ∈ Γ \end{matrix} ]

by simple change of notation to the schema–predicator form ( Thalg 17.3 )

Similarly, we also have

S ∥ Y = [ \begin{matrix}Y ∨ Z \\ ξ ↝ pr (ξ, K) ∈ Σ \end{matrix} ]

We obtain

(1) R ⊓ S

= (R ∥ Z) ∩ (R ∥ Y)

due to def. Thalg 20.2.2 of ⊓

= [ \begin{matrix}Y ∨ Z \\ ξ ↝ pr (ξ, J) ∈ Γ \end{matrix} ] ∩ [ \begin{matrix}Y ∨ Z \\ ξ ↝ pr (ξ, K) ∈ Σ \end{matrix} ]

= [ \begin{matrix}Y ∨ Z \\ ξ ↝ pr (ξ, J) ∈ Γ ∧ pr (ξ, K) ∈ Σ \end{matrix} ]

due to def. Thalg 19.5.1 of ∩

(2) R ⊔ S = [ \begin{matrix}Y ∨ Z \\ ξ ↝ pr (ξ, J) ∈ Γ ∨ pr (ξ, K) ∈ Σ \end{matrix} ]

similar to (1)

*** Add the following lemma to relrel.tex as 20.4.34; after the proof of the previous lemma ***

1.0.12 Lemma

Let X be a proper schema and R, S ∈ Prel (X) with R = [Y, Γ] and S = [Z, Σ]. Then

R ⊓ S = [ \begin{matrix}Y ∨ Z \\ \{υ ∨ ζ | υ ∈ Γ, ζ ∈ Σ, υ ⌣ ζ\} \end{matrix} ]

1.0.13 Proof of 1.0.12

Recall from Thalg 10 , that for every ξ ∈ ⊗(Y ∨ Z) holds

ξ = pr (ξ, dom (Y)) ∨ pr (ξ, dom (Z))
= (the υ ∈ ⊗Y with υ ⌣ ξ) ∨ (the ζ ∈ ⊗Z with ζ ⌣ ξ)

Therefore R ⊓ S

= [ \begin{matrix}Y ∨ Z \\ ξ ↝ pr (ξ, dom (Y)) ∈ Γ ∧ pr (ξ, dom (Z)) ∈ Σ \end{matrix} ]

due to 1.0.10(1)

= [ \begin{matrix}Y ∨ Z \\ \{υ ∨ ζ | υ ∈ Γ, ζ ∈ Σ, ∃ξ ∈ ⊗(Y ∨ Z) . υ ∨ ζ = ξ\} \end{matrix} ]

= [ \begin{matrix}Y ∨ Z \\ \{υ ∨ ζ | υ ∈ Γ, ζ ∈ Σ, υ ⌣ ζ\} \end{matrix} ]

*** Add the following lemma and proof to

coexpand.tex as 21.5.11 ***

1.0.14 Lemma Let X = [X_{i}|i ∈ I] be a proper schema, J ⊆ I and R, S ∈ Prel (X). If J ∩ @S = ∅ then

(1) (R ⊓ S)⇂ J = R⇂ J ⊓ S

(2) (R ⊓ S)↾ J = R↾ J ⊓ S

(3) (R ⊔ S)⇂ J = R⇂ J ⊔ S

(4) (R ⊔ S)↾ J = R↾ J ⊔ S

1.0.15 Proof of 1.0.14 Let K := @R ∪ @S.

(1) The two relations (R ⊓ S)⇂ J and R⇂ J ⊓ S are equal, if they (i) have the same schema and (ii) have the same graph.

(i) There is x (R ⊓ S) = x (R) ∨ xS due to Thalg 20.4.7(4)

= pr (X, @R) ∨ pr (X, @S) due to ???? = pr (X, @R ∪ @S) due to Thalg 11.6.1(1)(e)

= pr (X, K)

so that x ((R ⊓ S)⇂ J)

= x (pr (R ⊓ S, @ (R ⊓ S) \ J)) def. Thalg 21.4.1 of ⇂ = pr (x (R ⊓ S) , @ (R ⊓ S) \ J) def. Thalg 21.2.2

= pr (pr (X, K) , K \ J) = pr (X, K \ J) = pr (X, (@R ∪ @S) \ J) = pr (X, (@R \ J) ∪ (@S \ J))

= pr (X, @R \ J) ∨ pr (X, @S \ J) due to Thalg 11.6.1(1)(e) = pr (X, @R \ J) ∨ pr (X, @S) because J ∩ @S = ∅ = pr (X, @ (R⇂ J)) ∨ pr (X, @S) due to Thalg 21.5.1(1)

= x (R⇂ J) ∨ x (S)

= x (R⇂ J ⊓ S) due to Thalg 20.4.7(4)

Thus, (R ⊓ S) ⇂ J and R ⇂ J ⊓ S have the same schema pr (X, K \ J), i.e. the same domain. (ii) Both relations also have the same graph, i.e. each record ξ of the common domain is a member of (R ⊓ S)⇂ J iff it is a member of R⇂ J ⊓ S. Because if ξ ∈ ⊗pr (X, K \ J) then

ξ ∈ (R ⊓ S)⇂ J

⇔ ξ ∈ pr (R ⊓ S, K \ J) due to def. Thalg 21.4.1 of ⇂

⇔ ∃ζ ∈ ⊗pr (X, J) . ξ ˙∨ ζ ∈ R ⊓ S due to Thalg 21.2.7(1)

⇔ ( \begin{matrix}∃ζ ∈ ⊗pr (X, J) . \\ (pr (ξ ˙∨ ζ, @R) ∈ R ∧ pr (ξ ˙∨ ζ, @S) ∈ S) \end{matrix} )

due to 1.0.10(1)

⇔ ( \begin{matrix}∃ζ ∈ ⊗pr (X, J) . \\ (pr (ξ ˙∨ ζ, @R) ∈ R ∧ pr (ξ, @S) ∈ S) \end{matrix} )

because J ∩ @S = ∅, so that pr (ξ ˙∨ ζ, @S) = pr (ξ, @S)

⇔ ( \begin{matrix}∃ζ ∈ ⊗pr (X, J) . \\ pr (ξ ˙∨ ζ, @R) ∈ R \end{matrix} ) ∧ pr (ξ, @S) ∈ S

due to Thalg 5.5.11(4)(d)

⇔ ( \begin{matrix}∃ζ ∈ ⊗pr (X, J) . \\ ζ ˙∨ pr (ξ, @R \ J) ∈ R \end{matrix} ) ∧ pr (ξ, @S) ∈ S

because pr (ξ ˙∨ ζ, @R) = ζ ˙∨ pr (ξ, @R \ J)

⇔ pr (ξ, @R \ J) ∈ pr (R, @R \ J) ∧ pr (ξ, @S) ∈ S

due to Thalg 21.2.7(1)

⇔ pr (ξ, @R \ J) ∈ R⇂ J ∧ pr (ξ, @S) ∈ S

due to def. Thalg 21.4.1 of ⇂

⇔ pr (ξ, @ (R⇂ J)) ∈ R⇂ J ∧ pr (ξ, @S) ∈ S

due to Thalg 21.5.1(3)

⇔ ξ ∈ R⇂ J ⊓ S

due to 1.0.10(1)

That alltogether finishes the proof of (1).

(2) (R ⊓ S)↾ J = R↾ J ⊓ S ↾ J due to Thalg 21.5.7(8)

= R↾ J ⊓ S due to Thalg 21.5.3(12) , with @S ∩ J = ∅

(3) (R ⊔ S)⇂ J = R⇂ J ⊔ S ⇂ J due to Thalg 21.5.7(9)

= R⇂ J ⊔ S due to Thalg 21.5.3(11) , with @S ∩ J = ∅

(4) Having the proof for (1) available, a proof for (4) is now quite

easy.

(R ⊔ S)↾ J

= ¬¬ ((R ⊔ S)↾ J) due to Thalg 19.4.6 = ¬ (¬ (R ⊔ S)⇂ J) due to Thalg 21.5.7(5) = ¬ ((¬R ⊓ ¬S)⇂ J) due to de Morgan’s law Thalg 21.4.21(14)

= ¬ (¬R⇂ J ⊓ ¬S)

due to (1), which can be applied because @ (¬S) = @S, so that J ∩ @S = ∅ implies J ⊓ @ (¬S) = ∅

= ¬ (¬ (R↾ J) ⊓ ¬S) due to Thalg 21.5.7(5) , again = ¬¬ (R↾ J ⊔ S) due to de Morgan’s law Thalg 21.4.21(14) , again = R↾ J ⊔ S due to Thalg 19.4.6 , again

1.1 Properties of the identity relation

1.1.1 Lemma ; Id_{⟨⟩} = ⊤

1.1.2 Proof of 46.2.11

*** CONTINUE HERE ***

1.1.3 Lemma

Let X be a schema and Y, Z ∈ Proj (X) be not distinct (i.e. dom (Y) ∩ dom (Z) ≠ ∅). Then

Id_{Y ∨Z} = Id_{Y} ⊓ Id_{Z}

PredLogInTheoAlgRel 8

1.1.4 Proof of 46.2.11

*** CONTINUE HERE ***

1.1.5 Lemma Let R : A ↭ B ↭ C ↭ D. Then

\begin{aligned}R(x, y, y, z) & = & (R(x, y, y′, z) ⊓ Id_{[\begin{matrix}y ↦ & B \\ y′ ↦ & C \end{matrix} ]})⇂ y′ \\ & = & (R(x, y′, y, z) ⊓ Id[\begin{matrix}y′ ↦ & B \\ y ↦ & C \end{matrix} ])⇂ y′ \end{aligned}

2 Subschemas

*** This is an update of “14. Order structures on schemas” ***

2.0.6 Introduction

In this section we introduce the following concepts. ( ; 𝅝 ; ) Given two schemas Y = [Y_{j}|j ∈ J] and X = [X_{i}|i ∈ I], then Y

is said to be a subschema of X, if

J ⊆ I and Y_{j} ⊆ X_{j} for each j ∈ J

We write □ ∗X for the class of all these subschemas of X. ( ; 𝅝 ; ) And if also J = I, we say that Y is an inclusion of X, and in

that case, we also write Y ⊆ X. And ⊠X stands for the class of all the inclusions of X. This class together with ⊆ is in fact a complete boolean algebra.

( ; 𝅝 ; ) In analogy with the notation for the three record classes ⊛X, ⊗X, ⊕X we define three schema classes □ ∗X, ⊠X, ⊞X in 2.1.1.

2.1 Subschemas

2.1.1 Definition

For every schema X = [X_{i}|i ∈ I] we define

□ ∗X := { [Y_{j}|j ∈ J] J ⊆ I and Y_{j} ⊆ X_{j} for each j ∈ J }

the (general) subschema class of X

⊠X := {[Y_{i}|i ∈ I] | Y_{i} ⊆ X_{i} for each i ∈ I}

the expanded subschema class of X

⊞X := {[ i ↦ S] | i ∈ I and S ⊆ X_{i}}

the singular subschema class of X

2.1.2 Remark

*** refer to the similarities with ⊛, ⊗, ⊕ ***

2.1.3 Example

*** CONTINUE HERE ***

2.2 The boolean algebra of total subschemas

2.2.1 Definition

For every schema X = [X_{i}|i ∈ I] we define

◯ 1 ⊆ ◯ 2 := [ \begin{matrix}⊠X ↭ ⊠X \\ ⟨Y, Z⟩ ↝ Y_{i} ⊆ Z_{i} for all i ∈ I \end{matrix} ]

the inclusion relation on ⊠X

*** CONTINUE HERE ***

2.3 The quasi–boolean algebra of partial subschemas

2.3.1 Definition

For every schema X = [X_{i}|i ∈ I] we define

◯ 1 ⊑ ◯ 2 := [ \begin{matrix}□ ∗X ↭ □ ∗X \\ ⟨Y, Z⟩ ↝ X√ Y ⊆ X√ Z \end{matrix} ]

the subvalence relation on □ ∗X

*** CONTINUE HERE ***

PredLogInTheoAlgRel 10

Figure 1:

Let X = [\begin{matrix}p ↦ & \{a, b\} \\ q ↦ & ∅ \\ r ↦ & \{a\} \end{matrix}] be a given schema. ( ; 𝅝 ; ) ⟨⊛X, ≤⟩ is given by the order diagram

*** CONTINUE HERE ***

( ; 𝅝 ; ) ⟨Proj (X) , ≤⟩ is given by the order diagram

*** CONTINUE HERE ***

( ; 𝅝 ; ) ⟨⊠X, ⊆⟩ is given by the order diagram

*** CONTINUE HERE ***

( ; 𝅝 ; ) ⟨□ ∗X, ⊑⟩ is given by the quasi–order diagram

*** CONTINUE HERE ***

3 Update: Attribute translation

3.1 UPDATE OF thalgref 22.2;

REPETITION

*** change the labels “xxx-label” to the proper filename ***

3.1.1 Introduction

*** we introduce the translation concept in two steps: full and particular translation ***

*** 1. Full translations ***

3.1.2 Repetition

( ; 𝅝 ; ) Recall ???? , that for every function f : D ⟶ C

f[ ◯ 1 ] := [ \begin{matrix}P (D) ⟶ P (C) \\ A ↦ \{f(a) | a ∈ A\} \end{matrix} ]

is the image class function of f

f^{-1}[ ◯ 1 ] := [ \begin{matrix}P (C) ⟶ P (D) \\ B ↦ \{a ∈ D\} f(a) ∈ B \end{matrix} ]

is the coimage class function of f

( ; 𝅝 ; ) Recall ???? , that sing (C) denotes the unique element c of a singleton C (i.e. a one–element class). In other words, if C = c then sing (C) = c.

( ; 𝅝 ; ) Recall ???? , that a record is a surjective function on an identifier class.

3.1.3 Definition Given one arbitrary class C, two identifier classes I and J, and two records τ : I ⟶ J and ξ : I ⟶ C.

(1) We say that ξ is translatable by τ, if there is a record υ : J ⟶ C such that ξ = υ ∘ τ.

[figure: I; J; C; τ; ξ; υ]

In case such a record υ exists, υ is called a translation of ξ by τ, and τ is called a (well–defined) (full) translator for ξ.

(2) We also define

tr (ξ, τ) := [ \begin{matrix}J −−→ C \\ j ↦ sing (\{ξ(i) | i ∈ τ^{-1}[ \{j\}]\}) \end{matrix} ]

3.1.4 Lemma Given one arbitrary class C, two identifier classes I and J, and two records τ : I ⟶ J and ξ : I ⟶ C. Then the following statements are equivalent:

(a) ξ is translatable by τ.

(b) tr (ξ, τ) is a record (i.e. this partial function is a surjective (total) function).

(c) tr (ξ, τ) is a translation of ξ by τ.

(d) tr (ξ, τ) is the unique translation of ξ by τ.

3.1.5 Proof of 3.1.4

*** CONTINUE HERE ***

*** 2. Digression: domain adaption ***

3.1.6 Repetition

Recall ???? , that for each f : D ⟶ C and A ⊆ D,

f|_{A} := [ \begin{matrix}A ⟶ C \\ a ↦ f(a) \end{matrix} ]

is the domain restriction of f onto A

3.1.7 Definition For every function f : D ⟶ C and each class A we define

f≀_{A} := [ \begin{matrix}A ⟶ (A \ D) ∪ f[ A ∩ D] \\ a ↦ \begin{cases}f(a) & if a ∈ D \\ a & else \end{cases} \end{matrix} ]

the domain adaption of f onto A 3.1.8 Lemma

(1) f≀_{A} is a well–defined surjective function for every function f : D ⟶ C and each class A.

(2) If f : D ⟶ C and A ⊆ D then (a) dom (f≀_{A}) = dom (f|_{A}) = A

(b) cod (f≀_{A}) = im (f|_{A}) ⊆ cod (f|_{A})

(c) f ≀_{A} (a) = f|_{A}(a) for all a ∈ A

(3) τ≀_{I} = τ for every record τ = [τ_{i}|i ∈ I].

(4) τ≀_{J} = id_{J} √ (τ|_{I∩J}) for every record τ = [τ_{i}|i ∈ I] and identifier class J.

3.1.9 Proof of 3.1.8

(1) *** CONTINUE HERE ***

(2) *** CONTINUE HERE ***

(3) We derive

dom (τ≀_{I}) = I due to def. ??def of f≀A??

cod (τ≀_{I}) = (I \ I) ∪ τ[ I ∩ I ] due to def. ??def of f≀A??

= τ[ I ]

= cod (τ) because the record τ is surjective

And for every i ∈ I holds:

τ ≀_{I} (i) = \begin{cases}τ_{i} & if i ∈ I \\ i & else \end{cases}

= τ_{i}

Alltogether

τ≀_{I} = [ \begin{matrix}I ⟶ cod (τ) \\ i ↦ τ_{i} \end{matrix} ] = τ

(4) *** CONTINUE HERE ***

*** 3. Particular translations ***

3.1.10 Definition

Given one arbitrary class C, three identifier classes I, I′ and J′, and two records τ : I′ ⟶ J′ and ξ : I ⟶ C. We put

J := (I \ I′) ∪ τ[ I ∩ I′ ] = cod (τ≀_{I})

so that

I′  ^{J′}^{τ}\overline{}and  ^{^{I}  ^{J}^{τ≀_{I}} \overline{}}

(1) We say that ξ is translatable by τ, if there is a record υ : J ⟶ C such that ξ = υ ∘ (τ≀_{I}).

[figure: I; J; C; τ≀_{I}; ξ; υ]

In case such a record υ exists, υ is called a translation of ξ by τ, and τ is called a (well–defined) (particular) translator for ξ.

(2) We also define

tr (ξ, τ) := tr (ξ, τ≀_{I})

3.1.11 Remark Note, that definition 3.1.10 is a well–defined generalization of 3.1.3.

( ; 𝅝 ; ) Definition 3.1.10(2) of tr (ξ, τ) := tr (ξ, τ≀_{I}) is correct, because the right side satisfies the precondition dom (ξ) = I = τ≀_{I} of definition 3.1.3(2).

( ; 𝅝 ; ) On the other hand, if I′ = I, then τ≀_{I} = τ, according to 3.1.8(3). And in that case, 3.1.10(1) coincides with 3.1.3(1).

3.1.12 Lemma If ξ is an arbitrary and τ is an identifier record, then the following statements are equivalent:

(a) ξ is translatable by τ.

(b) tr (ξ, τ) is a (well–defined) record.

(c) tr (ξ, τ) is a translation of ξ by τ.

(d) tr (ξ, τ) is the unique translation of ξ by τ.

3.1.13 Proof of 3.1.12

*** CONTINUE HERE ***

3.2 UPDATE OF thalgref 22; BUT THIS OLDER VERSION OF THE UPDATE IS OBSOLETE

*** new 22.1 Introduction ; as it is ***

*** new 22.2 Generalization of function applications and images ***

3.2.1 Repetition

Recall ??syntax.tex?? , that for every function f : D ⟶ C holds:

( ; 𝅝 ; ) If d ∈ D then

f(d)

is the value of f at d, or the f–value at d.

( ; 𝅝 ; ) If D′ ⊆ D, then

f[ D′ ] := {f(d) | d ∈ D′}

is the f–image class of A. ( ; 𝅝 ; ) For every c ∈ f[ D] we put

f^{-1}(c) := the d ∈ D with f(d) = c

f^{-1}(c) might not be well–defined in all cases, i.e. f^{-1} : f[ D] −−→ D is a partial function, which is total just in case f is injective.

3.2.2 Remark

We are going to generalize images and image classes of ??the previous repetition?? for arbitrary arguments d and arbitrary classes D′, where D′ ⊆ D is not necessarily the case anymore.

3.2.3 Definition Let f : D ⟶ C be a function and A any class.

(1) For every a ∈ A we define

f([a]) := \begin{cases}f(a) & if a ∈ D \\ a & else \end{cases}

(2) We also define

f[[A]] := {f([a]) | a ∈ A}

(3) And if b ∈ f([A]) we put

f^{-1}([b]) := the a ∈ A with f([a]) = b

3.2.4 Example

Let f be the modulo 3 function on natural numbers, i.e.

f := [ \begin{matrix}ℕ ⟶ ℕ \\ n ↦ \begin{cases}n & if 0 ≤ n ≤ 3 \\ f(n − 3) & if n > 3 \end{cases} \end{matrix} ]

(1) If

A = {−2, −1, 0, 1, 2}

then

f([−2]) = −2 f([−1]) = −1 f([0]) = 0 f([1]) = 1 f([2]) = 2

so that

f[[A]] = {−2, −1, 0, 1, 2} = A

and f : A ⟶ f[[A]] is the identity function on A

f([◯ 1 ]) = [ \begin{matrix}A ⟶ f[[A]] \\ n ↦ n \end{matrix} ]

Its inverse function is a well–defined total function as well

f^{-1}([◯ 1 ]) = [ \begin{matrix}f[[A]] ⟶ A \\ n ↦ n \end{matrix} ]

(2) On the other hand, if

A = {−4, −3, −2, −1, 0, 1, 2, 3, 4}

then

f[[A]] = {−4 − 3, −2, −1, 0, 1, 2}

we obtain

f([◯ 1 ]) = [ \begin{matrix}A ⟶ f[[A]] \\ n ↦ \begin{cases}n & if n < 3 \\ 0 & if n = 3 \\ 1 & if n = 4 \end{cases} \end{matrix} ]

With e.g. f([1]) = f([4]) = 1, there is no well–defined f^{-1}([1]), i.e. the inverse of f([◯ 1 ]) is not a total, but only a partial function

f^{-1}([◯ 1 ]) = [ \begin{matrix}f[[A]] −−→ A \\ n ↦ \begin{cases}n & if n < 0 \\ undefined & else \end{cases} \end{matrix} ]

3.2.5 Lemma

Let f : D ⟶ C be a function.

For each class A holds:

(1) f([◯ 1 ]) : A ⟶ f[[A]] is a well–defined surjective function

(2) f[[A]] = (D \ A) ∪ f[ A ∩ D]

(3) f^{-1}([◯ 1 ]) : f[[A]] −−→ A is a partial function and the following statements are equivalent:

(i) f^{-1}([◯ 1 ]) : f[[A]] ⟶ A

(ii) f([◯ 1 ]) : A ⟶ f[[A]] is injective

And in case A ⊆ D, we also have

(4) f([a]) = f(a) for all a ∈ A

(5) f[[A]] = f[ A]

(6) f^{-1}([b]) = f^{-1}(b) for all b ∈ f[ A], where either side is well– defined iff the other one is.

3.2.6 Proof of 46.2.11

The statements are quite immediate consequences of definition ??previous definition?? .

*** new 22.3 Translation of records ***

3.2.7 Lemma

Let ξ = [ξ_{i}|i ∈ I] be a record and τ an arbitrary identifier record. If we put

ξ′ := [ \begin{matrix}τ[[I]] −−→ cod (ξ) \\ j ↦ \begin{cases}ξ([τ^{-1}([j])]) & if τ^{-1}([j]) is defined \\ undefined & else \end{cases} \end{matrix} ]

then the following statements are equivalent:

( ; 𝅝 ; ) ξ′ : τ[[I]] ⟶ cod (ξ)

( ; 𝅝 ; ) ξ′ is a record

( ; 𝅝 ; ) τ([◯ 1 ]) : I ⟶ τ[[I]] is injective.

3.2.8 Proof of 46.2.11

*** CONTINUE HERE ***

3.2.9 Definition

Let ξ = [ξ_{i}|i ∈ I] be a record and τ an arbitrary identifier record. We say that ξ is translatable by τ, if τ([◯ 1 ]) : I ⟶ τ[[I]] is injective. An in case ξ is indeed translatable by τ, we define

tr (ξ, τ) := [ ξ([τ^{-1}([j])]) j ∈ τ[[I]] ] the translation of ξ by τ.

3.2.10 Example thalg 22.2.4

PredLogInTheoAlgRel 14

(1) Given

     ξ = [ \begin{matrix}child ↦ & c \\ father ↦ & f \\ mother ↦ & m \end{matrix} ] and τ = [ \begin{matrix}child ↦ & kind \\ father ↦ & vater \\ mother ↦ & mutter \end{matrix} ]

With

            I := dom (ξ) = {child, father, mother}

there is τ([◯ 1 ]) = [ \begin{matrix}I ⟶ τ[[I]] \\ i ↦ τ([i]) \end{matrix} ] = [ \begin{matrix}child ↦ & kind \\ father ↦ & vater \\ mother ↦ & mutter \end{matrix} ] = τ This τ([◯ 1 ]) is injective, so ξ is translatable by τ with

tr (ξ, τ) = [ \begin{matrix}kind ↦ & c \\ vater ↦ & f \\ mother ↦ & m \end{matrix} ]

(2)

4 Theory algebras of relations

*** ADD THIS SECTION AS SECTION 24 TO THE RELATION BOOK. ***

4.1 First–order theory algebras

*** two versions: with and without identity ***

4.1.1 Definition

Given a schema X = [X_{i}|i ∈ I]. We define

𝔓𝔯𝔢𝔩1 (X) := ⟨Prel (X) , I, ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂, Id⟩

where

\begin{matrix}◯ 1 ↾ ◯ 2 \\ ◯ 1 ⇂ ◯ 2 \end{matrix} \} : Prel (X) × I ⟶ Prel (X)

are the singular versions of the infimum and supremum eliminators (from definition Thalg 21.4.1 ), and

Id_{i,j} := Id_{pr(X,\{i,j\})} = [ \begin{matrix}[ & \begin{matrix}i ↦ & X_{i} \\ j ↦ & X_{j} \end{matrix} & ] \\ ξ ↝ ξ_{i} = ξ_{j} \end{matrix} ]

is the binary identity relation, for all i, j ∈ I.

4.1.2 Definition

Let X = [X_{i}|i ∈ I] be a schema and R ⊆ Prel (X). We say that R is (first–order) closed on X (or closed in 𝔓𝔯𝔢𝔩1 (X)), if

\begin{matrix}⊥ \\ ⊤ \\ R ⊓ S \\ R ⊔ S \\ ¬R \\ R↾ j \\ R⇂ j \\ Id & i,j \end{matrix} \} ∈ R for all R, S ∈ R and i, j ∈ @ (R)

On the other hand, given a class R of relations with

I := ⋃_{R∈R}@ (R)  and  X := ⋁_{R∈R}x (R)

We say that R is a (first–order) theory algebra of relations, if ( ; 𝅝 ; ) R is (pairwise) compatible. In other words (see Thalg 19.1.10 ),

R ∈ Prel (X) for each R ∈ R. ( ; 𝅝 ; ) R is closed in 𝔓𝔯𝔢𝔩1 (X).

4.1.3 Example

*** CONTINUE HERE ***

Part III

Version 2.0: New chapters for “Theory algebras of relations”

5 Members and factors

*** add this membership.tex as section 24 to

TheoAlgRelations ***

5.1 Introduction

5.1.1 Repetition

Given a schema X = [X_{i}|i ∈ I].

Recall (2.1.1), that this defines three particular classes of record:

( ; 𝅝 ; ) ⊛X the general record class ( ; 𝅝 ; ) ⊗X the records with domain I ( ; 𝅝 ; ) ⊕X the records with one single index i ∈ I

Similarly ( Thalg 12.1.2 ), it also defines three particular subschema classes: ( ; 𝅝 ; ) □ ∗X the general subschema class ( ; 𝅝 ; ) ⊠X the subschemas with domain I ( ; 𝅝 ; ) ⊞X the subschemas with one single index i ∈ I

Additionally ( Thalg 10.2.6 ), there is also another subschema class:

( ; 𝅝 ; ) Proj (X) made of all Y ≤ X, i.e all projections pr (X, J) with J ⊆ I.

5.1.2 Introduction

Given a schema X. Each Y ≤ X defines a class Rel (Y) of relations with schema Y. Ordered by ⊆, each of those classes turns into a boolean algebra ℜ𝔢𝔩 (Y). An essential idea of our work so far was the embedding of all these distinct algebras into a single so–called theory algebra on the union Prel (X) of these classes.

In this section we continue this generalization with the universal and very natural integration of records ⊛X and subschemas □ ∗X into this new structure. In each case, we do that in two equivalent ways:

(i) By defining “relationalizators”, i.e. two functions

⊛X ⟶ Prel (X)  and  □ ∗X ⟶ Prel (X)

which wrap records and subschemas into relations. We will see, that records always turn into elementary relations that way, and subschemas become cartesian relations, as we are going to call them.

(ii) Alternatively, we define two new relations

⊛X ↭ Prel (X)  and  □ ∗X ↭ Prel (X)

For records, this will be the generalization of the common membership relations

◯ 1 ∈ ◯ 2 : ⊗Y ↭ Rel (Y) for each Y ≤ X

to one more general membership relation

◯ 1 ∈ ◯ 2 : ⊛X ↭ Prel (X)

For subschemas we define a new factor relation

◯ 1 ⊴ ◯ 2 : □ ∗X ↭ Prel (X)

The equivalence of these two ways lies e.g. in the fact that if ξ ∈ ⊛X is a record and R ∈ Prel (X) a relation, and if S is the relationalization of ξ, then

ξ ∈ R iff S ⊑ R

All these things will appear very natural also, because they, once more, agree with the common expectations, e.g.

ξ ∈ (R ⊓ S) iff ξ ∈ R and ξ ∈ S

5.1.3 Remark “typed” and “untyped” generalizations

We just repeatedly described the generalization of concepts from ℜ𝔢𝔩 (Y) to 𝔓𝔯𝔢𝔩 (X), where Y ≤ X. But what about an absolute generalization on the class of all relations at all? Well yes, we can step outside the context of a particular given X and define “ξ ∈ R” (i.e. “ξ ∉ R”) for arbitrary records ξ and relations R. But if we do that in a reasonable way, we still need to make a restriction, namely that ξ and R must be compatible in a certain sense. Otherwise, we use the essential boolean properties in our whole way of thinking. If R and S are arbitrary relations, then there is not only “either R ⊑ S or R ⋢ S”, but also the case that neither of two is defined, namely in case R and S are incompatible, i.e. R ⌣̸ S ( Thalg 19.1.2(3) ). And, as in the case of the two relations, the compatibility of a record ξ and relation R is exactly saying, that there must be some schema X at all with ξ ∈ ⊛X and R ∈ Prel (X).

5.2 Some special classes of relations

5.2.1 Repetition

Recall Thalg 17.7.3 and Thalg 17.5.2 , that a relation R = [Y, Γ] with schema Y = [Y_{j}|j ∈ J] is called

(1) empty, if Γ = ∅

(2) full, if Γ = ⊗Y

(3) literal, if both J and Γ are singletons

(4) singular, if J is a singleton

(5) elementary, if Γ is a singleton

(6) a (finite) table, if both J is finite and Γ is finite

5.2.2 Definition

A relation R = [Y, Γ] is called cartesian, iff

Γ = ⊗Z  for some  Z ∈ ⊠Y

5.2.3 Example

As defined earlier, let ℕ = {0, 1, 2, …} be the natural numbers, ℤ = {…, −2, −1, 0, 1, 2, …} the integers and ℤ^{+} = {1, 2, 3, …} the positive integers. Then

R = [ \begin{matrix}ℕ × ℤ \\ ⟨a, b⟩ ↝ a · b > 0 \end{matrix} ]

is a cartesian relation, because

gr (R) = ℤ^{+}× ℤ^{+}

5.2.4 Definition

For every schema X = [X_{i}|i ∈ I] we define

EmpR (X) := {⊥_{Y} | Y ∈ Proj (X)}

the empty relation class of X

FulR (X) := {⊤_{Y} | Y ∈ Proj (X)}

the full relation class of X

LitR (X) := \{ [\begin{matrix}[ i ↦ X_{i} ] \\ \{[ i ↦ x]\} \end{matrix}] \begin{matrix}i ∈ I, \\ x ∈ X_{i} \end{matrix} \}

the literal relation class of X

SingR (X) := \{ [\begin{matrix}[ i ↦ X_{i} ] \\ ⊗[ i ↦ C ] \end{matrix}] \begin{matrix}i ∈ I, \\ C ⊆ X_{i} \end{matrix} \}

the singular relation class of X

ElmR (X) := \{ [\begin{matrix}Y \\ \{ξ\} \end{matrix}] \begin{matrix}Y ∈ Proj (X) , \\ ξ ∈ ⊗Y \end{matrix} \}

the elementary relation class of X

CartR (X) := \{ [\begin{matrix}Y \\ ⊗Z \end{matrix}] \begin{matrix}Y ∈ Proj (X) , \\ Z ∈ ⊠Y \end{matrix} \}

the cartesian relation class of X.

5.2.5 Example

Recall, that 𝔹 = {0, 1}. Let A := {a, b} and X the (univalent) schema with domain A and constant value 𝔹, i.e.

X := [𝔹|A] = [\begin{matrix}a ↦ & 𝔹 \\ b ↦ & 𝔹 \end{matrix}]

We called the overall relation class Prel (X) for such a schema the bit value relation class on A and denoted it by Brel (A) ( Thalg 17.8.4 ). There are alltogether 26 different relations in

Prel (X) (see example Thalg 17.8.3 ).

When we apply the definitions from 5.2.4 to this schema X, we obtain the following subclasses of Prel (X):

(1) EmpR (X) is made of four relations

\begin{matrix}a & b \\ 0 & 0 & 0 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \\ 1 & 1 & 0 \end{matrix}  \begin{matrix}a \\ 0 & 0 \\ 1 & 0 \end{matrix}  \begin{matrix}b \\ 0 & 0 \\ 1 & 0 \end{matrix}  0

(2) FulR (X) is made of four relations

\begin{matrix}a & b \\ 0 & 0 & 1 \\ 1 & 0 & 1 \\ 0 & 1 & 1 \\ 1 & 1 & 1 \end{matrix}  \begin{matrix}a \\ 0 & 1 \\ 1 & 1 \end{matrix}  \begin{matrix}b \\ 0 & 1 \\ 1 & 1 \end{matrix}  1

(3) LitR (X) = \{ [\begin{matrix}[ i ↦ 𝔹] \\ \{[ i ↦ β]\} \end{matrix}] i ∈ \{a, b\} , β ∈ 𝔹 \}

It is made of four relations

\begin{matrix}a \\ 0 & 1 \\ 1 & 0 \end{matrix}  \begin{matrix}a \\ 0 & 0 \\ 1 & 1 \end{matrix}  \begin{matrix}b \\ 0 & 1 \\ 1 & 0 \end{matrix}  \begin{matrix}b \\ 0 & 0 \\ 1 & 1 \end{matrix}

The boolean table diagram of a literal relation has one attribute, i.e. one column on the left, and exactly one row with a 1 on the right.

(4) SingR (X) = \{ [\begin{matrix}[ i ↦ 𝔹] \\ ⊗[ i ↦ B] \end{matrix}] i ∈ \{a, b\} , B ⊆ 𝔹 \}

It is made of eight relations

\begin{matrix}a \\ 0 & 0 \\ 1 & 0 \end{matrix}  \begin{matrix}a \\ 0 & 1 \\ 1 & 0 \end{matrix}  \begin{matrix}a \\ 0 & 0 \\ 1 & 1 \end{matrix}  \begin{matrix}a \\ 0 & 1 \\ 1 & 1 \end{matrix}  \begin{matrix}b \\ 0 & 0 \\ 1 & 0 \end{matrix}  \begin{matrix}b \\ 0 & 1 \\ 1 & 0 \end{matrix}  \begin{matrix}b \\ 0 & 0 \\ 1 & 1 \end{matrix}  \begin{matrix}b \\ 0 & 1 \\ 1 & 1 \end{matrix}

The boolean table diagram of a singular relation also has exactly one attribute column on the left. But in the right column, any combination of bit values is possible.

(5) ElmR (X) = \{ [\begin{matrix}pr & (X, J) \\ & \{ξ\} \end{matrix}] J ⊆ \{a, b\} , ξ ∈ ⊗pr (X, J) \}

It is made of nine relations

\begin{matrix}\begin{matrix}a & b \\ 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \\ 1 & 1 & 0 \end{matrix} & \begin{matrix}a & b \\ 0 & 0 & 0 \\ 1 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 1 & 0 \end{matrix} & & \begin{matrix}a & b \\ 0 & 0 & 0 \\ 1 & 0 & 0 \\ 0 & 1 & 1 \\ 1 & 1 & 0 \end{matrix} & & \begin{matrix}a & b \\ 0 & 0 & 0 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \\ 1 & 1 & 1 \end{matrix} \\ \begin{matrix}a \\ 0 & 1 \\ 1 & 0 \end{matrix} & \begin{matrix}a \\ 0 & 0 \\ 1 & 1 \end{matrix} & \begin{matrix}b \\ 0 & 1 \\ 1 & 0 \end{matrix} & & \begin{matrix}b \\ 0 & 0 \\ 1 & 1 \end{matrix} & 1 \end{matrix}

The boolean table diagram of an elementary relation has always exactly one row with a 1 on the right; all the others must be 0.

(6) CartR (X) = R_{∅} ∪ R_{a} ∪ R_{b} ∪ R_{a,b} comprises 1 + 4 + 4 + 10 = 19 of the 26 members of Prel (X), namely

R_{∅} = \{[\begin{matrix}⟨⟩ \\ ⊗⟨⟩ \end{matrix}]\} = \{ 1 \} = \{⊤\}

\begin{matrix}R_{a} = \{ [\begin{matrix}[ a ↦ 𝔹] \\ ⊗[ a ↦ B] \end{matrix}] B ⊆ 𝔹 \} = \{ \begin{matrix}a \\ 0 & 0 \\ 1 & 0 \end{matrix} , \begin{matrix}a \\ 0 & 1 \\ 1 & 0 \end{matrix} , \begin{matrix}a \\ 0 & 0 \\ 1 & 1 \end{matrix} , \begin{matrix}a \\ 0 & 1 \\ 1 & 1 \end{matrix} \} \\ R_{b} = \{ [\begin{matrix}[ b ↦ 𝔹] \\ ⊗[ b ↦ B] \end{matrix}] B ⊆ 𝔹 \} = \{ \begin{matrix}b \\ 0 & 0 \\ 1 & 0 \end{matrix} , \begin{matrix}b \\ 0 & 1 \\ 1 & 0 \end{matrix} , \begin{matrix}b \\ 0 & 0 \\ 1 & 1 \end{matrix} , \begin{matrix}b \\ 0 & 1 \\ 1 & 1 \end{matrix} \} \end{matrix}

And finally

R_{a,b} = \{ [ \begin{matrix}[ & \begin{matrix}a ↦ & 𝔹 \\ b ↦ & 𝔹 \end{matrix} & ] \\ ⊗ [\begin{matrix}a ↦ & A \\ b ↦ & B \end{matrix} ] \end{matrix} ] A, B ⊆ 𝔹 \}

is made of ten relations. For example

[ \begin{matrix}[ & \begin{matrix}a ↦ & 𝔹 \\ b ↦ & 𝔹 \end{matrix} & ] \\ ⊗ [\begin{matrix}a ↦ & \{0, 1\} \\ b ↦ & \{1\} \end{matrix}] \end{matrix} ] = [ \begin{matrix}[ & \begin{matrix}a ↦ & 𝔹 \\ b ↦ & 𝔹 \end{matrix} & ] \\ \{[\begin{matrix}a ↦ & 0 \\ b ↦ & 1 \end{matrix}] , [\begin{matrix}a ↦ & 1 \\ b ↦ & 1 \end{matrix}]\} \end{matrix} ] = \begin{matrix}a & b \\ 0 & 0 & 0 \\ 1 & 0 & 0 \\ 0 & 1 & 1 \\ 1 & 1 & 1 \end{matrix}

5.3 Records as relations and the generalized membership

5.3.1 Definition

For every schema X we define

elm_{X} := [ \begin{matrix}⊛X ⟶ ElmR (X) \\ ξ ↦ [\begin{matrix}pr & (X, dom (ξ)) \\ & \{ξ\} \end{matrix}] \end{matrix} ]

the elementary relationalizator on X.

elm_{X}(ξ) is the (elementary) relation of ξ on X.

5.3.2 Example

With 𝔹 = {0, 1} as usual and A := {a, b, c} and

X := [𝔹|A] = [\begin{matrix}a ↦ & 𝔹 \\ b ↦ & 𝔹 \\ c ↦ & 𝔹 \end{matrix}]

we obtain e.g.

(1) elm_{X} ([\begin{matrix}a ↦ & 0 \\ c ↦ & 1 \end{matrix}]) = [ \begin{matrix}pr & (X, \{a, c\}) \\ \{ & [\begin{matrix}a ↦ & 0 \\ c ↦ & 1 \end{matrix}] & \} \end{matrix} ] = \begin{matrix}a & c \\ 0 & 0 & 0 \\ 1 & 0 & 0 \\ 0 & 1 & 1 \\ 1 & 1 & 0 \end{matrix}

(2) elm_{X} ([\begin{matrix}a ↦ & 0 \\ b ↦ & 1 \\ c ↦ & 1 \end{matrix}]) = [ \begin{matrix}X \\ \{ & [\begin{matrix}a ↦ & 0 \\ b ↦ & 1 \\ c ↦ & 1 \end{matrix}] & \} \end{matrix} ] = \begin{matrix}a & b & c \\ 0 & 0 & 0 & 0 \\ 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 1 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 1 & 0 & 1 & 0 \\ 0 & 1 & 1 & 1 \\ 1 & 1 & 1 & 0 \end{matrix}

(3) elm_{X}(⟨⟩) = [\begin{matrix}pr & (X, ∅) \\ \{⟨⟩\} \end{matrix}] = [\begin{matrix}⟨⟩ \\ \{⟨⟩\} \end{matrix}] = ⊤

5.3.3 Remark

Let R = [Y, Γ] be a relation and υ ∈ ⊗Y. Then

υ ∈ R

⇔ υ ∈ Γ due to def. Thalg 17.2.5 of ∈

⇔ {υ} ⊆ Γ

⇔ [\begin{matrix}Y \\ \{υ\} \end{matrix}] ⊆ [\begin{matrix}Y \\ Γ \end{matrix}] due to def. Thalg 19.5.1 of ⊆

⇔ elmY (υ) ⊆ R due to def. 5.3.1

In other words, elm_{Y} gave us the means to express the membership relation

◯ 1 ∈ ◯ 2 : ⊗Y ↭ Rel (Y)

in terms of the inclusion

◯ 1 ⊆ ◯ 2 : Rel (Y) ↭ Rel (Y)

In Thalg 20.2 we generalized this inclusion ⊆ to the subvalence relation

◯ 1 ⊑ ◯ 2 : Prel (X) ↭ Prel (X)

Putting these together then gives us an idea for the generalization of

◯ 1 ∈ ◯ 2 : ⊗Y ↭ Rel (Y)

to

◯ 1 ∈ ◯ 2 : ⊛X ↭ Prel (X)

as follows.

5.3.4 Definition

Let X be a schema. We define

◯ 1 ∈ ◯ 2 := [ \begin{matrix}⊛X ↭ Prel (X) \\ ⟨ξ, R⟩ ↝ elm_{X}(ξ) ⊑ R \end{matrix} ]

the membership relation (on X)

As usual ( Thalg 5.7.10 ), we write

◯ 1 ∉ ◯ 2  for ¬ (◯ 1 ∈ ◯ 2 )

Also as usual,

( ; 𝅝 ; ) ξ ∈ R reads “ξ is in R” or “ξ is a member of R”, and ( ; 𝅝 ; ) ξ ∉ R reads “ξ is not in R” or “ξ is not a member of R”.

5.3.5 Example

Given a class

                                                                             People := {Ann, Berta, Cindy, Daniel, Eddy, Fred, George}

a schema

                                                                                           X = [ \begin{matrix}man ↦ & People \\ woman ↦ & People \\ child ↦ & People \end{matrix} ]

and a relation Married ∈ Prel (X), namely

                                                                                  Married =

                                                                                                man : People  woman : People
                                                                                                  Daniel         Ann
                                                                                                   Eddy         Berta
                                                                                                   Fred         Cindy

Then, for example

                                                                       (1) [\begin{matrix}man ↦ & Daniel \\ woman ↦ & Ann \end{matrix}] ∈ Married

                                                                       (2) [\begin{matrix}man ↦ & Daniel \\ woman ↦ & Berta \end{matrix}] ∉ Married

                                                                       (3) [\begin{matrix}man ↦ & Daniel \\ woman ↦ & Ann \\ child ↦ & George \end{matrix}] ∈ Married

                                                                       (4) [\begin{matrix}man ↦ & Daniel \\ woman ↦ & Berta \\ child ↦ & George \end{matrix}] ∉ Married

                                                                       (5) [ man ↦ Eddy ] ∉ Married
                                                                       (6) [ child ↦ George ] ∉ Married

5.3.6 Remark

In the previous example 5.3.5, we had a schema X, a relation Married ∈ Prel (X), and we took some ξ ∈ ⊛X and decided if

                                                                       either ξ ∈ Married or ξ ∉ Married.

Now let us take some X′ ≥ X, say

                                                                                        X′ = [\begin{matrix}man ↦ & People \\ woman ↦ & People \\ child ↦ & People \\ grandfather ↦ & People \\ grandmother ↦ & People \end{matrix}]

Then Married ∈ Prel (X′) and each ξ ∈ ⊛X also is ξ ∈ ⊛X′ and we have

elm_{X}(ξ) ⊑ Married iff elm_{X′} (ξ) ⊑ Married

In order to decide if ξ ∈ Married or ξ ∉ Married, it doesn’t matter if we refer to X or X′. Actually, for that decision, we only need the part of X which is given in Married, namely

                       [\begin{matrix}man ↦ & People \\ woman ↦ & People \end{matrix}]

So we might be able to improve definition 5.3.4 of ◯ 1 ∈ ◯ 2 by looking for a version that is only dependent on the two given arguments. This is possible and the answer is given in 5.3.13 below. But for that, we need to make a restriction on the given arguments: the record needs to be “compatible” with the relation R, otherwise neither “ξ ∈ R” nor “ξ ∈ R” is the case.

5.3.7 Definition

Let ξ = [ξ_{j}|j ∈ J] be a record and R = [Y, Γ] be a relation with schema Y = [Y_{k}|k ∈ K]. We say that ξ is compatible with R iff ξ_{i} ∈ Y_{i} for all i ∈ J ∩ K.

5.3.8 Lemma

Let ξ = [ξ_{j}|j ∈ J] be a record and R = [Y, Γ] be a relation with schema Y = [Y_{k}|k ∈ K]. Then the following statements are equivalent:

(1) ξ is compatible with R

(2) pr (ξ, J ∩ K) ∈ ⊗pr (Y, J ∩ K)

(3) There is a schema X such that ξ ∈ ⊛X and R ∈ Prel (X)

5.3.9 Proof of 5.3.8

(1) and (2) are equivalent because

ξ is compatible with R

⇔ ξ_{i} ∈ Y_{k} for all i ∈ J ∩ K

due to definition 5.3.8

⇔ pr (ξ, J ∩ K) ∈ ⊗pr (Y, J ∩ K)

due to def. Thalg 12.1.2 of ⊗

(1) and (3) are equivalent, too: ( ; 𝅝 ; ) Suppose (1), that ξ is compatible with R. We put

X := Y ˙∨ [{ξ_{j}}_{j} |j ∈ (J \ K)]

Then ξ ∈ ⊛X and R ∈ Prel (X). ( ; 𝅝 ; ) On the other hand, suppose that (3), there is a schema X such

that ξ ∈ ⊛X and R ∈ Prel (X). Then Y = pr (X, K) and ξ ∈ X_{i} = Y_{i} for all i ∈ J ∩ K. Which means (1), that ξ is compatible with R.

5.3.10 Lemma

Let X be a schema, ξ ∈ ⊛X and R = [Y, Γ] ∈ Prel (X). Then

ξ ∈ R iff ∀υ ∈ ⊗Y . (υ ⌣ ξ → υ ∈ Γ)

5.3.11 Proof of 5.3.10

Let ξ = [ξ_{j}|j ∈ J] and @ (R) = K, so that Y = pr (X, K). Then

ξ ∈ R

⇔ elm_{X}(ξ) ⊑ R

⇔ [\begin{matrix}pr & (X, J) \\ & \{ξ\} \end{matrix}] ⊑ R

due to def. 5.3.1

⇔ pr ([\begin{matrix}pr & (X, J) \\ & \{ξ\} \end{matrix}], J ∩ K) ⊆ cpj (R, J ∩ K)

due to Thalg 21.3.6

⇔ [ \begin{matrix}pr & (X, J ∩ K) \\ \{ & pr & (ξ, J ∩ K) & \} \end{matrix} ] ⊆ [ \begin{matrix}pr & (X, J ∩ K) \\ υ ↝ ∀ζ ∈ ⊗pr (X, K \ J) . υ ˙∨ ζ ∈ Γ \end{matrix} ]

due to def. Thalg 21.2.2 and lemma Thalg 21.2.7

⇔ ∀ζ ∈ ⊗pr (X, K \ J) . pr (ξ, J ∩ K) ˙∨ ζ ∈ Γ
⇔ ∀υ ∈ ⊗pr (X, K) . (ξ ⌣ υ → υ ∈ Γ)

due to Thalg 10.3.12(2)

5.3.12 Remark

Lemma 5.3.8 and 5.3.10 combined provide us with a membership criterion only depending on the argument record and relation, without referring to an overall schema X:

5.3.13 Corollary

Let ξ be a record and R a relation so that ξ is compatible with R. Then

ξ ∈ R iff ∀υ ∈ ⊗Y . (υ ⌣ ξ → υ ∈ R)

5.3.14 Example

Let S be the usual linear order ≤ on the natural numbers, i.e.

S = [ \begin{matrix}ℕ ↭ ℕ \\ ⟨a, b⟩ ↝ a ≤ b \end{matrix} ]

The schema of S is

x (S) = ⟨ℕ, ℕ⟩ = [\begin{matrix}1 ↦ & ℕ \\ 2 ↦ & ℕ \end{matrix}]

A record ξ = [ξ_{j}|j ∈ J] is compatible with S iff

1 ∈ J implies ξ_{1} ∈ ℕ  and  2 ∈ J implies ξ_{2} ∈ ℕ

For example,

(1) ξ = ⟨-2, 1⟩ is not compatible with S, because ξ_{1} = -2 ∉ ℕ, so neither “⟨-2, 1⟩ ∈ S” nor “⟨-2, 1⟩ ∉ S” is defined

(2) [ 3 ↦ 782 ] is compatible with S, but it is not a member of S, [ 3 ↦ 782 ] ∉ S, because there are ⟨a, b⟩ ∈ ℕ × ℕ, with ⟨a, b⟩ ⌣ [ 3 ↦ 782 ] (in fact, that is true for all ⟨a, b⟩), but ⟨a, b⟩ ∉ S. For example, ⟨5, 2⟩ ∈ ℕ × ℕ and ⟨5, 2⟩ ⌣ [ 3 ↦ 782 ], but ⟨5, 2⟩ ∉ S.

(3) Each tuple ⟨n_{1}, …, n_{k}⟩ of natural numbers is compatible with S. In particular,

(a) ⟨3, 4⟩ ∈ S

(b) ⟨4, 3⟩ ∉ S

(c) ⟨3, 4, 1⟩ ∈ S

(d) ⟨4, 3, 1⟩ ∉ S

(e) ⟨0⟩ ∈ S

(f) ⟨n⟩ ∉ S for all n > 0

5.4 Properties

due to def. 5.3.4

5.4.1 Lemma

Let X be a proper schema, ξ ∈ ⊛X and R ∈ Prel (X). With J := dom (ξ) ∩ @ (R) there is

ξ ∈ R iff pr (ξ, J) ∈ gr (cpj (R, J))

5.4.2 Proof of 5.4.1

ξ ∈ R

⇔ elmX(ξ) ⊑ R due to def. 5.3.4

⇔ [\begin{matrix}pr & (X, dom (ξ)) \\ & \{ξ\} \end{matrix}] ⊑ R due to def. 5.3.1

⇔ pr ([\begin{matrix}pr & (X, dom (ξ)) \\ & \{ξ\} \end{matrix}], J) ⊆ cpj (R, J) due to Thalg 21.3.6

⇔ [\begin{matrix}pr & (X, J) \\ \{ & pr & (ξ, J) & \} \end{matrix}] ⊆ cpj (R, J) due to def. Thalg 21.2.2

⇔ {pr (ξ, J)} ⊆ gr (cpj (R, J)) due to def. Thalg 19.5.1 ⇔ pr (ξ, J) ∈ gr (cpj (R, J))

5.4.3 Remark

*** apply that for a table method ***

5.4.4 Lemma

Let X = [X_{i}|i ∈ I] be a proper schema, ξ ∈ ⊛X and R ∈ Prel (X), where ξ = [ξ_{j}|j ∈ J], R = [Y, Γ] with Y = [Y_{k}|k ∈ K].

(1) If J ∩ K = ∅ then

ξ ∈ R iff R ≡ ⊤

(2) If K ⊆ J then

ξ ∈ R iff pr (ξ, K) ∈ Γ

(3) If J ⊆ K then

ξ ∈ R iff ξ ∈ cpj (R, J)

5.4.5 Proof of 5.4.4

*** CONTINUE HERE ***

5.4.6 Lemma

Let X = [X_{i}|i ∈ I] be a proper schema and ξ, υ ∈ ⊛X.

(1) If card (X_{i}) > 1 for each i ∈ I, then

elm_{X}(ξ) ⊑ elm_{X}(υ) iff υ ≤ ξ

(2) More general, if we put I′ := {i ∈ I | card (X_{i}) > 1} then

elm_{X}(ξ) ⊑ elm_{X}(υ) iff pr (υ, I′) ≤ pr (ξ, I′)

5.4.7 Proof of 5.4.6 Let ξ = [ξ_{j}|j ∈ J] and υ = [υ_{k}|k ∈ K]. We obtain

elm_{X}(ξ) ⊑ elm_{X}(υ)

⇔ [\begin{matrix}pr & (X, J) \\ & \{ξ\} \end{matrix}] ⊑ [\begin{matrix}pr & (X, K) \\ & \{υ\} \end{matrix}]

due to def. 5.3.1

*** CONTINUE HERE ***

5.4.8 Lemma

Let X = [X_{i}|i ∈ I] be a proper schema, ξ ∈ ⊛X and R ∈ Prel (X).

(1) For every J ⊆ @ (R) holds: if J′ := dom (ξ) ∩ J then

(a) ξ ∈ pr (R, J) iff pr (ξ, J′) ∈ gr (cpj (pr (R, J) , J′))

(b) ξ ∈ cpj (R, J) iff pr (ξ, J′) ∈ gr (cpj (R, J′))

(2) For every j ∈ I holds

(a) ξ ∈ R↾ j iff *** CONTINUE HERE *** (b) ξ ∈ R⇂ j iff *** CONTINUE HERE ***

(3) For each Y ∈ Proj (X) holds

(a) ξ ∈ R ⇓ Y iff *** CONTINUE HERE *** (b) ξ ∈ R ⇑ Y iff *** CONTINUE HERE ***

5.4.9 Proof of 5.4.8

(1)

(a) Immediate consequence of 5.4.1.

(b) ξ ∈ cpj (R, J)

⇔ pr (ξ, J′) ⊆ gr (cpj (cpj (R, J) , J′))

due to 5.4.1

⇔ pr (ξ, J′) ⊆ gr (cpj (R, J′))

due to Thalg 21.3.3(6)(b)

(2) *** CONTINUE HERE ***

(3) *** CONTINUE HERE ***

5.4.10 Lemma

Let X be a proper schema, Y ∈ Proj (X) and R, S ∈ Prel (X), such that x (R) ∧ x (S) ≤ Y. Then

(1) R ⊑ S iff ∀ξ ∈ ⊗Y . (ξ ∈ R → ξ ∈ S)

(2) R ≡ S iff ∀ξ ∈ ⊗Y . (ξ ∈ R ↔ ξ ∈ S)

5.4.11 Proof of 5.4.10

Let R = [Z, Γ] and S = [U, Σ].

*** CONTINUE HERE ***

5.4.12 Lemma

Let X be a proper schema, ξ ∈ ⊛X and R, S ∈ Prel (X) and R ⊆ Prel (X). Then

(1) ξ ∉ ⊥

(2) ξ ∈ ⊤

(3) ξ ∈ ¬R iff ξ ∉ R

*** WRONG! in fact, ξ ∈ ¬R implies ξ ∉ R, but not necessarily the other way round ***

(4) ξ ∈ (R ⊓ S) iff (ξ ∈ R and ξ ∈ S)

(5) ξ ∈ (R ⊔ S) iff (ξ ∈ R or ξ ∈ S)

(6) ξ ∈ ∏R iff (ξ ∈ R for all R ∈ R)

(7) ξ ∈ ∐R iff (ξ ∈ R for some R ∈ R)

5.4.13 Proof of 5.4.12

Let X = [X_{i}|i ∈ I], ξ = [ξ_{j}|j ∈ J] and R = [Y, Γ] with @ (R) = K, so that Y = [X_{k}|k ∈ K].

(1) Applying 5.4.4(2) gives us

ξ ∈ ⊥ iff pr (ξ, @ (⊥)) ∈ gr (⊥) iff ⟨⟩ ∈ ∅

and that is always false, so ξ ∉ ⊥

(2) Again with 5.4.4(2) we derive

ξ ∈ ⊤ iff pr (ξ, @ (⊤)) ∈ gr (⊤) iff ⟨⟩ ∈ {⟨⟩}

which is true, so ξ ∈ ⊤, indeed.

(3) *** CONTINUE HERE ***

(4) *** CONTINUE HERE ***

(5) *** CONTINUE HERE ***

(6) *** CONTINUE HERE ***

(7) *** CONTINUE HERE ***

5.5 Subschemas as relations and factors

5.5.1 Definition

For every schema X we define

carl_{X} := [ \begin{matrix}□ ∗X ⟶ CartR (X) \\ Y ↦ [\begin{matrix}pr & (X, dom (Y)) \\ & ⊗Y \end{matrix}] \end{matrix} ]

the cartesian relationalizator on X.

carl_{X}(Y) is the (cartesian) relation of Y.

5.5.2 Example

Let us take the example schema X from 5.3.5 again, where

                    X = [ \begin{matrix}man ↦ & People \\ woman ↦ & People \\ child ↦ & People \end{matrix} ]

with

      People = {Ann, Berta, Cindy, Daniel, Eddy, Fred, George}

Then, for example

             Y := [ \begin{matrix}man ↦ & \{Daniel, Eddy\} \\ woman ↦ & \{Ann, Berta\} \end{matrix} ] ∈ □ ∗X

with

          carl_{X}(Y) = [ \begin{matrix}[ & man ↦ People woman ↦ People & ] \\ ⊗ [ \begin{matrix}man ↦ & \{Daniel, Eddy\} \\ woman ↦ & \{Ann, Berta\} \end{matrix} ] \end{matrix} ]

which is in graph table diagram notation

                                                                                  carl_{X}(Y) = man : People  woman : People Daniel         Ann Eddy          Ann Daniel        Berta Eddy         Berta

5.5.3 Definition

A schema Z is said to be compatible with a relation R = [Y, Γ] iff

Z_{j} ⊆ Y_{j} for all j ∈ dom (Z) ∩ @ (R)

5.5.4 Lemma

For every schema Z and relation R the following statements are equivalent:

(1) Z is compatible with R

(2) Z ∈ □ ∗X and R ∈ Prel (X) for some schema X

5.5.5 Proof of 5.5.4

*** CONTINUE HERE ***

5.5.6 Definition

For every schema X we define

◯ 1 ⊴ ◯ 2 := [ \begin{matrix}□ ∗X ↭ Prel (X) \\ ⟨Y, R⟩ ↝ ∀υ ∈ ⊗Y . υ ∈ R \end{matrix} ]

the factor relation on X

As usual (see Thalg 5.7.10 ) we write

◯ 1 ⋬ ◯ 2 for ¬(◯ 1 ⋬ ◯ 2 )

We say that

( ; 𝅝 ; ) Y is a factor of R in case Y ⊴ R, and ( ; 𝅝 ; ) Y is not a factor of R in case Y ⋬ R.

5.5.7 Example

*** UPDATE ***

Let us take the example schema X from 5.3.5 again, where

                                                                                        X = [ \begin{matrix}man ↦ & People \\ woman ↦ & People \\ child ↦ & People \end{matrix} ] with

                                                                             People = {Ann, Berta, Cindy, Daniel, Eddy, Fred, George}

Then, for example

( ; 𝅝 ; )

and a relation Married ∈ Prel (X), namely

                                                                                  Married =

                                                                                                man : People  woman : People
                                                                                                  Daniel         Ann
                                                                                                   Eddy         Berta
                                                                                                   Fred         Cindy

5.5.8 Example

*** ℤ^{−}× ℤ^{+}⊴≤ ***

5.5.9 Lemma

Let X be a schema, Y ∈ □ ∗X and R ∈ Prel (X). Then

Y ⊴ R iff carl_{X}(Y) ⊑ R

5.5.10 Proof of 5.5.9 Let X = [X_{i}|i ∈ I], Y = [Y_{j}|j ∈ J] and R = [Z, Γ]. We derive

Y ⊴ R ⇔ ∀υ ∈ ⊗Y . υ ∈ R

due to def. 5.5.6

⇔ [\begin{matrix}pr & (X, J) \\ & ⊗Y \end{matrix}] ⊑ [\begin{matrix}Z \\ Γ \end{matrix}]

due to 5.4.10 ??make sure, the reference is correct??

⇔ carl_{X}(Y) ⊑ R

due to def. 5.5.1

5.5.11 Lemma

Let X be a schema and Y, Z ∈ □ ∗X such that dom (Y) = dom (Z). Then the following statements are equivalent:

( ; 𝅝 ; ) carl_{X}(Y) ⊑ carl_{X}(Z)

( ; 𝅝 ; ) Y ⊆ Z

( ; 𝅝 ; ) Y ⊴ carl_{X}(Z)

5.5.12 Proof of 5.5.11

*** CONTINUE HERE ***

5.6 Factorizations

*** UPDATE ALL THIS ***

Let X be a schema, Y ∈ □ ∗X and R ∈ Prel (X). We say that Y is a ( ; 𝅝 ; ) factor of R, if

Y ⊴ R i.e. iff υ ∈ R for all υ ∈ ⊛Y

( ; 𝅝 ; ) natural factor of R, if it is a factor and

dom (Y) = @ (R)

( ; 𝅝 ; ) elementary factor of R, if it is a natural factor and

⊗Y = {υ} is a singleton ( ; 𝅝 ; ) regular factor of R, if it is a factor and

∅ ⊂ Y_{j} ⊂ X_{j} for each j ∈ dom (Y)

( ; 𝅝 ; ) prime factor of R, if it is a regular factor and

Z ⊆ Y for every (other) natural factor Z of R

Let X be schema and R = [Y, Γ] ∈ Prel (X). We define

Fac_{X}(R) := {Z ∈ □ ∗X | Z ◁ R}

the factor class of R on X

Nfac (R) := {Z ∈ ⊠Y | Z ◁ R}

the natural factor class of R

Prim (R) := ∗ ∗ ∗CONTINUEHERE ∗ ∗∗ the prime factor class of R

Let R = [X, Γ] be a relation, then

( ; 𝅝 ; ) Γ = ⋃{⊗Y | Y ∈ Nfac (R)}

( ; 𝅝 ; ) Γ = ⋃{⊗Y | Y ∈ Prim (R)}

Y ⊆ ⊠X is a generating factor class or factorization for R = [X, Γ], if

⋃{⊗Y | Y ∈ Y} = Γ

( ; 𝅝 ; ) R is a cartesian relation iff it has a factorization with just

one member ( ; 𝅝 ; ) R is a compact relation iff it has a finite factorization

6 Compact relations

6.1 Introduction

*** CONTINUE HERE ***

6.2 Compact relations and their representations

6.2.1 Definition

Let R = [Y, Γ] be a relation. We say that R is compact, iff

(1) @ (R) is finite, and

(2) there is some

Y = {Y_{1}, …, Y_{m}} ⊆ ⊠Y

such that

R = [\begin{matrix}Y \\ ⊗Y_{1} ∪ … ∪ ⊗Y_{n} \end{matrix}]

For every schema X we define

Crel (X) := {R ∈ Prel (X) | R is compact }

the compact relation class of X

Each compact relation R can be represented by a compact table diagram as follows. If

R = [\begin{matrix}Y \\ ⊗Y_{1} ∪ … ∪ ⊗Y_{n} \end{matrix}] with @ (R) = \{i_{1}, …, i_{m}\}

then we also write

R = \begin{matrix}i_{1} : Y (i_{1}) & … & i_{m} : Y (i_{m}) \\ Y_{1}(i_{1}) & … & Y_{1}(i_{m}) \\ Y_{2}(i_{1}) & … & Y_{2}(i_{m}) \\ ⋮ & & ⋮ \\ Y_{n}(i_{1}) & … & Y_{n}(i_{m}) \end{matrix}

6.2.2 Remark

Thus

Crel (X) = \{ [\begin{matrix}Y \\ ⊗Y_{1} ∪ … ∪ ⊗Y_{n} \end{matrix}] Y ∈ Proj (X) , dom (Y) is finite , \{Y_{1}, …, Y_{m}\} ⊆ ⊠Y \}

*** CONTINUE HERE ***

*** update these example according to the new definitions ***

6.2.3 Example

T = [\begin{matrix}ℤ ↭ ℤ \\ ⟨a, b⟩ ↝ a + b is even \end{matrix} ] is a compact relation.

6.2.4 Proof of 6.2.3

Recall, that the integers ℤ partition into two disjunction classes:

( ; 𝅝 ; ) E := {2 · n | n ∈ ℤ} = {…, -6, -4, -2, 0, 2, 4, 6, …}

the even numbers, and

( ; 𝅝 ; ) O := {2 · n + 1 | n ∈ ℤ} = {…, -5, -3, -1, 1, 3, 5, …}

the odd numbers.

Also recall, that for all a, b ∈ ℤ holds:

a + b ∈ \begin{cases}E & if a ∈ E and b ∈ E \\ O & if a ∈ O and b ∈ E \\ O & if a ∈ E and b ∈ O \\ E & if a ∈ O and b ∈ O \end{cases}

and so

T = [ \begin{matrix}ℤ ↭ ℤ \\ ⟨a, b⟩ ↝ (a ∈ E and b ∈ E) or (a ∈ O and b ∈ O) \end{matrix} ]

which means that

\begin{aligned}gr (T) & = & \{⟨a, b⟩ ∈ ℤ × ℤ | a + b ∈ E\} \\ & = & (E × E) ∪ (O × O) \end{aligned}

so that T is indeed compact, according to definition 6.5.3.

6.2.5 Example

The usual linear order ≤ on the integers is not compact.

6.2.6 Proof of 6.2.5

Suppose, ≤ would be compact. According to definition 6.5.3, there must be

⟨A_{1}, B_{1}⟩, …, ⟨A_{n}, B_{n}⟩ ∈ Incl (⟨ℤ, ℤ⟩)

in other words, there must be

A_{1}, B_{1}, …, A_{n}, B_{n} ⊆ ℤ

such that

(A_{1} × B_{1}) ∪ … ∪ (A_{n} × B_{n}) = gr (≤)

For all A_{i}, B_{i} ⊆ ℤ holds

(A_{i} × B_{i}) ⊆ gr (≤) ⇔ ∀a ∈ A_{i} . ∀b ∈ B_{i} . a ≤ b
⇔ max (A_{i}) ≤ min (B_{i})

implying that both max (A_{i}) ∈ A_{i} and min (B_{i}) ∈ B_{i} are well– defined. We put

M := {min (B_{1}) , …, min (B_{n})} and m := max (M) + 1 Then there is no i ∈ {1, …, n} with

⟨m, m⟩ ∈ A_{i} × B_{i}

But because

⟨m, m⟩ ∈ gr (≤)

our initial assumption that

(A_{1} × B_{1}) ∪ … ∪ (A_{n} × B_{n}) = gr (≤)

cannot be true.

6.2.7 Lemma

Every relation with a completely finite schema is compact.

6.2.8 Proof of 6.2.7

Let R = [X, Γ] be the given relation with schema X = [X_{i}|i ∈ I]. If X is completely finite, then ⊗X is finite and so is Γ, since Γ ⊆ ⊗X. We put

Γ′ := {[{ξ_{i}} |i ∈ I] | ξ ∈ Γ}

For each ξ′ = [{ξ_{i}} |i ∈ I] holds ξ′ ⊆ X. Γ′ has the same cardinality as Γ and is thus finite, and

⋃_{ξ′∈Γ′}⊗ξ′ = ⋃_{ξ∈Γ}⊗[{ξ_{i}} |i ∈ I] = ⋃_{ξ∈Γ}{ξ} = Γ

According to definition 6.5.3, that makes R a compact relation.

6.2.9 Lemma compact-topcartesian

f X = [X_{i}|i ∈ I] is a proper schema, then

(1) ⊥ ∉ CartR (X)

(2) ⊤ ∈ CartR (X)

(3) ⊥ ∈ CompR (X)

(4) ⊤ ∈ CompR (X)

6.2.10 Proof of ??

*** CONTINUE HERE ***

6.2.11 Lemma

Let X = [X_{i}|i ∈ I] be a schema an R ∈ Prel (X). Then

(1) R is a literal relation iff it can be written as

\begin{matrix}i : X_{i} \\ x \end{matrix}  with  i ∈ I and x ∈ X_{i}

( ; 𝅝 ; ) R is a singular relation iff it can be written as

\begin{matrix}i : X_{i} \\ C \end{matrix}  with  i ∈ I and C ⊆ X_{i}

6.2.12 Proof of 6.2.11

*** CONTINUE HERE ***

6.2.13 Lemma

Let X = [X_{i}|i ∈ I] be a schema and R ∈ Prel (X). Then the following statements are equivalent: ( ; 𝅝 ; ) R is cartesian and compact ( ; 𝅝 ; ) R can be written as

\begin{matrix}i_{1} : X_{i1} & … & i_{m} : X_{im} \\ C_{1} & … & C_{m} \end{matrix}

for some classes C_{1} ⊆ X_{i1} , …, C_{m} ⊆ X_{im}. ( ; 𝅝 ; ) There are (pairwise distinct) singular relations S_{1}, …, S_{m} ∈

SingR (X) with

S_{1} ⊙ … ⊙ S_{m} = R

6.2.14 Proof of 6.2.13

*** CONTINUE HERE ***

6.3 Introduction

*** CONTINUE HERE ***

6.4 Compact relations and their representations

6.4.1 Definition

A compact table T is made of ( ; 𝅝 ; ) A finite class I of so–called indices or attributes, say

I = {i_{1}, …, i_{n}}

( ; 𝅝 ; ) A (finite) schema X on this given I, i.e.

X = [ \begin{matrix}i_{1} & ↦ & X_{i} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & X_{n} \end{matrix} ] with classes X_{1}, …, X_{n}

( ; 𝅝 ; ) A finite expanded subschema class Y of X, i.e.

Y = {Y_{1}, …, Y_{m}} ⊆ ⊠X

with

Y_{j} = [ \begin{matrix}i_{1} & ↦ & Y_{j,1} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & Y_{j,n} \end{matrix} ] ⊆ X for each j ∈ \{1, …, m\}

We always write such a compact table as a compact table diagram

T = \begin{matrix}i_{1} : X_{1} & … & i_{n} : X_{n} \\ Y_{1,1} & … & Y_{1,n} \\ Y_{2,1} & … & Y_{2,n} \\ ⋮ & & ⋮ \\ Y_{m−1,1} & … & Y_{m−1,n} \\ Y_{m,1} & … & Y_{m,n} \end{matrix}

And we consider such a compact table T to be just an alternative representation for a relation, namely

T = [ \begin{matrix}X \\ ⊗Y_{1} ∪ … ∪ ⊗Y_{m} \end{matrix} ]

For every schema X, we define

CompR (X) :=

\{ \frac{R ∈ Prel (X)}{R has a compact table representation} \}

the compact relation class of X

6.4.2 Remark

The compact table diagram is very similar to the graph table diagram ( Thalg 17.2.4 ), except that the outer four lines of the diagram are tripled.

6.4.3 Remark

A literal relation somehow is the most primitive kind of relation. It has the form

[ \begin{matrix}[ i ↦ D] \\ \{[ i ↦ d]\} \end{matrix} ]

where i is the only attribute, D a class and d ∈ D a distinguished value. Such a literal relation can always be represented by its graph table diagram ( Thalg 17.5.4 )

\begin{matrix}i : D \\ d \end{matrix}

and that is probably even more intuitive.

6.4.4 Lemma

Every table is a compact relation. In other words, Tab (X) ⊆ CompR (X), for every schema X.

6.4.5 Proof of 6.4.4

A table T ∈ Tab (X) must be representable by a table diagram, say

T = \begin{matrix}i_{1} : X_{i1} & … & i_{n} : X_{in} \\ x_{1,1} & … & x_{1,n} \\ ⋮ & & ⋮ \\ x_{m,1} & … & x_{m,n} \end{matrix}

But then

T = \begin{matrix}i_{1} : X_{i1} & … & i_{n} : X_{in} \\ \{x_{1,1}\} & … & \{x_{1,n}\} \\ ⋮ & & ⋮ \\ \{x_{m,1}\} & … & \{x_{m,n}\} \end{matrix}

Thus T ∈ CompR (X).

6.4.6 Definition

A relation R ∈ Prel (X) is compact, iff there is a

S = ∈ Fin (Fin (Sing (X)))

*** CONTINUE HERE ***

*** UPDATE THIS ***

6.4.7 Lemma

Let X = [X_{i}|i ∈ I] be a proper schema. Then

( ; 𝅝 ; ) ElmR (X) = { ⊙R R ⊆ LitR (X) , R is (pairwise) distinct }

( ; 𝅝 ; ) CartR (X) = { ⊙R R ⊆ SingR (X) , R is (pairwise) distinct }

( ; 𝅝 ; ) CartR (X) = {∏R | R ⊆ SingR (X)}

*** update this ***

If R = [Y, Γ] is a relation with schema Y = [Y_{j}|j ∈ J], then

R = ∐_{ξ∈Γ} ∏_{j∈J} \begin{matrix}j : Y_{j} \\ ξ_{j} \end{matrix}

A relation R is a table iff there are m, n ∈ ℕ and m · m literal relations S_{i,j} with i ∈ {1, …, m} and j ∈ {1, …, n}

*** update this ***

Every table is a finite disjunction of finite conjunctions of literals.

6.4.8 Proof of 6.4.7

*** CONTINUE HERE ***

6.5 Cartesian and compact relations

6.5.1 Definition

For every schema X = [X_{i}|i ∈ I] we define

CartR (X) := \{ \frac{S_{1} ⊓ … ⊓ S_{n}}{S_{1}, …, S_{n} ∈ SingR (X)} \}

the cartesian relation class of X

CompR (X) := \{ \frac{C_{1} ⊔ … ⊔ C_{n}}{C_{1}, …, C_{n} ∈ CartR (X)} \}

the compact relation class of X

*** REST IS OBSOLETE ***

6.5.2 Repetition

Recall Thalg 14.1.1 and Thalg 14.3.1 , that ( ; 𝅝 ; ) for two schemas X = [X_{i}|i ∈ I] and Y = [Y_{i}|i ∈ I] with the

same domain I holds:

Y ⊆ X iff Y_{i} ⊆ X_{i} for all i ∈ I

( ; 𝅝 ; ) for every schema X = [X_{i}|i ∈ I], the inlusion class of X is

Incl (X) := {Y | Y ⊆ X}

6.5.3 Definition

A relation R = [X, Γ] with X = [X_{i}|i ∈ I] is called ( ; 𝅝 ; ) cartesian, if

(a) I is finite, and

(b) Γ = ⊗Y for some Y ∈ Incl (X) ( ; 𝅝 ; ) compact, if

(a) I is finite, and

(b) Γ = ⋃{⊗Y | Y ∈ Y} for some finite Y ⊆ Incl (X)

For every schema X = [X_{i}|i ∈ I] we define

CartR (X) := {R ∈ Prel (X) | R is cartesian }

the cartesian relation class of X

CompR (X) := {R ∈ Prel (X) | R is compact } the compact relation class of X

6.6 Singular decompositions

6.6.1 Repetition

Recall Thalg 17.2.11 , that for each given relation R = [X, Γ] with schema X = [X_{i}|i ∈ I] and for each i ∈ I,

rng_{i}(R) = {ξ_{i} | ξ ∈ Γ}

is the i–th range of R.

6.6.2 Lemma

Let X be a proper schema and R a relation with a finite attribute class J = {j_{1}, …, j_{n}} := @ (R). If we put

R_{j} := [ \begin{matrix}[ j ↦ X_{j} ] \\ ⊗[ j ↦ rng_{j}(R) ] \end{matrix} ] for each j ∈ J

then

R ∈ CartR (X) iff R = R_{j1} ⊙ … ⊙ R_{jn}

6.6.3 Proof of 6.6.2

Let R = [Y, Γ]. Then

R ∈ CartR (X)

⇔ R ∈ Prel (X) and R is cartesian

due to definition 6.5.3 of CartR (X)

⇔ R = [ \begin{matrix}pr & (X, J) \\ Γ \end{matrix} ] and R is cartesian

due to definition Thalg 17.8.1 of Prel (X)

⇔ R = [ \begin{matrix}[X_{j}|j ∈ J] \\ Γ \end{matrix} ] and R is cartesian

due to definition Thalg 10.2.1 of pr (X, J)

⇔ R = [ \begin{matrix}[X_{j}|j ∈ J] \\ ⊗[Z_{j}|j ∈ J] \end{matrix} ] for some [Z_{j}|j ∈ J] ⊆ [X_{j}|j ∈ J]

due to definition 6.5.3

⇔ R = [ \begin{matrix}[X_{j}|j ∈ J] \\ ⊙_{j∈J} ⊗ [ j ↦ Z_{j} ] \end{matrix} ] for some [Z_{j}|j ∈ J] ⊆ [X_{j}|j ∈ J]

due to Thalg 16.6.5(2)

⇔ R = ⊙_{j∈J}[ \begin{matrix}[ j ↦ X_{j} ] \\ ⊗[ j ↦ Z_{j} ] \end{matrix} ] for some [Z_{j}|j ∈ J] ⊆ [X_{j}|j ∈ J]

due to definition Thalg 19.6.2 of ⊙

⇔ R = ⊙_{j∈J}[ \begin{matrix}[ j ↦ X_{j} ] \\ ⊗[ j ↦ rng_{j}(R) ] \end{matrix} ]

due to definition Thalg 17.2.11 , i.e. 6.6.1

⇔ R = R_{j1} ⊙ … ⊙ R_{jn}

according to the definition of J and Rj

6.6.4 Lemma

If X is a proper schema, then

(1) CartR (X) = \{ \begin{matrix}S_{1} ⊙ … ⊙ S_{n} \\ S_{1}, …, S_{n} ∈ SingR (X) \\ with S_{1} ≬ … ≬ S_{n} \end{matrix} \}

(2) CartR (X) = \{ \frac{S_{1} ⊓ … ⊓ S_{n}}{S_{1}, …, S_{n} ∈ SingR (X)} \}

(3) CompR (X) = \{ \frac{R_{1} ⊔ … ⊔ R_{n}}{R_{1}, …, R_{n} ∈ CartR (X)} \}

6.6.5 Proof of 6.6.4

Let X = [X_{i}|i ∈ I] be the given proper schema.

(1) On one hand, suppose that R ∈ CartR (X). We put J := @ (R) and

R_{j} := [ \begin{matrix}[ j ↦ X_{j} ] \\ ⊗[ j ↦ rng_{j}(R) ] \end{matrix} ] for each j ∈ J

Each R_{j} is a singular relation R_{j} ∈ SingR (X). And due to 6.6.2 and Thalg 20.4.1 we have

R = ⊙_{j∈J} R_{j} = ∏_{j∈J}R_{j}

*** CONTINUE HERE ****** CONTINUE HERE ***

(2) *** CONTINUE HERE ***

6.6.6 Definition

Let X be a proper schema and R ∈ Prel (X). A singular decomposition of R (on X) is a

S ∈ Fin (Fin (SingR (X)))

in other words,

S = {{S_{1,1}, …, S_{1,n1} } , …, {S_{m,1}, …, S_{m,nm} }} with the S_{i,j} being singular relations on X, such that

R = ((S_{1,1} ⊓ … ⊓ S_{1,n1} ) ⊔ … ⊔ (S_{m,1} ⊓ … ⊓ S_{m,nm}))

6.6.7 Lemma

For every proper schema X and each R ∈ Prel (X) the following statements are equivalent:

(1) R has a singular decomposition (on X)

(2) R is compact

6.6.8 Proof of 6.6.7

*** follows from 6.6.4 ***

6.7 The theory algebra of compact relations

*** cartesian relations are ⊓–closed, but not ⊔, ¬ ***

6.7.1 Lemma Let X be a proper schema. Then

( ; 𝅝 ; ) ¬R ∈ CompR (X)

( ; 𝅝 ; ) R ⊓ S ∈ CompR (X)

( ; 𝅝 ; ) R ⊔ S ∈ CompR (X)

for all R, S ∈ CompR (X).

6.7.2 Proof of 6.7.1

*** give a constructive proof and separate the methods in an own lemma ***

6.7.3 Definition

For every proper schema X we define ℭ𝔬𝔪𝔭ℜ (X) := ⟨CompR (X) , ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂⟩

the (theory–algebraic) compact relation algebra

*** sofar, we used the fact, that each compact relation R has a “singular decompositon” at all; next we give some precise ones ***

6.7.4 Lemma

Let

S_{1,1}, …, S_{1,n1} , …, S_{m,1}, …, S_{m,nm} ∈ Sing (X)

We put

R_{l} := S_{l,1} ⊓ … ⊓ S_{l,nl} for each l ∈ {1, …, m}

and

T := R_{1} ⊔ … ⊔ R_{m}

Then

( ; 𝅝 ; ) ¬T = ∗ ∗ ∗CONTINUEHERE ∗ ∗∗

( ; 𝅝 ; ) *** CONTINUE HERE ***

6.7.5 Lemma

For every schema X we holds

( ; 𝅝 ; ) CartR (X) = \{ \begin{matrix}R_{1} ⊙ … ⊙ R_{n} \\ R_{1}, …, R_{n} ∈ SingR (X) \\ with R_{1} ≬ … ≬ R_{n} \end{matrix} \}

( ; 𝅝 ; ) CompR (X) = \{ \begin{matrix}R_{1} ⊓ … ⊓ R_{n}, \\ R_{1} ⊔ … ⊔ R_{n}, \\ ¬R \\ R, R_{1}, …, R_{n} ∈ Cart (X) \end{matrix} \}

In other words,

CompR (X) = bool (SingR (X))

6.7.6 Proof of 46.2.11

*** CONTINUE HERE ***

6.7.7 Lemma

The compact relations are the boolean closure of the singular relations.

6.7.8 Lemma

( ; 𝅝 ; ) Each singular relation is cartesian. ( ; 𝅝 ; ) Each singular relation is compact. ( ; 𝅝 ; ) Each cartesian relation is compact. ( ; 𝅝 ; ) Each table is compact. ( ; 𝅝 ; ) A relation R ∈ Rel (X) is compact iff there is a completely

finite block relation S ∈ BR (X) with conf (S) = R. ( ; 𝅝 ; ) If X is completely finite, then CompR (X) = Prel (X).

6.7.9 Lemma

A relation R is compact iff its natural block relation nBR (R) is completely finite. A relation R is compact, iff it has a suitable block schema partition which is completely finite.

6.7.10 Lemma

R is compact iff there is a compact block schema partition A such that

conf (□R|A) = R = conf (♢R|A)

6.8 Appendix: Finite–cofinite tables

For every class C ( ; 𝅝 ; ) Fin (C) is the class of finite subclasses of C ( ; 𝅝 ; ) Fcof (C) is the class of finite or cofinite subclasses of C

For every schema X = [X_{i}|i ∈ I]

( ; 𝅝 ; ) □ ∗_{fin}X := { [Y_{j}|j ∈ J] J ∈ Fin (I) , Y_{j} ∈ Fin (X_{j}) for each j ∈ J } is the

finite domains subschema class of X

( ; 𝅝 ; ) □ ∗_{fcf} X := { [Y_{j}|j ∈ J] J ∈ Fin (I) , Y_{j} ∈ Fcf (X_{j}) for each j ∈ J } is the

finite–cofinite domains subschema class of X ( ; 𝅝 ; ) ⊠_{fcf} X := □ ∗_{fcf} X ∩ ⊠X which is ∅ in case I is infinite

6.8.1 Definition

Let X = [X_{i}|i ∈ I] be a schema. We define

FcfR (X) :=

\{ [ \begin{matrix}Y \\ ⊗Z_{1} ∪ … ∪ ⊗Z_{k} \end{matrix} ] \begin{matrix}Y ≤ X is finite , \\ Z_{1}, …, Z_{k} ∈ ⊠_{fcf} Y \end{matrix} \}

the finite–cofinite table class of X

6.8.2 Lemma

FcfR (X) ⊆ CompR (X)

6.8.3 Lemma

The both boolean and theory algebraic closure of LitR (X) is FcofR (X).

6.9 Cotables

6.9.1 Definition A cotable T is given by

i_{1} : D_{1} … i_{n} : D_{n}
A_{1,1}  … A_{1,n}
⋮  ⋮
A_{m,1} … A_{m,n}

where ( ; 𝅝 ; ) n ∈ ℕ is the arity of T ( ; 𝅝 ; ) @ (T) := {i_{1}, …, i_{n}} is the attribute (or index) class of T ( ; 𝅝 ; ) D_{j} is a class, the so–called i_{j}–domain of T for each j ∈

{1, …, n}

( ; 𝅝 ; ) x (T) := [\begin{matrix}i_{1} & ↦ & D_{1} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & D_{n} \end{matrix} ] is the schema of T

( ; 𝅝 ; ) dom (T) := ⊗x (T) is the (overall) domain of T ( ; 𝅝 ; ) m ∈ ℕ is the row number of T

( ; 𝅝 ; ) A_{k,j} ⊆ D_{j} for each k ∈ {1, …, m} and j ∈ {1, …, n}

( ; 𝅝 ; ) x (T, k) := [\begin{matrix}i_{1} & ↦ & A_{k,1} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & A_{k,n} \end{matrix} ] is the k–th row schema for each

k ∈ {1, …, m}. ( ; 𝅝 ; ) gr (T) := ⊗x (T, k) ∪ … ∪ ⊗x (T, k) is the graph of T

( ; 𝅝 ; ) rel (T) := [x (T) , gr (T)] is the relation of T 6.9.2 Definition Conventions

( ; 𝅝 ; ) When we write

i_{1} : D_{1} … i_{n} : D_{n}
A_{1,1}  … A_{1,n}
⋮  ⋮
A_{m,1} … A_{m,n}

we always assume, that it is a well–defined cotable, i.e. that A_{j,k} ⊆ D_{j} etc.

( ; 𝅝 ; ) In the context of a given schema X we also write

i_{1}  … i_{n}
A_{1,1} … A_{1,n}
⋮  ⋮
A_{m,1} … A_{m,n}

instead of

i_{1} : X_{i1} … i_{n} : X_{in}
A_{1,1}  … A_{1,n}
⋮  ⋮
A_{m,1}  … A_{m,n}

( ; 𝅝 ; ) If A_{ij} = D_{j} then we leave the cell empty.

6.9.3 Remark

*** CONTINUE HERE ***We leave the precise implementation open.

6.9.4 Definition

*** how a cotable turns into a relation; which is then called a compact relation ***

6.9.5 Definition A cotable is called ( ; 𝅝 ; ) singular, if n = 1 ( ; 𝅝 ; ) cartesian, if m = 1

PredLogInTheoAlgRel 31

Figure 2:

neg := [ \begin{matrix}SCT (X) ⟶ SCT (X) \\ \begin{matrix}i : D \\ C \end{matrix} ↦ \begin{matrix}i : D \\ D \ C \end{matrix} \end{matrix} ] the negator

conj := [ \begin{matrix}SCT (X) × SCT (X) ⟶ CCT (X) \\ ⟨ \begin{matrix}i : D \\ C \end{matrix} , \begin{matrix}i′ : D′ \\ C′ \end{matrix} ⟩ ↦ \{ \begin{matrix}\begin{matrix}i : D \\ C ∩ C′ \end{matrix} & if i = i′ \\ \begin{matrix}i : D & i′ : D′ \\ C & C′ \end{matrix} & if i ≠ i′ \end{matrix} \end{matrix} ] the (binary) conjunctor

disj := [ \begin{matrix}SCT (X) × SCT (X) ⟶ CT (X) \\ ⟨ \begin{matrix}i : D \\ C \end{matrix} , \begin{matrix}i′ : D′ \\ C′ \end{matrix} ⟩ ↦ \{ \begin{matrix}\begin{matrix}i : D \\ C ∪ C′ \end{matrix} & if i = i′ \\ \begin{matrix}i : D & i′ : D′ \\ D & C′ \\ C & D′ \end{matrix} & if i ≠ i′ \end{matrix} \end{matrix} ] the (binary) disjunctor

6.9.6 Definition Given a schema X = [X_{i}|i ∈ I]. We define

CT (X) := \{ \begin{matrix}i1 : Xi1 & … & in : Xin \\ A1,1 & … & A1,n \\ ⋮ & & ⋮ \\ Am,1 & … & Am,n \end{matrix} \begin{matrix}n, m ∈ ℕ and \\ i_{1}, …, i_{n} ∈ I \end{matrix} \}

the cotable class of X

CCT (X) := \{ \begin{matrix}i1 : Xi1 & … & in : Xin \\ A1 & … & An \end{matrix} ; n ∈ ℕ and ; i_{1}, …, i_{n} ∈ I \}

the cartesian cotable class of X

SCT (X) := \{ \begin{matrix}i : X_{i} \\ A \end{matrix} i ∈ I \}

the singular cotable class of X

6.10 The theory algebra of compact relations; a constructive summary of the operations

6.10.1 Lemma boolean operations on singular relations Let X be a schema and R, S ∈ Prel (X) be two singular relations, say

R = \begin{matrix}i : D \\ C \end{matrix}  and  S = \begin{matrix}j : B \\ A \end{matrix}

(1) The negation ¬R given by

¬ \begin{matrix}i : D \\ C \end{matrix} = \begin{matrix}i : D \\ D \ C \end{matrix}

(2) The conjunction of R ⊓ S is given by

\begin{matrix}i : D \\ C \end{matrix} ⊓ \begin{matrix}j : B \\ A \end{matrix} = \{ \begin{matrix}\begin{matrix}i : D \\ C ∩ A \end{matrix} & if i = j \\ \begin{matrix}i : D & j : B \\ C & A \end{matrix} & if i ≠ j \end{matrix}

(3) The disjunction R ⊔ S is given by

\begin{matrix}i : D \\ C \end{matrix} ⊔ \begin{matrix}j : B \\ A \end{matrix} = \{ \begin{matrix}\begin{matrix}i : D \\ C ∪ A \end{matrix} & if i = j \\ \begin{matrix}i : D & j : B \\ C & B \\ D & A \end{matrix} & if i ≠ j \end{matrix}

6.10.2 Proof of 6.10.1

*** CONTINUE HERE ***

6.10.3 Lemma operations on compact cartesian relations

*** refer to figure 3 ***

6.10.4 Proof of 6.10.3

*** CONTINUE HERE ***

6.10.5 Lemma operations on compact relations

*** refer to figure 4 ***

6.10.6 Proof of 6.10.5

*** CONTINUE HERE ***

Figure 3: Theory–algebraic operations on cartesian compact relations

\underline{Given}

( ; 𝅝 ; ) pairwise different identifiers i_{1}, …, i_{n}, i_{n+1}, j_{1}, …, j_{m}, k_{1}, …, k_{l} with n, m, l ∈ ℕ

( ; 𝅝 ; ) classes X_{1}, …, X_{n}, X′_{1}, …, X′_{m}, X′′_{1}, …, X′′_{l}

( ; 𝅝 ; ) subclasses *** CONTINUE HERE ***

Negation of a cartesian compact relation

¬ \begin{matrix}i_{1} : X_{1} & i_{2} : X_{2} & i_{3} : X_{3} & … & i_{n} : X_{n} \\ Y_{1} & Y_{2} & Y_{3} & … & Y_{n} \end{matrix} = \begin{matrix}i_{1} : X_{1} & i_{2} : X_{2} & i_{3} : X_{3} & … & i_{n} : X_{n} \\ X_{1} \ Y_{1} & X_{2} & X_{3} & … & X_{n} \\ X_{1} & X_{2} \ Y_{2} & X_{3} & … & X_{n} \\ X_{1} & X_{2} & X_{3} \ Y_{3} & … & X_{n} \\ ⋮ & ⋮ & ⋮ & & ⋮ \\ X_{1} & X_{2} & X_{3} & … & X_{n} \ Y_{n} \end{matrix}

Conjunction of two cartesian compact relations

\begin{matrix}\begin{matrix}i_{1} : X_{1} & … & i_{n} : X_{n} & j_{1} : X′_{1} & … & j_{m} : X′_{m} \\ Y_{1} & … & Y_{n} & Y′_{1} & … & Y′_{m} \end{matrix} & ⊓ & \begin{matrix}i_{1} : X_{1} & … & i_{n} : X_{n} & k_{1} : X′′_{1} & … & k_{l} : X′′_{l} \\ Z_{1} & … & Z_{n} & Z′_{1} & … & Z′_{l} \end{matrix} \\ = & \begin{matrix}i_{1} : X_{1} & … & i_{n} : X_{n} & j_{1} : X′_{1} & … & j_{m} : X′_{m} & k_{1} : X′′_{1} & … & k_{l} : X′′_{l} \\ Y_{1} ∩ Z_{1} & … & Y_{n} ∩ Z_{n} & Y′_{1} & … & Y′_{m} & Z′_{1} & … & Z′_{l} \end{matrix} \end{matrix}

Disjunction of two cartesian compact relations

\begin{matrix}\begin{matrix}i_{1} : X_{1} & … & i_{n} : X_{n} & j_{1} : X′_{1} & … & j_{m} : X′_{m} \\ Y_{1} & … & Y_{n} & Y′_{1} & … & Y′_{m} \end{matrix} & ⊔ & \begin{matrix}i_{1} : X_{1} & … & i_{n} : X_{n} & k_{1} : X′′_{1} & … & k_{l} : X′′_{l} \\ Z_{1} & … & Z_{n} & Z′_{1} & … & Z′_{l} \end{matrix} \\ = & \begin{matrix}i_{1} : X_{1} & … & i_{n} : X_{n} & j_{1} : X′_{1} & … & j_{m} : X′_{m} & k_{1} : X′′_{1} & … & k_{l} : X′′_{l} \\ Y_{1} & … & Y_{n} & Y′_{1} & … & Y′_{m} & X′′_{1} & … & X′′_{l} \\ Z_{1} & … & Z_{n} & X′_{1} & … & X′_{m} & Z′_{1} & … & Z′_{l} \end{matrix} \end{matrix}

Singular infimum elimination from a cartesian compact relation

\begin{matrix}i_{1} : X_{1} & … & i_{n} : X_{n} & i_{n+1} : X_{n+1} \\ Y_{1} & … & Y_{n} & Y_{n+1} \end{matrix} ↾ i_{n+1}= \begin{cases}\begin{matrix}i_{1} : X_{1} & … & i_{n} : X_{n} \\ Y_{1} & … & Y_{n} \end{matrix} & if Y_{n+1} = X_{n+1} \\ ⊥_{Z} with Z := [\begin{matrix}i_{1} & ↦ & X_{1} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & X_{n} \end{matrix} ] & if Y_{n+1} ⊂ X_{n+1} \end{cases}

Singular supremum elimination from a cartesian compact relation

\begin{matrix}i_{1} : X_{1} & … & i_{n} : X_{n} & i_{n+1} : X_{n+1} \\ Y_{1} & … & Y_{n} & Y_{n+1} \end{matrix} ⇂ i_{n+1}= \begin{cases}\begin{matrix}i_{1} : X_{1} & … & i_{n} : X_{n} \\ Y_{1} & … & Y_{n} \end{matrix} & if Y_{n+1} ≠ ∅ \\ ⊥_{Z} with Z := [\begin{matrix}i_{1} & ↦ & X_{1} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & X_{n} \end{matrix} ] & if Y_{n+1} = ∅ \end{cases}

PredLogInTheoAlgRel 34

Figure 4: operations on compact relations

Let X = [X_{i}|i ∈ I] be a *** proper? *** schema. Let Y, Z ∈ Proj (X) and R, S ∈ Crel (X) be given by

R = [\begin{matrix}Y \\ ⊗Y_{1} ∪ … ∪ ⊗Y_{m} \end{matrix}] and S = [\begin{matrix}Z \\ ⊗Z_{1} ∪ … ∪ ⊗Z_{k} \end{matrix}]

Then the following statements are true: ( ; 𝅝 ; ) R is a union of compact cartesian relations. More precisely,

[\begin{matrix}Y \\ ⊗Y_{1} ∪ … ∪ ⊗Y_{m} \end{matrix}] = [\begin{matrix}Y \\ ⊗Y_{1} \end{matrix}] ∪ … ∪ [\begin{matrix}Y \\ ⊗Y_{m} \end{matrix}]

( ; 𝅝 ; ) If R ≬ S, then the distinct product of R and S is given by

[\begin{matrix}Y \\ ⊗Y_{1} ∪ … ∪ ⊗Y_{m} \end{matrix}] ⊙ [\begin{matrix}Z \\ ⊗Z_{1} ∪ … ∪ ⊗Z_{k} \end{matrix}] = [ \begin{matrix}& Y ˙∨ Z \\ ∪^{m}_{i=1} & ( ∪^{k}_{j=1} ⊗ (Y_{i} ˙∨ Z_{j})) \end{matrix} ] = [ \begin{matrix}& Y ˙∨ Z \\ ∪^{k}_{j=1} & ( ∪^{m}_{i=1} ⊗ (Y_{i} ˙∨ Z_{j})) \end{matrix} ]

( ; 𝅝 ; ) The expansion of R by Z is given by

[\begin{matrix}Y \\ ⊗Y_{1} ∪ … ∪ ⊗Y_{m} \end{matrix}] ∥ Z = [ \begin{matrix}Y ˙∨ Z′ \\ ⊗(Y_{1} ˙∨ Z′) ∪ … ∪ ⊗(Y_{m} ˙∨ Z′) \end{matrix} ] where Z′ := Z \ Y

( ; 𝅝 ; ) The disjunction of R and S is given by

[\begin{matrix}Y \\ ⊗Y_{1} ∪ … ∪ ⊗Y_{m} \end{matrix}] ⊔ [\begin{matrix}Z \\ ⊗Z_{1} ∪ … ∪ ⊗Z_{k} \end{matrix}] = [ \begin{matrix}Y ˙∨ Z \\ ( ∪^{m}_{i=1} ⊗ (Y_{i} ˙∨ Z′)) ∪ ( ∪^{k}_{j=1} ⊗ (Z_{j} ˙∨ Y′)) \end{matrix} ] where Y′ := Y \ Z and Z′ := Z \ Y

( ; 𝅝 ; ) The conjunction of R and S is given by

[\begin{matrix}Y \\ ⊗Y_{1} ∪ … ∪ ⊗Y_{m} \end{matrix}] ⊓ [\begin{matrix}Z \\ ⊗Z_{1} ∪ … ∪ ⊗Z_{k} \end{matrix}] = ∪^{m}_{i=1} ( ∪^{k}_{j=1} ([\begin{matrix}Y \\ ⊗Y_{i} \end{matrix}] ⊓ [\begin{matrix}Z \\ ⊗Z_{j} \end{matrix}])) = ∪^{k}_{j=1} ( ∪^{n}_{i=1} ([\begin{matrix}Y \\ ⊗Y_{i} \end{matrix}] ⊓ [\begin{matrix}Z \\ ⊗Z_{j} \end{matrix}]))

( ; 𝅝 ; ) The negation of R is given by

¬[\begin{matrix}Y \\ ⊗Y_{1} ∪ … ∪ ⊗Y_{m} \end{matrix}] = ¬[\begin{matrix}Y \\ ⊗Y_{1} \end{matrix}] ∩ … ∩ ¬[\begin{matrix}Y \\ ⊗Y_{m} \end{matrix}]

( ; 𝅝 ; ) For each j ∈ I, the (singular) supremum elimination of j from R is given by

[\begin{matrix}Y \\ ⊗Y_{1} ∪ … ∪ ⊗Y_{m} \end{matrix}]⇂ j = ([\begin{matrix}Y \\ ⊗Y_{1} \end{matrix}]⇂ j) ∪ … ∪ ([\begin{matrix}Y \\ ⊗Y_{m} \end{matrix}]⇂ j)

( ; 𝅝 ; ) For each j ∈ I, the (singular) infimum elimination of j from R is given by

[\begin{matrix}Y \\ ⊗Y_{1} ∪ … ∪ ⊗Y_{m} \end{matrix}]↾ j = ¬((¬R)⇂ j)

PredLogInTheoAlgRel 35

Figure 5:

Given a schema X = [X_{i}|i ∈ I]. We define

emp_{X} := [ \begin{matrix}Fin (I) ⟶ CT (X) \\ \{i_{1}, …, i_{n}\} ↦ i_{1} … i_{n} \end{matrix}  ]  the empty cotable function on X
ful_{X} := [ \begin{matrix}Fin (I) ⟶ CT (X) \\ \{i_{1}, …, i_{n}\} ↦ \begin{matrix}i_{1} & … & i_{n} \\ X_{i1} & … & X_{in} \end{matrix} \end{matrix}  ]  the empty cotable function on X

supelim_{X} := [ \begin{matrix}CT (X) × Fin (I) ⟶ CT (X) \\ ∗ ∗ ∗CONTINUEHERE ∗ ∗∗ \end{matrix} ]

*** CONTINUE HERE ***

X := ^{[ ]}

*** CONTINUE HERE ***

X := ^{[ ]}

*** CONTINUE HERE ***

X := ^{[ ]}

*** CONTINUE HERE ***

X := ^{[ ]}

*** CONTINUE HERE ***

Part IV

Version 2.0: General–algebraic properties of boolean and theory algebras (OPTIONAL OR OBSOLETE)

7 Axiomatic approach to theory algebras

7.1 Element structures for generalized

quasi–boolean algebras

Given a generalized quasi–boolean algebra 𝔔 = ⟨Q, ⊑, ≡, ⊥, ⊓, ⊔, −⟩

An pseudo–element structure for 𝔔 is given by

⟨E, C⟩

where

(a) E is a class of so–called elements

(b) ◯ 1 C◯ 2 : E ↭ Q is the element relation together with a derived function

(c) ∂ ◯ 1 := [ \begin{matrix}Q ⟶ P (E) \\ x ↦ \{e ∈ E | eCx\} \end{matrix} ] the desintegrator

such that the following axioms are satisfied

(1) ∂⊥ = ∅

(2) ∂(x ⊓ y) = ∂x ∩ ∂y

(3) ∂(x ⊔ y) = ∂x ∪ ∂y

(4) ∂(x − y) = ∂x \ ∂y for all x, y ∈ Q.

If ⟨E, C⟩ is an pseudo–element structure for 𝔔, then

⟨E, Q, C, ⊑, ≡, ⊥, ⊓, ⊔, −⟩

is called a pseudo–elementary generalized quasi–boolean algebra.

( ; 𝅝 ; ) {∫ e | e ∈ E} is a partition of Q ( ; 𝅝 ; ) Every generalized quasi–boolean algebra has an element

structure.

If ⟨E, C⟩ is an element structure for 𝔔, then it is called standard, if ∫ e = {e}, for all e ∈ E.

If 𝔄 is a “non–atomic” boolean algebra, the ultrafilters induce an element structure for 𝔄.

If each e ∈ E has a x ∈ Q with ∂x = {e}, then it is called proper. In that case, the following is a well–defined function

∫ ◯ 1 := [ \begin{matrix}E ⟶ Q \\ e ↦ ( \begin{matrix}the x ∈ Q \\ with ∀e′ ∈ E . (e′Cx ↔ e′ = e) \end{matrix} ) \end{matrix} ]

the integrator or singleton function

7.2 The definition of theory algebras

7.2.1 Introduction Minimality principle for the axiomatization: it should be the least system that allows the embedding of first–order predicate logic (without identity).

7.2.2 Introduction

Define a semantic algebra as a quasi–boolean algebra

ℜ = ⟨R, ⊑, ≡, ⊥, ⊤, ⊓, ⊔, ¬⟩

Optionally, it might be complete.

Define a syntactic algebra as a pseudo–elementary generalized boolean algebra

𝔄 = ⟨A, A, C, ≤, ⟨⟩, ∧, ∨, \⟩

Optionally, it might be proper boolean (i.e. with 1), or complete.

Define a theory algebra as ℜ and 𝔄 together with

\begin{matrix}@ : R ⟶ A  ⊥_{◯ 1} : A ⟶ R  ⊤_{◯ 1} : A ⟶ R \\ ◯ 1 ↾ ◯ 2 : R × A ⟶ R  ◯ 1 ⇂ ◯ 2 : R × A ⟶ R \end{matrix}

A theory algebra comprises ( ; 𝅝 ; ) A semantic structure

ℜ = ⟨R, ⊑, ≡, ⊥, ⊤, ⊓, ⊔, ¬⟩

which is a quasi–boolean algebra ( ; 𝅝 ; ) A syntactic structure

𝔄 = ⟨A, A, ∗ ∗ ∗CONTINUEHERE ∗ ∗∗⟩ which is a pseudo–elementary generalized quasi–boolean algebra

Optional:

( ; 𝅝 ; ) big dis– and conjunctor ∐ and ∏

( ; 𝅝 ; ) the identity relation constructor Id_{◯ 1} : A ⟶ R

A value structure for the theory algebra is made of

( ; 𝅝 ; ) ⟨V, ⊆, ∅, 1, ∩, ∪, ∁⟩

which is a boolean algebra ( ; 𝅝 ; ) ◯ 1 :: ◯ 2 : A × V −−→ R the basic constructor ( ; 𝅝 ; ) dom_{◯ 1} : A ⟶ R −−→ V the domain function constructor ( ; 𝅝 ; ) X : A ⟶ V the overall schema function or the overal domain

function ( ; 𝅝 ; ) rng_{◯ 1} : A ⟶ R −−→ V the range function constructor ( ; 𝅝 ; ) rng : R ⟶ V the overall range function such that ( ; 𝅝 ; ) X must be proper in the sense that X(a) ≠ ∅ for all a ∈ A ( ; 𝅝 ; ) a :: W is defined iff W ⊆ X(a) ( ; 𝅝 ; ) In case W ⊆ X(a) then

( ; 𝅝 ; ) a∗ ∗ ∗CONTINUEHERE ∗ ∗∗

*** UPDATE THIS ***

A (two–carrier) theory algebra is made of

( ; 𝅝 ; ) two carrier classes

( ; 𝅗𝅥 ; ) R

( ; 𝅗𝅥 ; ) A

( ; 𝅝 ; ) some sets of essential operators

( ; 𝅗𝅥 ; ) converters

( ; ♩ ; ) @ : R ⟶ A

( ; ♩ ; ) ⊥_{◯ 1} : A ⟶ R

( ; ♩ ; ) ⊤_{◯ 1} : A ⟶ R

( ; 𝅗𝅥 ; ) semantic operators

( ; ♩ ; ) ◯ 1 ⊑ ◯ 2 : R ↭ R

( ; ♩ ; ) ◯ 1 ≡ ◯ 2 : R ↭ R

( ; ♩ ; ) ⊥ : R

( ; ♩ ; ) ⊤ : R

( ; ♩ ; ) ◯ 1 ⊓ ◯ 2 : R × R ⟶ R

( ; ♩ ; ) ◯ 1 ⊔ ◯ 2 : R × R ⟶ R

( ; ♩ ; ) ¬◯ 1 : R ⟶ R

( ; 𝅗𝅥 ; ) syntactic operators

( ; ♩ ; ) ◯ 1 ≤ ◯ 2 : A ↭ A

( ; ♩ ; ) ⟨⟩ : A

( ; ♩ ; ) ◯ 1 ∧ ◯ 2 : A × A ⟶ A

( ; ♩ ; ) ◯ 1 ∨ ◯ 2 : A × A ⟶ A

( ; ♩ ; ) ◯ 1 \ ◯ 2 : A × A ⟶ A

( ; 𝅗𝅥 ; ) syntactic modifiers

( ; ♩ ; ) ◯ 1 ↾ ◯ 2 : R × A ⟶ R

( ; ♩ ; ) ◯ 1 ⇂ ◯ 2 : R × A ⟶ R

( ; 𝅝 ; ) optional operators

( ; 𝅗𝅥 ; ) Id

such that the axioms below are satisfied.

We derive the following operators:

( ; ♩ ; ) ◯ 1 ⊴ ◯ 2 iff @ (◯ 1 ) ≤ @ (◯ 2 )

( ; ♩ ; ) ◯ 1 ≜ ◯ 2 iff @ (◯ 1 ) ≤ @ (◯ 2 )

( ; ♩ ; ) ◯ 1 ∥ ◯ 2 := ◯ 1 ⊓ ⊤_{◯ 2} = ◯ 1 ⊔ ⊥_{◯ 2}

( ; ♩ ; ) ◯ 1 ⇓ ◯ 2 := (◯ 1 ∥ ◯ 2 )⇂ (◯ 2 \ @ (◯ 1 ))

( ; ♩ ; ) ◯ 1 ⇑ ◯ 2 := (◯ 1 ∥ ◯ 2 )↾ (◯ 2 \ @ (◯ 1 ))

and a partial function: ( ; ♩ ; ) ◯ 1 ⇕ ◯ 2 := (the R ∈ R with R ≡ ◯ 1 and @ (R) = ◯ 2 )

We define

( ; 𝅝 ; ) [ Y ] := {R ∈ R | @ (R) = Y } for each Y ∈ A

( ; 𝅝 ; ) [ R] := {S ∈ R | S ≡ R} for each R ∈ R

The axioms are: ( ; 𝅝 ; ) conversion / canonicity axioms

( ; ♩ ; ) R = S iff (R ≡ S and R ≜ S) for R, S ∈ R

( ; ♩ ; ) ⊥_{Y} ≡ ⊥ and @ (⊥_{Y} ) = Y for all Y ∈ A

( ; ♩ ; ) ⊤_{Y} ≡ ⊤ and @ (⊤_{Y} ) = Y for all Y ∈ A

( ; 𝅝 ; ) structure axioms

( ; ♩ ; ) ⟨R, ⊑, ≡, ⊥, ⊤, ⊓, ⊔, ¬⟩

is a quasi–boolean lattice ( ; ♪ ; ) least elements are the ⊥_{Y} for Y ∈ A ( ; ♪ ; ) greatest elements are the ⊤_{Y} for Y ∈ A

( ; ♩ ; ) ⟨A, ≤, ⟨⟩, ∧, ∨, \⟩

is a generalized boolean lattice

( ; ♩ ; ) ⟨[ Y ], ⊑, ⊥_{Y} , ⊤_{Y} , ⊓, ⊔, ¬⟩

is a boolean lattice, for each Y ∈ A

( ; ♩ ; ) ⟨R, ⊴⟩

is a generalized quasi–boolean lattice ( ; ♪ ; ) least elements are ⊥ and ⊤

( ; ♩ ; ) ⟨[ R], ⊴⟩

is a generalized boolean lattice, for each R ∈ R ( ; ♪ ; ) the standard reduction of R is the unique least element

( ; 𝅝 ; ) optional structure axioms

( ; ♩ ; ) ⟨R, ⊑, ≡, ⊥, ⊤, ⊓, ⊔, ∏, ∐, ¬⟩

is a complete quasi–boolean lattice

( ; ♩ ; ) ⟨A, ≤, ⟨⟩, ∧, ∨, \⟩

is a boolean lattice; complete boolean lattice

( ; ♩ ; ) ⟨R, ⊴⟩

is a boolean lattice; complete boolean lattice ( ; 𝅝 ; ) embedding axioms

( ; 𝅗𝅥 ; ) R↾ Y the g.l.b. of R in ⟨[ Y ], ⊑⟩ ( ; 𝅗𝅥 ; ) R⇂ Y the l.u.b. of R in ⟨[ Y ], ⊑⟩ ( ; 𝅗𝅥 ; ) ↾ is ⊓–homomorph in the sense that

(R ⊓ S)↾ Y = R↾ Y ⊓ S ↾ Y ( ; 𝅗𝅥 ; ) ⇂ is ⊔–homomorph in the sense that

(R ⊔ S)↾ Y = R↾ Y ⊓ S ↾ Y

( ; 𝅗𝅥 ; ) @R ≤ Z implies

( ; ♩ ; ) R⇂ Z ≡ R

( ; ♩ ; ) R↾ Z ≡ R

7.2.3 Example Let X = [X_{i}|i ∈ I] be a proper schema. ( ; 𝅝 ; ) A := Proj (X) and R := Prel (X) makes a theory algebra ( ; 𝅝 ; ) A := P (I) and R := Prel (X) makes a theory algebra ( ; 𝅝 ; ) A := {X, ⟨⟩} and R := Rel (X)∪{⊥, ⊤} makes a theory algebra

7.3 Free theory algebras

Given ( ; 𝅝 ; ) R a semantic class of R–symbols ( ; 𝅝 ; ) I a syntactic class of A–symbols

Thex (R, I) the theory expression class on R and I is defined to comprise the following expressions:

R  (atomic expression)
⊥  (bottom expression)
⊤  (top expression)
¬ξ  (negation)
[ ξ_{1} ∧ … ∧ ξ_{n} ]  (conjunction)
[ ξ_{1} ∨ … ∨ ξ_{n} ]  (disjunction)
ξ ↾ x  (infimum elimination)
ξ ⇂ x  (supremum elimination)

for all ξ_{1}, …, ξ_{n} ∈ Thex (R, I) with n ∈ ℕ and all x ∈ I.

*** re–define the sub– and equivalence ***

7.4 Generations and closures in

boolean algebras

Let 𝔄 = ⟨A, ⊥, ⊤, ⊓, ⊔, ¬⟩ be a boolean algebra.

(1) For every S ⊆ A we put

im_{{⊥}}(S) := {⊥}
im_{{⊤}}(S) := {⊤}
im_{{⊓}}(S) := {x ⊓ y | x, y ∈ S}
im_{{⊔}}(S) := {x ⊔ y | x, y ∈ S}
im_{{¬}}(S) := {¬x | x ∈ S}

and if {o_{1}, …, o_{n}} ⊆ {⊥, ⊤, ⊓, ⊔, ¬} then

im_{{o1,...,on}}(S) := im_{{o1}}(S) ∪ … ∪ im_{{on}}(S)

is the {o_{1}, …, o_{n}}–image class of S

(2) If k ∈ ℕ, S ⊆ A and Ω ⊆ {⊥, ⊤, ⊓, ⊔, ¬} then

gen_{Ω}^{k}(S) := \begin{cases}S & if k = 0 \\ gen_{Ω}^{k−1} (S ∪ im_{Ω}(S)) & if k > 0 \end{cases}

is the k–step Ω–generation of S

gen_{Ω}(S) := ⋃_{k∈ℕ}gen_{Ω}^{k}(S)

is the Ω–generation of S

(3) If Ω ⊆ {⊥, ⊤, ⊓, ⊔, ¬} then

Clos_{Ω}(𝔄) := {S ⊆ A | im_{Ω}(A) ⊆ S}

is the Ω–closed subcarrier class of 𝔄

Clos(𝔄) := {S ⊆ A | im_{{⊥,⊤,⊓,⊔,¬}}(S) ⊆ S} is the closed subcarrier class of 𝔄

(4) If S ⊆ A and Ω ⊆ {⊥, ⊤, ⊓, ⊔, ¬} then

clos_{Ω}(S) := ⋂{S ⊆ C | C ∈ Clos_{Ω}(𝔄)}

is the Ω–closure of S

clos(S) := ⋂{S ⊆ C | C ∈ Clos(𝔄)} is the closure of S

7.4.1 Example

*** CONTINUE HERE ***

( ; 𝅝 ; ) gen_{{¬,∧,∨}}(S) = gen_{{¬,∧}}(S) = …

( ; 𝅝 ; ) gen_{Ω}(S) = clos_{Ω}(S) ( ; 𝅝 ; ) clos (S) = clos_{{⊔}}(clos_{{⊓}}(clos_{{¬}}(S))) ( ; 𝅝 ; ) clos (S) = clos_{{⊓}}(clos_{{⊔}}(clos_{{¬}}(S))) If S ≠ ∅ then

( ; 𝅝 ; ) ⊥ ∈ gen_{¬,∧}(S)

( ; 𝅝 ; ) ⊤ ∈ gen_{¬,∨}(S)

( ; 𝅝 ; ) gen_{{¬,∧,∨,⊥,⊤}}(S) = gen_{{¬,∧}}(S) = …

7.5 Disvalent disjunctions and quasi– partitions

7.5.1 Definition

Let X be a schema, R, S ∈ Prel (X) and R ⊆ Prel (X). We say that ( ; 𝅝 ; ) R and S are disvalent, if

R ⊓ S ≡ ⊥. ( ; 𝅝 ; ) R and S are proper disvalent, if

R ⊓ S ≡ ⊥ and R ≢ ⊥ and S ≢ ⊥. ( ; 𝅝 ; ) R is (pairwise) disvalent, if

every two different R, S ∈ R are disvalent. ( ; 𝅝 ; ) R is proper disvalent, if

every R is (pairwise) disvalent and no member of R is empty. ( ; 𝅝 ; ) R is a quasi–partition of S, if

R is (pairwise) disvalent and ∐R ≡ S. ( ; 𝅝 ; ) R is a proper (quasi–)partition of S, if

R is proper disvalent and ∐R ≡ S. ( ; 𝅝 ; ) R is a quasi–partition, if

R is a quasi–partition of ⊤. ( ; 𝅝 ; ) R is a proper partition, if

R is a proper partition of ⊤.

7.5.2 Definition

For all (pairwise) disvalent R_{1}, …, R_{n} ∈ Prel (X) we define

\begin{aligned}R_{1} ⊎ … ⊎ R_{n} & := & R_{1} ⊔ … ⊔ R_{n} \\ ⨄^{n} ; i=1R_{i} & := & ⋃^{n} ; i=1R_{i} \end{aligned}

1

7.5.3 Lemma

Let X = [X_{i}|i ∈ I] be a proper schema. For all R, R_{1}, …, R_{n} ∈ Prel (X) and each i ∈ I holds:

(1) If 1 ≤ i ≤ j ≤ n then R_{1} ⊎ … ⊎ R_{n} = R_{1} ⊎ … ⊎ R_{i} ⊎ (R_{i+1} ⊎ … ⊎ Rj) ⊎ R_{j+1} ⊎ … ⊎ R_{n}

(associativity)

(2) If π : {1, …, n} ⟶ {1, …, n} is a bijection then R_{1} ⊎ … ⊎

R_{n} = R_{π(1)} ⊎ … ⊎ R_{π(n)} (commutativity)

(3) ⊤ ≡ R ⊎ ¬R (complementation)

(4) R ⊓ (R_{1} ⊎ … ⊎ R_{n}) = (R ⊓ R_{1}) ⊎ … ⊎ (R ⊓ R_{n})

(⊓ distributes over ⊎)

(5) R⊎R ≡ ⊥, because if R⊎R is defined at all, i.e. if R⊓R ≡ ⊥, then R ≡ ⊥

(6) (R ⊎ S) − S ≡ R

( ; 𝅝 ; ) (R_{1} ⊎ … ⊎ R_{n})⇂ i = (R_{1} ⇂ i) ⊎ … ⊎ (R_{n} ⇂ i)

(⇂ distributes over ⊎) *** WRONG! ***

7.5.4 Proof of 7.5.3

*** CONTINUE HERE ***

If R and S are two quasi–partitions of T, then {R ⊓ S | R ∈ R, S ∈ S} is a quasi–partition of T, too.

1*** For the next lemma check the phrase “◯ 1 distributes over ◯ 2 ” and if it is used correctly. ***

8 Generations and closures

8.0.5 Repetition

Let X = [X_{i}|i ∈ I] be a proper schema. ( ; 𝅝 ; ) Recall Thalg 6.2.2 , that the power algebra of I was

𝔓 (I) = ⟨P (I) , ⊆, ∅, 1, ∩, ∪, ⋂, ⋃, ∁⟩

( ; 𝅝 ; ) Recall Thalg 19.5.9 that the equi–schematic relation algebra over X is

ℜ𝔢𝔩 (X) = ⟨Rel (X) , ⊆, ⊥_{X}, ⊤_{X}, ∩, ∪, ⋂, ⋃, ¬⟩

( ; 𝅝 ; ) Recall Thalg 23.1.1 , that the semantic algebra of X was

𝔓𝔯𝔢𝔩^{⊑}(X) = ⟨Prel (X) , ⊑, ≡, ⊥, ⊤, ⊓, ⊔, ∏, ∐, ¬⟩

( ; 𝅝 ; ) Recall Thalg 23.4.3 , that the 2–carrier syntactic structure of X was

𝔓𝔯𝔢𝔩_{2}^{⊴} = ⟨Prel (X) , P (I) , ⊴, ≜, ¨⊥, ¨⊤, @, ¨∥, ¨⇓, ¨⇑, ⇂, ↾⟩

( ; 𝅝 ; ) And the 2–structure syntactic structure of X was

𝔓𝔯𝔢𝔩_{2}^{⊴} = 𝔓𝔯𝔢𝔩_{2}^{⊴} † 𝔓 (I)

( ; 𝅝 ; ) Finally Thalg 23.6.2 , the two–sort projection relation structure of X was

𝔓𝔯𝔢𝔩_{2}(X) = 𝔓𝔯𝔢𝔩^{⊑} † 𝔓𝔯𝔢𝔩_{2}^{⊴}

*** CONTINUE HERE ***

We choose the 2–sort version as the default projection relation structure, i.e. we put

𝔓𝔯𝔢𝔩X := 𝔓𝔯𝔢𝔩_{2}(X)

*** CONTINUE HERE ***

add the identity relation Id : P (I) ⟶ Prel (X)

*** CONTINUE HERE ***

add the predicate–logical theory algebra of relations

𝔓𝔏 (X) := ⟨Prel (X) , I, ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂, Id⟩

where ↾, ⇂: Prel (X) × I ⟶ Prel (X).

*** UPDATE: MAKE ALL THE DEFINI-TIONS SUITABLE FOR PREL(X) ***

8.0.6 Definition

Let X = [X_{i}|i ∈ I] be a proper schema and

\begin{matrix}R ⊆ Prel (X)  J ⊆ I  s ∈ ℕ \\ \{o_{1}, …, o_{n}\} ⊆ \{¬, ⊓, ⊔, ↾, ⇂, Id\} \end{matrix}

We put

Y := ⋁_{R∈R}x (R)  and  K := ⋃_{R∈R}@ (R)

(1) We define a couple of image classes as follows:

im_{{¬}}(R, J) := {¬R | R ∈ R}

im_{\{⊓\}}(R, J) := \{ \frac{R_{1} ⊓ … ⊓ R_{n}}{R_{1}, …, R_{n} ∈ R for n ∈ ℕ} \}

im_{\{⊔\}}(R, J) := \{ \frac{R_{1} ⊔ … ⊔ R_{n}}{R_{1}, …, R_{n} ∈ R for n ∈ ℕ} \}

im_{{↾}}(R, J) := {R↾ j | R ∈ R and j ∈ J}
im_{{⇂}}(R, J) := {R⇂ j | R ∈ R and j ∈ J}
im_{{Id}}(R, J) := {Id_{⟨j,k⟩} | j, k ∈ J}

and more general

\begin{matrix}im_{\{o1,...,on\}}(R, J) \\ := im_{\{o1\}}(R, J) ∪ … ∪ im_{\{on\}}(R, J) \end{matrix}

(2) We define a couple of (s–step) generation classes:

gen_{{o1,...,on}}^{s}(R, J)

:= \begin{cases}R & if s = 0 \\ gen_{\{o1,...,on\}}^{s−1} (im_{\{o1,...,on\}}(R, J), J) & if s > 0 \end{cases}

gen_{{o1,...,on}}(R, J)

:= ⋃_{s∈ℕ}gen_{{o1,...,on}}^{s}(R, J)

gen^{s}(R, J)

:= gen_{{¬,⊓,⊔,↾,⇂,Id}}^{s}(R, J)

gen(R, J)

:= gen_{{¬,⊓,⊔,↾,⇂,Id}}(R, J)

= ⋃_{s∈ℕ}gen^{s}(R, J)

and

gen_{{o1,...,on}}^{s}(R) := gen_{{o1,...,on}}^{s}(R, K)
gen_{{o1,...,on}}(R) := gen_{{o1,...,on}} (R, K)
gen^{s}(R) := gen^{s} (R, K)
gen(R) := gen (R, K)

(3) We define collections of closed classes: Clos_{{o1,...,on}}(X)

:= {R ⊆ Prel (X) | im_{{o1,...,on}}(R, I) ⊆ R}

Clos(X)

:= Clos_{{¬,⊓,⊔,↾,⇂,Id}}(X)

(4) We define closures:

clos_{{o1,...,on}}(R, X)

:= ⋂{C ∈ Clos_{{o1,...,on}}(X) | R ⊆ C}

clos_{{o1,...,on}}(R)

:= clos_{{o1,...,on}} (R, ⋁{x (R) | R ∈ R})

clos(R)

:= clos_{{¬,⊓,⊔,↾,⇂,Id}}(R)

(5) Finally, the closure algebra of R is

𝔠𝔩𝔬𝔰(R) := ⟨K, clos(R), ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂, Id⟩

8.0.7 Lemma

Let X = [X_{i}|i ∈ I] be a proper schema and

\begin{matrix}R ⊆ Prel (X)  J ⊆ I  s ∈ ℕ \\ \{o_{1}, …, o_{n}\} ⊆ \{¬, ⊓, ⊔, ↾, ⇂, Id\} \end{matrix}

(1) For the image classes holds:

( ; 𝅝 ; ) ⊥ ∈ im_{{⊔}}(R, J)

( ; 𝅝 ; ) ⊤ ∈ im_{{⊓}}(R, J)

( ; 𝅝 ; ) R ⊆ im_{{⊓}}(R, J)

( ; 𝅝 ; ) R ⊆ im_{{⊔}}(R, J)

(2) For the generations holds:

( ; 𝅝 ; ) gen_{{⊓,⊔,¬}}(R) = gen_{{⊓,⊔,¬}}^{3}(R)

( ; 𝅝 ; ) gen^{s}(R) ⊆ gen^{s+1}(R)

(3) For the closures holds:

( ; 𝅝 ; ) clos_{{o1,...,on}}(R) ∈ Clos_{{o1,...,on}}(R)

( ; 𝅝 ; ) clos_{{o1,...,on}}(R) = clos_{{o1,...,on}}(R, X)

( ; 𝅝 ; ) clos(R) = gen(R)

clos is a closure operator.

( ; 𝅝 ; ) card (clos_{{⊓,⊔,¬}}(R)) ≤ 2^{2card(R)}

8.0.8 Proof of 8.0.7

( ; 𝅝 ; ) *** CONTINUE HERE ***

9 General–algebraic notions

9.0.9 Repetition

*** “identifier record” ***

9.0.10 Definition

Given two signatures

𝔖 = ⟨Csy, Osy, sig⟩ and 𝔖′ = ⟨Csy′, Osy′, sig′⟩

We say that 𝔖 is a sub–signature of 𝔖′, or that 𝔖 is smaller than 𝔖′, written

𝔖 ≤ 𝔖′

iff the following conditions are satisfied:

(a) Csy ⊆ Csy′

(b) Osy ⊆ Osy′

(c) sig(o) = sig′(o) for all o ∈ Osy

9.0.11 Example

*** CONTINUE HERE ***

9.0.12 Definition

Given two interpretations ℑ an 𝔍.

(1) ℑ is a sub–signature interpretation of 𝔍, or ℑ is (syntactically) smaller than ℑ, written

ℑ ≤ 𝔍

iff the following statements hold:

(a) 𝔰𝔦𝔤𝔫 (ℑ) ≤ 𝔰𝔦𝔤𝔫 (𝔍)

(b) S^{ℑ} = S^{𝔍} for all S ∈ Csy (ℑ)

(c) o^{ℑ} = o^{𝔍} for all o ∈ Osy (ℑ)

(2) ℑ is a sub–carrier interpretation of 𝔍, or ℑ is (semantically) included by ℑ, written

ℑ ⊆ 𝔍

iff the following statements hold:

(a) 𝔰𝔦𝔤𝔫 (ℑ) = 𝔰𝔦𝔤𝔫 (ℑ)

(b) S^{ℑ} ⊆ S^{𝔍} for all S ∈ Csy (ℑ)

(c) For each o ∈ Osy (ℑ)

(i) If o : C is a constant in ℑ then

o^{ℑ} = o^{𝔍}

(ii) If o : D_{1} × … × D_{n} ⟶ C is a function symbol in ℑ then for all ⟨x_{1}, …, x_{n}⟩ ∈ D_{1}^{ℑ} × … × D_{n}^{ℑ}

o^{ℑ} (x_{1}, …, x_{n}) = o^{𝔍} (x_{1}, …, x_{n})

(ii) If o : D_{1} ↭ … ↭ D_{n} is a relation symbol in ℑ then for all ⟨x_{1}, …, x_{n}⟩ ∈ D_{1}^{ℑ} × … × D_{n}^{ℑ}

o^{ℑ} (x_{1}, …, x_{n}) iff o^{𝔍} (x_{1}, …, x_{n})

9.0.13 Definition

Given two structures 𝔄 and 𝔅.

(1) We say that 𝔄 is a reduction of 𝔅 or that 𝔄 is (syntactically) smaller than 𝔅, written

𝔄 ≤ 𝔅

iff there is a symbolization ℑ of 𝔄 and a symbolization 𝔍 of 𝔅 with ℑ ≤ 𝔍.

(2) We say that 𝔄 is a substructure of 𝔅 or that 𝔄 is (semantically) included by 𝔅, written

𝔄 ⊆ 𝔅

iff there is a symbolization ℑ of 𝔄 and a symbolization 𝔍 of 𝔅 with ℑ ⊆ 𝔍.

9.1 Iso–translations

9.1.1 Definition

Let 𝔖 = ⟨Csy, Osy, sig⟩ be a signature and t : S ⟶ S′ a bijection between identifier classes such that S = Csy ⊎ Osy. We say that t is an iso–translator for 𝔖 and we define the iso–translation of 𝔖 by t as the signature

tr (𝔖, t) := ⟨Csy′, Osy′, sig′⟩

where

Csy′ := t[ Csy]

Osy′ := t[ Osy]

sig′ := [ \begin{matrix}Osy′ ⟶ Otex (Csy′) \\ o ↦ \begin{cases}t (C) & if t^{-1}(o) : C \\ t (D_{1}) × … × t (D_{n}) ⟶ t (C) \\ if t^{-1}(o) : D_{1} × … × D_{n} ⟶ C \\ t (D_{1}) ↭ … ↭ t (D_{n}) \\ if t^{-1}(o) : D_{1} ↭ … ↭ D_{n} \end{cases} \end{matrix} ]

We say that two signatures 𝔖 and 𝔖′ are similar, written

𝔖 ≈ 𝔖′

iff there is an iso–translation t of 𝔖 with tr (𝔖, t) = 𝔖′.

9.1.2 Example 9.1.3 Definition

Let ℑ = ⟨𝔖, 𝔄, car, op⟩ be an interpretation and t an iso– translator for 𝔖. We define the iso–translation of ℑ by t as

tr (ℑ, t) := ⟨𝔖′, 𝔄, car′, op′⟩

where

𝔖′ := tr (𝔖, t)

car′ := [ \begin{matrix}Csy (S′) ⟶ Car (𝔄) \\ S ↦ car (t^{-1}(S)) \end{matrix} ]

op′ := [ \begin{matrix}Osy (S′) ⟶ Op (𝔄) \\ o ↦ op (t^{-1}(o)) \end{matrix} ]

Two interpretations ℑ and 𝔍 are called similar, written

ℑ ≈ 𝔍

iff tr (ℑ, t) = 𝔍 for some t.

9.1.4 Lemma

ℑ ≈ 𝔍 implies 𝔰𝔱𝔯𝔲𝔠 (ℑ) = 𝔰𝔱𝔯𝔲𝔠 (𝔍).

9.2 Isomorphisms

9.2.1 Definition

Let ℑ = ⟨𝔖, 𝔄, car, op⟩ be an interpretation with signature 𝔖 = ⟨Csy, Osy, sig⟩. An isomorphism for ℑ is a record 𝔦 = [𝔦S|S ∈ Csy], where 𝔦S is a bijection with dom (𝔦S) = S^{ℑ}, for each S ∈ Csy (ℑ). If 𝔦 is indeed an isomorphism for ℑ, we define the isomorph image of ℑ by 𝔦

im (ℑ, 𝔦) := ⟨𝔖, 𝔄′, car′, op′⟩

where *** CONTINUE HERE ***

*** CONTINUE HERE ***

Two interpretations with the same signature are isomorph iff there is an isomorphism.

9.3 Homomorphisms

9.3.1 Definition

Let ℑ and 𝔍 be two interpretations of the same signature 𝔖, i.e. 𝔖 = 𝔰𝔦𝔤𝔫 (ℑ) = 𝔰𝔦𝔤𝔫 (𝔍). A homomorphism 𝔥 from ℑ into 𝔍 is a record

𝔥 = [ 𝔥S : S^{ℑ} ⟶ S^{𝔍} S ∈ Csy (𝔖) ]

such that for each operator symbol o ∈ Osy (𝔖) holds:

(i) If o : C is a constant, then

𝔥C(o^{ℑ}) = o^{𝔍}

(ii) If o : D_{1} × … × D_{n} ⟶ C is a function symbol, then

𝔥C(o^{ℑ} (x_{1}, …, x_{n})) = o^{𝔍}(𝔥_{D_{1}} (x_{1}), …, 𝔥_{D_{n}} (x_{n}))

for all ⟨x_{1}, …, x_{n}⟩ ∈ D_{1}^{ℑ} × … × D_{n}^{ℑ}

(iii) If o : D_{1} ↭ … ↭ D_{n} is a relation symbol, then

o^{ℑ} (x_{1}, …, x_{n}) implies o^{𝔍}(𝔥_{D_{1}} (x_{1}), …, 𝔥_{D_{n}} (x_{n}))

for all ⟨x_{1}, …, x_{n}⟩ ∈ D_{1}^{ℑ} × … × D_{n}^{ℑ}

The fact that 𝔥 is a homomorphism from ℑ into 𝔍 is also written

𝔥 : ℑ ⟶ 𝔍

9.3.2 Remark

Let 𝔥 : ℑ ⟶ 𝔍 be a homomorphism, where ℑ and 𝔍 are interpretations of a finite signature

𝔖 = ( S_{1}, …, S_{k} ; o_{1} : τ_{1} ; ⋮ ; o_{n} : τ_{n} )

so that the two interpretations are given by

ℑ = [ \begin{matrix}S_{1} & ↦ & S_{1}^{ℑ} \\ ⋮ & & ⋮ \\ S_{k} & ↦ & S_{k}^{ℑ} \\ o_{1} & ↦ & o_{1}^{ℑ} \\ ⋮ & & ⋮ \\ o_{n} & ↦ & o_{n}^{ℑ} \end{matrix} ] and 𝔍 = [ \begin{matrix}S_{1} & ↦ & S_{1}^{𝔍} \\ ⋮ & & ⋮ \\ S_{k} & ↦ & S_{k}^{𝔍} \\ o_{1} & ↦ & o_{1}^{𝔍} \\ ⋮ & & ⋮ \\ o_{n} & ↦ & o_{n}^{𝔍} \end{matrix} ]

The homomorphism is then the finite record

𝔥 = [ \begin{matrix}S1 & ↦ & 𝔥_{S_{1}} : S_{1}^{ℑ} ⟶ S_{1}^{𝔍} \\ ⋮ & & ⋮ \\ Sk & ↦ & 𝔥_{S_{k}} : S_{k}^{ℑ} ⟶ S_{k}^{𝔍} \end{matrix} ]

*** uni-sort case ***

9.3.3 Definition (special homomorphisms)

Let ℑ and 𝔍 be two symbolized structures with the same signature 𝔖. A homomorphism 𝔥 : ℑ ⟶ 𝔍 is said to be

( ; 𝅝 ; ) injective or a monomorphism, if

𝔥S : S^{ℑ} ⟶ S^{𝔍} is injective, for each S ∈ Csy (𝔖)

( ; 𝅝 ; ) surjective or an epimorphism, if

𝔥S : S^{ℑ} ⟶ S^{𝔍} is surjective, for each S ∈ Csy (𝔖)

( ; 𝅝 ; ) bijective or an isomorphism, if

𝔥S : S^{ℑ} ⟶ S^{𝔍} is bijective, for each S ∈ Csy (𝔖)

( ; 𝅝 ; ) an endomorphism, if

S^{ℑ} = S^{𝔍} for each S ∈ Csy (𝔖)

( ; 𝅝 ; ) an automorphism, if

𝔥 is both an endomorphism and an isomorphism

9.3.4 Example

*** CONTINUE HERE ***Given a homomorphism

𝔥 : ℑ ⟶ 𝔍.

9.3.5 Lemma

*** CONTINUE HERE ***

9.3.6 Proof of 9.3.5

*** CONTINUE HERE ***

9.3.7 Definition

Let 𝔥 : ℑ ⟶ 𝔍 be a homomorphism from interpretation ℑ into

𝔍. *** CONTINUE HERE ***

*** CONTINUE HERE ***isomorphy of interpretations ℑ ≅ 𝔍

Two structures 𝔄 and 𝔅 are said to be isomorph, written

𝔄 ≅ 𝔅

iff there are two isomorph symbolizations ℑ for 𝔄 and 𝔍 for 𝔅.

9.4 Congruences

*** congruence relations on an interpretation ***

9.5 Comparison and translations of signatures

9.5.1 Repetition

*** “identifier record” ***

9.5.2 Definition

Given two signatures

𝔖 = ⟨Csy, Osy, sig⟩ and 𝔖′ = ⟨Csy′, Osy′, sig′⟩

We say that 𝔖 is a sub–signature of 𝔖′, or that 𝔖 is smaller than 𝔖′, written

𝔖 ≤ 𝔖′

iff the following conditions are satisfied:

(a) Csy ⊆ Csy′

(b) Osy ⊆ Osy′

(c) sig(o) = sig′(o) for all o ∈ Osy

9.5.3 Example

*** CONTINUE HERE ***

9.5.4 Definition

Let 𝔖 = ⟨Csy, Osy, sig⟩ be a signature and t = [t_{s}|s ∈ S] an identifier record with S = Csy ⊎ Osy.

(1) For every ordinary type expression τ ∈ Otex (Csy) we define

tr (τ, t) := \begin{cases}t (C) & if τ = C \\ t (D_{1}) × … × t (D_{n}) ⟶ t (C) \\ if τ = D_{1} × … × D_{n} ⟶ C \\ t (D_{1}) ↭ … ↭ t (D_{n}) \\ if τ = D_{1} ↭ … ↭ D_{n} \end{cases}

the translation of τ by t.

(2) We put

𝔖′ := ⟨Csy′, Osy′, sig′⟩

where

Csy′ := t[ Csy]  and  Osy′ := t[ Osy]

and sig′ is the function

sig′ : Osy′ ⟶ Otex (Csy′)

satisfying

sig′(t(o)) = tr (sig (o) , t) for all o ∈ Osy

If 𝔖′ is a well–defined signature, we call t is a (signature) translator for 𝔖 and we define

tr (𝔖, t) := 𝔖′ the translation of 𝔖 by t.

9.5.5 Lemma

Let 𝔖 = ⟨Csy, Osy, sig⟩ be a signature and t = [t_{s}|s ∈ S] an identifier record with S = Csy ⊎ Osy. Then t is a translator for 𝔖 iff the following conditions are satisfied:

(1) t[ Csy] ∩ t[ Osy] = ∅

(2) t (o_{1}) = t (o_{2}) implies tr (sig (o_{1}) , t) = tr (sig (o_{2}) , t), for all o_{1}, o_{2} ∈ Osy.

9.5.6 Proof of 9.5.5

*** CONTINUE HERE ***

9.5.7 Definition

Let 𝔖 and 𝔖′ be two signatures. We say that ( ; 𝅝 ; ) 𝔖 is translatable into 𝔖′, and that 𝔖′ is a translation

from 𝔖, iff there is a translator t for 𝔖 with tr (𝔖, t) = 𝔖′. ( ; 𝅝 ; ) 𝔖 and 𝔖′ are similar, written

𝔖 ≅ 𝔖′

iff there is a bijective translator t from 𝔖 into 𝔖′.

9.5.8 Example

*** update ***

( ; 𝅝 ; ) If

𝔖 = ( \begin{matrix}M, R \\ plus : R × R ⟶ R \\ times : R × R ⟶ R \\ mult : R × M ⟶ M \end{matrix} )  t = [ \begin{matrix}M ↦ & R \\ R ↦ & R \\ plus ↦ & plus \\ times ↦ & times \\ mult ↦ & times \end{matrix} ]

then

tr (𝔖, t) = ( \begin{matrix}R \\ plus : R × R ⟶ R \\ times : R × R ⟶ R \end{matrix} )

( ; 𝅝 ; ) If

𝔖 = ( \begin{matrix}S \\ zero : S \\ unit : S \\ add : S × S ⟶ S \\ mult : S × S ⟶ S \\ neg : S ⟶ S \end{matrix} )  𝔖′ = ( \begin{matrix}S \\ neu : S \\ inv : S ⟶ S \\ op : S × S ⟶ S \end{matrix} )

then

𝔖′ = tr (𝔖, t)  with  t = [ \begin{matrix}S ↦ & S \\ zero ↦ & neu \\ unit ↦ & neu \\ add ↦ & op \\ mult ↦ & op \\ neg ↦ & inv \end{matrix} ]

*** CONTINUE HERE ***

*** update the following two examples according to the new notations; e.g. t instead of τ etc. ***

9.5.9 Example

Consider the two signatures 𝔖grp for groups and 𝔖rng for rings,

𝔖grp = ( \begin{matrix}G \\ neu : G \\ op : G × G ⟶ G \\ inv : G ⟶ G \end{matrix} ) 𝔖rng = ( \begin{matrix}S \\ zero : S \\ unit : S \\ add : S × S ⟶ S \\ mult : S × S ⟶ S \\ neg : S ⟶ S \end{matrix} )

There are four possible translations from 𝔖grp into 𝔖rng and each one is injective:

           τ_{1} = [ \begin{matrix}G ↦ & S \\ neu ↦ & zero \\ op ↦ & add \\ inv ↦ & neg \end{matrix} ] τ_{2} = [ \begin{matrix}G ↦ & S \\ neu ↦ & unit \\ op ↦ & add \\ inv ↦ & neg \end{matrix} ]

           τ_{3} = [ \begin{matrix}G ↦ & S \\ neu ↦ & zero \\ op ↦ & mult \\ inv ↦ & neg \end{matrix} ] τ_{4} = [ \begin{matrix}G ↦ & S \\ neu ↦ & unit \\ op ↦ & mult \\ inv ↦ & neg \end{matrix} ]

And there is just one translation from 𝔖rng into 𝔖grp, which is surjective, namely

                      τ_{0} = [ \begin{matrix}S ↦ & G \\ zero ↦ & neu \\ unit ↦ & neu \\ add ↦ & op \\ mult ↦ & op \\ neg ↦ & inv \end{matrix} ]

*** τ_{1}(𝔖grp) ≤ 𝔖rng etc ***

9.5.10 Example

Given a typical boolean algebra 𝔄 = ⟨A, 0, 1, ∧, ∨, -⟩. In lattice theory, -◯ 1 , ◯ 1 ∧ ◯ 2 and ◯ 1 ∨ ◯ 2 are usually called “complement”, “meet” and “join”. In logic, one rather speaks of “negation”, “conjunction” and “disjunction”, or simply uses “not”, “and” and “or”, respectively. Accordingly, let us symbolizations of 𝔄, i.e. two interpretations

ℑlat = [ \begin{matrix}A ↦ & A \\ bot ↦ & 0 \\ top ↦ & 1 \\ meet ↦ & ◯ 1 ∧ ◯ 2 \\ join ↦ & ◯ 1 ∨ ◯ 2 \\ cp ↦ & -◯ 1 \end{matrix} ] ℑlog = [ \begin{matrix}A ↦ & A \\ false ↦ & 0 \\ true ↦ & 1 \\ and ↦ & ◯ 1 ∧ ◯ 2 \\ or ↦ & ◯ 1 ∨ ◯ 2 \\ not ↦ & -◯ 1 \end{matrix} ]

The according two signatures of these interpretations are

  𝔖lat = ( \begin{matrix}A \\ bot : A \\ top : A \\ meet : A × A ⟶ A \\ join : A × A ⟶ A \\ cp : A ⟶ A \end{matrix} ) 𝔖log = ( \begin{matrix}A \\ false : A \\ true : A \\ and : A × A ⟶ A \\ or : A × A ⟶ A \\ not : A ⟶ A \end{matrix} )

The two signatures are similar,

𝔖lat ≅ 𝔖log

In fact, they must be similar (as we will show in 9.6.4 ??the number?? ), because they are symbolizations of the same structure 𝔄. The obvious bijection from 𝔖lat into 𝔖log is given by

                            A ↦ A
                          bot ↦ false
                          top ↦ true
                         meet ↦ conj
                         join ↦ disj
                           cp ↦ not

But note, that there are three more bijections, namely

[ \begin{matrix}A ↦ & A \\ bot ↦ & true \\ top ↦ & false \\ meet ↦ & disj \\ join ↦ & conj \\ cp ↦ & not \end{matrix} ] [ \begin{matrix}A ↦ & A \\ bot ↦ & true \\ top ↦ & false \\ meet ↦ & conj \\ join ↦ & disj \\ cp ↦ & not \end{matrix} ] [ \begin{matrix}A ↦ & A \\ bot ↦ & false \\ top ↦ & true \\ meet ↦ & disj \\ join ↦ & conj \\ cp ↦ & not \end{matrix} ]

Besides, there are also translations from 𝔖lat into 𝔖log which are neither injective nor surjective, such as

A ↦ A
bot ↦ true
top ↦ true
meet ↦ conj
join ↦ conj
cp ↦ not

9.6 Comparison and translations of interpretations

9.6.1 Definition

Given two interpretations ℑ an 𝔍.

(1) ℑ is a sub–signature interpretation of 𝔍, or ℑ is (syntactically) smaller than ℑ, written

ℑ ≤ 𝔍

iff the following statements hold:

(a) 𝔰𝔦𝔤𝔫 (ℑ) ≤ 𝔰𝔦𝔤𝔫 (𝔍)

(b) S^{ℑ} = S^{𝔍} for all S ∈ Csy (ℑ)

(c) o^{ℑ} = o^{𝔍} for all o ∈ Osy (ℑ)

(2) ℑ is a sub–carrier interpretation of 𝔍, or ℑ is (semantically) included by ℑ, written

ℑ ⊆ 𝔍

iff the following statements hold:

(a) 𝔰𝔦𝔤𝔫 (ℑ) = 𝔰𝔦𝔤𝔫 (ℑ)

(b) S^{ℑ} ⊆ S^{𝔍} for all S ∈ Csy (ℑ)

(c) For each o ∈ Osy (ℑ)

(i) If o : C is a constant in ℑ then

o^{ℑ} = o^{𝔍}

(ii) If o : D_{1} × … × D_{n} ⟶ C is a function symbol in ℑ then for all ⟨x_{1}, …, x_{n}⟩ ∈ D_{1}^{ℑ} × … × D_{n}^{ℑ}

o^{ℑ} (x_{1}, …, x_{n}) = o^{𝔍} (x_{1}, …, x_{n})

(ii) If o : D_{1} ↭ … ↭ D_{n} is a relation symbol in ℑ then for all ⟨x_{1}, …, x_{n}⟩ ∈ D_{1}^{ℑ} × … × D_{n}^{ℑ}

o^{ℑ} (x_{1}, …, x_{n}) iff o^{𝔍} (x_{1}, …, x_{n})

9.6.2 Example

*** update and explain ***

[ \begin{matrix}Number ↦ & ℤ \\ zero ↦ & 0 \\ unit ↦ & 1 \\ add ↦ & ◯ 1 + ◯ 2 \\ mult ↦ & ◯ 1 · ◯ 2 \\ neg ↦ & -◯ 1 \end{matrix} ] ≤ [ \begin{matrix}Number ↦ & ℤ \\ zero ↦ & 0 \\ add ↦ & ◯ 1 + ◯ 2 \\ neg ↦ & -◯ 1 \end{matrix} ]

[ \begin{matrix}Number ↦ & ℤ \\ zero ↦ & 0 \\ unit ↦ & 1 \\ add ↦ & ◯ 1 + ◯ 2 \\ mult ↦ & ◯ 1 · ◯ 2 \\ neg ↦ & -◯ 1 \end{matrix} ] ⊆ [ \begin{matrix}Number ↦ & ℚ \\ zero ↦ & 0 \\ unit ↦ & 1 \\ add ↦ & ◯ 1 + ◯ 2 \\ mult ↦ & ◯ 1 · ◯ 2 \\ neg ↦ & -◯ 1 \end{matrix} ]

9.6.3 Example

*** UPDATE THIS ONE *** Consider the following signature 𝔖grp for additive groups and 𝔖org for ordered rings

 𝔖grp = ( \begin{matrix}S \\ zero : S \\ add : S × S ⟶ S \\ neg : S ⟶ S \end{matrix} )  𝔖org = ( \begin{matrix}S \\ zero : S \\ unit : S \\ add : S × S ⟶ S \\ mult : S × S ⟶ S \\ neg : S ⟶ S \\ Smeq : S ↭ S \end{matrix} )

Obviously

𝔖grp ≤ 𝔖org

because there is the embedding τ : 𝔖grp ⟶ 𝔖org given by

                      τ = [ \begin{matrix}S ↦ & S \\ zero ↦ & zero \\ add ↦ & add \\ neg ↦ & neg \end{matrix} ]

*** update ***

Obviously, each signature 𝔖 is similar to itself, 𝔖 ≅ 𝔖, the identity translation is a bijective translation of 𝔖 into 𝔖. For 𝔖org this identity translation is

                             S ↦ S
                          zero ↦ zero
                          unit ↦ unit
                           add ↦ add
                          mult ↦ mult
                           neg ↦ neg
                          Smeq ↦ Smeq

But sometimes there is more than one bijective translation and the similarity is not unique. For example

                             S ↦ S
                          zero ↦ unit
                          unit ↦ zero
                           add ↦ mult
                          mult ↦ add
                           neg ↦ neg
                          Smeq ↦ Smeq

is a well–define bijective translation as well.

9.6.4 Lemma

( ; 𝅝 ; ) Each bijective translator is both injective and surjective. ( ; 𝅝 ; ) Each embedding is injective. ( ; 𝅝 ; ) ≤ is a quasi–order relation. ( ; 𝅝 ; ) Similarity is an equivalenc relation. ( ; 𝅝 ; ) For every two signature 𝔖_{1} and 𝔖_{2} the following statements

are equivalent:

( ; 𝅗𝅥 ; ) 𝔖_{1} ≅ 𝔖_{2}

( ; 𝅗𝅥 ; ) There are interpretations ℑ_{1} of 𝔖_{1} and ℑ_{2} of 𝔖_{2} with the same structure.

9.6.5 Proof of 9.6.4

*** CONTINUE HERE ***

9.7 Closures and generations in single–sort / mono–carrier structures

9.7.1 Repetition

Recall ??needs to be defined somewhere?? , that a single–sort or mono– carrier structure is a structure 𝔄 = ⟨Car, Op⟩, where Car = {A} is a singleton, comprising just one carrier class A.

9.7.2 Definition

Given a single–sort structure 𝔄 = ⟨{A} , Op⟩.

We define init(𝔄) := {c ∈ Op | c is a constant }

the initialization (class) of 𝔄.

For every S ⊆ A we define

im_{𝔄}(S) := { f(a_{1}, …, a_{n}) f ∈ Op is function , ⟨a_{1}, …, a_{n}⟩ ∈ S }

the image class of S (in 𝔄).

We define

Clos(𝔄) := \{ S ⊆ A \begin{matrix}init(𝔄) ⊆ A, \\ im_{𝔄}(S) ⊆ S \end{matrix} \}

the closed subclasses of 𝔄.

For each S ⊆ A we define clos_{𝔄}(S) := ⋂{C ∈ Clos(𝔄) | S ⊆ C}

the closure of S (in 𝔄).

Let S ⊆ A. For each n ∈ ℕ we define

gen_{𝔄}^{n}(S) := \begin{cases}init(𝔄) ∪ S & if n = 0 \\ gen_{𝔄}^{n−1} (im_{𝔄}(S)) & if n > 0 \end{cases}

the n–th step generation of S (in 𝔄).

And more general, we define

gen_{𝔄}(S) := ⋃_{n∈ℕ}gen_{𝔄}^{n}(S)

is the (overall) generation of S in 𝔄.

*** Properties of closures and generations (see

                                                  BitTables/boolaxioms2.tex) ***

9.8 Closures and generations in symbolized structures / (ordinary) interpretations

*** CONTINUE HERE ***

10 Images, generations and closures

10.1 Introduction

*** images, generations, closures in general ***

10.1.1 Definition

Let 𝔓 = ⟨P, ⊑⟩ be a poclass. A function

κ : P ⟶ P

is called ( ; 𝅝 ; ) idempotent, if

κ(κ(x)) = κ(x) for all x ∈ P

( ; 𝅝 ; ) isotone in 𝔓, if

x ⊑ y implies κ(x) ⊑ κ(y) for all x, y ∈ P

( ; 𝅝 ; ) expansive in 𝔓, if

x ⊑ κ(x) for all x ∈ P

( ; 𝅝 ; ) contractive in 𝔓, if

κ(x) ⊑ x for all x ∈ P

( ; 𝅝 ; ) a closure operator in 𝔓, if

κ is idempotent, isotone and expansive in 𝔓

( ; 𝅝 ; ) a kernel operator in 𝔓, if κ is idempotent, isotone and contractive in 𝔓

10.2 Boolean constructions in 𝔓 (C)

10.2.1 Repetition Recall Thalg 6.2.2 , that for every class C,

𝔓 (C) = ⟨P (C) , ⊆, ∅, 1, ∩, ∪, ⋂, ⋃, ∁⟩

is a complete boolean algebra, where 1 := C is the full set and ∁◯ 1 := C \ ◯ 1 is the complement function and ⋂ ∅ := 1.

10.2.2 Definition

Let C be a class.

We define

boolInit(C) := {∅, C}

the boolean initialization of C

And for every A ⊆ P (C) we define

boolIm_{C}(A) := \{ \begin{matrix}∁A, \\ ⋂ B, \\ ⋃ B \end{matrix} \begin{matrix}A ∈ A, \\ B ∈ Fin (A) \end{matrix} \}

the boolean image of A (on C)

We define

BoolCl (C) := { A ⊆ P (C) boolInit(C) ⊆ A, boolIm_{C}(A) ⊆ A }

the boolean closed class systems of C For each A ⊆ P (C) we define

boolCl_{C}(A) := ⋂{B ∈ BoolCl (C) | A ⊆ B} the boolean closure of A on C

Let A ⊆ P (C). For each n ∈ ℕ we define

boolGen_{C}^{n}(A) :=

\begin{cases}boolInit(C) ∪ A & if n = 0 \\ boolGen_{C}^{n−1}(boolIm_{C}(A)) & if n > 0 \end{cases}

the n–th step boolean generation of A (on C)

And more general we define boolGen_{C}(A) := ⋃_{n∈ℕ}boolGen_{C}^{n}(A)

the (overall) boolean generation of A (on C)

10.2.3 Lemma

For every class C holds:

(1) {∅, C} ∈ BoolCl (C)

(2) P (C) ∈ BoolCl (C)

(3) ⋂ Σ ∈ BoolCl (C), for each Σ ⊆ BoolCl (C) (where ⋂ Σ := P (C) for Σ = ∅)

10.2.4 Proof of 10.2.3

(1) We have

( ; 𝅝 ; ) boolInit (C) = {∅, C} ⊆ {∅, C}

( ; 𝅝 ; ) boolIm_{C}({∅, C}) = {∅, C} ⊆ {∅, C}

so that according to the definition of BoolCl (C) in 10.2.2, we obtain

{∅, C} ∈ BoolCl (C)

(2) We have ( ; 𝅝 ; ) boolInit (C) = {∅, C} ⊆ P (C) ( ; 𝅝 ; ) boolIm_{C}(P (C)) = P (C) ⊆ P (C) so again according to definition 10.2.2, we obtain

P (C) ∈ BoolCl (C)

(3) In case Σ = ∅, we have ⋂ Σ = P (C), and that is a member of BoolCl (C), according to (2). For Σ ≠ ∅ there is ( ; 𝅝 ; ) boolInit (C) ⊆ ⋂ Σ, because boolInit (C) = {∅, C} ⊆ A for

each A ∈ Σ ( ; 𝅝 ; ) Also boolIm_{C}(⋂ Σ) ⊆ ⋂ Σ, because:

( ; 𝅗𝅥 ; ) If A ∈ ⋂ Σ, then A ∈ A for each A ∈ Σ, so that ∁A ∈ A for all A ∈ Σ (since A ∈ BoolCl (C)) and thus ∁A ∈ ⋂ Σ. ( ; 𝅗𝅥 ; ) If B ⊆ ⋂ Σ, then B ⊆ A for each A ∈ Σ, so that ⋂ B ∈ A for all A ∈ Σ and thus ⋂ B ∈ ⋂ Σ. The same goes for ⋃ B, i.e. ⋃ B ∈ ⋂ Σ.

So indeed ⋂ Σ ∈ BoolCl (C), as stated.

10.2.5 Lemma

For every class C and each A ⊆ P (C) holds: boolCl_{C}(A) ∈ BoolCl (C)

10.2.6 Proof of 10.2.5

We put Σ := {B ∈ BoolCl (C) | A ⊆ B}, so that boolCl_{C}(A) = ⋂ Σ, according to the definition of boolCl_{C} in 10.2.2. No matter what A we choos, we always have P (C) ∈ Σ, so Σ ≠ ∅. And since Σ ⊆ BoolCl (C), we have ⋂ Σ ∈ BoolCl (C), according to 10.2.3(3).

10.2.7 Lemma

For every class C holds:

BoolCl (C) = {boolCl_{C}(A) | A ⊆ P (C)}

10.2.8 Proof of 10.2.7

*** CONTINUE HERE ***

10.2.9 Lemma

For every class C, the function

boolCl_{C} : P (P (C)) ⟶ P (P (C))

(from definition 10.3.2) is a closure operator in ⟨P (P (C)) , ⊆⟩.

10.2.10 Proof of 10.2.9

According to the general definition ?? of a closure operator, we need to show that the following three statements are true for all A, B ∈ P (P (C)):

(1) A ⊆ B implies boolCl_{C}(A) ⊆ boolCl_{C}(B)

(2) boolCl_{C}(boolCl_{C}(A)) = boolCl_{C}(A)

(3) A ⊆ boolCl_{C}(A)

*** CONTINUE HERE ***

10.2.11 Lemma

For every class C and each A ⊆ P (C) holds:

boolGen_{C}(A) = boolCl_{C}(A)

10.2.12 Proof of 10.2.11

*** CONTINUE HERE ***

10.2.13 Lemma

For every class C and each A ⊆ P (C) holds:

boolGen_{C}^{3}(A) = boolGen_{C}(A)

10.2.14 Proof of 10.2.13

*** CONTINUE HERE ***

10.2.15 Lemma

Let C be a class and A ⊆ P (C) such that A is finite. Then

card (boolCl_{C}(A)) ≤ 2^{2card(A)}

10.2.16 Proof of 10.2.15

*** CONTINUE HERE ***

10.3 Boolean constructions in ℜ𝔢𝔩 (X)

10.3.1 Repetition

Recall definition Thalg 19.5.9 and lemma Thalg 19.5.10 , that for every schema X,

ℜ𝔢𝔩(X) = ⟨Rel (X) , ⊆, ⊥_{X}, ⊤_{X}, ∩, ∪, ⋂, ⋃, ¬⟩

is a complete boolean algebra.

10.3.2 Definition

Let X = [X_{i}|i ∈ I] be a schema.

We define

boolInit(X) := {⊥_{X}, ⊤_{X}}

the boolean initiation of X

And for each R ⊆ Rel (X) we define

boolIm_{X}(R) := \{ \begin{matrix}¬R, \\ ⋂ S, \\ ⋃ S \end{matrix} \begin{matrix}R ∈ R, \\ S ∈ Fin (R) \end{matrix} \}

the boolean image of R (on X)

We define

BoolCl (X) := { R ⊆ Rel (X) boolInit(X) ⊆ R, boolIm_{X}(R) ⊆ R }

the boolean closed relation classes of X

For each R ⊆ Rel (X) we define

boolCl_{X}(R) := ⋂{S ∈ BoolCl (X) | R ⊆ S}

the boolean closure of R (on X)

Let R ⊆ Rel (X). For each n ∈ ℕ we recursively define

boolGen_{X}^{n}(R) :=

\begin{cases}boolInit(X) ∪ R & if n = 0 \\ boolGen_{X}^{n−1}(boolIm_{X}(R)) & if n > 0 \end{cases}

the n–th step boolean generation of R (on X)

And more general we define

boolGen_{X}(R) := ⋃_{n∈ℕ}boolGen_{X}^{n}(R)

the (overall) boolean generation of R (on X)

10.3.3 Lemma

For every given schema X the function

boolCl_{X} : P (Rel (X)) ⟶ P (Rel (X)) is a closure operator in the sense is satisfies the following properties for all R, S ∈ P (Rel (X)):

(i) Isotony:

R ⊆ S implies boolCl_{X}(R) ⊆ boolCl_{X}(S)

(ii) Idempotency:

boolCl_{X}(boolCl_{X}(R)) = boolCl_{X}(R)

(iii) Expansivity:

R ⊆ boolCl_{X}(R)

10.3.4 Proof of 10.3.3

*** CONTINUE HERE ***

10.3.5 Lemma

Let X be a schema and R ⊆ Rel (X). Then ( ; 𝅝 ; ) boolGen_{X}(R) = boolCl_{X}(R)

10.3.6 Proof of 10.3.5

*** CONTINUE HERE ***

10.3.7 Lemma

Let X be a schema and R ⊆ Rel (X). Then ( ; 𝅝 ; ) boolCl_{X}(R) ∈ BoolCl (X)

10.3.8 Proof of 10.3.7

*** CONTINUE HERE ***

10.3.9 Lemma

Let X be a schema and R ⊆ Rel (X). Then ( ; 𝅝 ; ) boolGen_{X}^{3}(R) = boolGen_{X}(R)

10.3.10 Proof of 10.3.9

*** CONTINUE HERE ***

10.3.11 Lemma (see Halmos: Boolean Algebras) If E is a finite subset of a boolean algebra 𝔄 and 𝔅 is the subalgebra generated by E, then 𝔅 is finite; more precisely card (𝔅) ≤ 2^{2card(E)}

10.3.12 Proof of 10.3.11

*** CONTINUE HERE ***

10.3.13 Lemma

For every R ⊆ Rel (X) the following statements are equivalent:

( ; 𝅝 ; ) R ∈ BoolCl (X)

( ; 𝅝 ; ) boolCl_{X}(R) ⊆ R

( ; 𝅝 ; ) ⟨R, ⊆, ⊥_{X}, ⊤_{X}, ∩, ∪, ¬⟩ is a quasi–boolean algebra

( ; 𝅝 ; ) ⟨R, ⊆, ⊥_{X}, ⊤_{X}, ∩, ∪, ¬⟩ is a subalgebra of

⟨Rel (X) , ⊆, ⊥_{X}, ⊤_{X}, ∩, ∪, ¬⟩

10.4 Schematic constructions in

𝔓𝔯𝔢𝔩 (X)

10.4.1 Definition

Let X = [X_{i}|i ∈ I] be a schema.

For every R ⊆ Prel (X) we define

schInit (R) := \{ \begin{matrix}⊥_{xR}, \\ ⊤_{xR} \end{matrix} R ∈ R \}

the schematic initialization of R

schIm (R) :=

\{ \begin{matrix}R ∥ xS_{1} ∥ … ∥ xS_{n}, \\ R ⇓ xS, \\ R ⇑ xS, \\ R⇂ @S, \\ R↾ @S \end{matrix} \begin{matrix}R, S, S_{1}, …, S_{n} ∈ R, \\ for n ∈ ℕ \end{matrix} \}

the schematic image of R

We define

SchCl (X) := { R ⊆ Prel (X) schInit (R) ⊆ R, schIm (R) ⊆ R }

the schematically closed relation classes of X

For each R ⊆ Prel (X) we define

schCl (R) := ⋂{S ∈ SchCl (X) | R ⊆ S} the schematic closure of R

Let R ⊆ Prel (X). For each n ∈ ℕ we recursively define

schGen^{n}(R) := \begin{cases}schInit (R) ∪ R & if n = 0 \\ schGen^{n−1}(schIm (R)) & if n > 0 \end{cases}

the n–th step schematic generation of R

And more general we define schGen(R) := ⋃_{n∈ℕ}schGen^{n}(R)

the (overall) schematic generation of R

*** If m is the maximum of the cardinalities of the index classes of the members of R, then schGen(R) = schGem^{n}(R). ***

10.5 Theory–algebraic constructions in 𝔓𝔯𝔢𝔩 (X)

10.5.1 Definition

Let X = [X_{i}|i ∈ I] be a schema.

And for each R ⊆ Prel (X) we define

theoInit(R) := boolInit ∪ schInit (R)

the theory–algebraic initialization

theoIm(R) := boolIm(R) ∪ schIm(R)

the theory–algebraic image of R

We define

TheoCl (X) := { R ⊆ Prel (X) theoInit ⊆ R, theoIm(R) ⊆ R }

the theory–algebraic closed relation classes of X

For each R ⊆ Prel (X) we define

theoCl (R) := ⋂{S ∈ TheoCl (X) | R ⊆ S} the theory–algebraic closure of R Let R ⊆ Prel (X). For each n ∈ ℕ we recursively define

theoGen^{n}(R) :=

\begin{cases}theoInit(X) ∪ R & if n = 0 \\ theoGen^{n−1}(theoIm (R)) & if n > 0 \end{cases}

the n–th step theory–algebraic generation of R

And more general we define

theoGen (R) := ⋃_{n∈ℕ}theoGen^{n}(R) the (overall) theory–algebraic generation of R

*** Find a m ∈ ℕ such that theoGen (R) = theoGen^{m}(R). Find an upper bound of card (theoCl (R)), as a function of card (R). ***

10.6 Identitive theory–algebraic constructions

10.6.1 Definition Let X = [X_{i}|i ∈ I] be a schema. We define

IdInit (X) := {Id_{pr(X,J)} | J ∈ Fin (I)}

the identity initialization

For every schema X and R ⊆ Prel (X) we define

IdTheoGen(R) := theoGen (R ∪ IdInit (X)) the identitive theory–algebraic generation of R

Part V

*** AN INTERPRETATION OF FIRST–ORDER PREDICATE LOGIC ***

Part VI

Preparations

Abstract

Recall, that a signature is a symbolization or grammer for a class of syntactically similar structures and each interpretation of the signatures returns one such concrete structure. Also, each signature defines specific sets of expressions, namely terms and formulas. Given a signature with an interpretation, the terms turn into elements of the structures carrier set and the formulas turn into statements, each one either false or true. But this interpretation concept is only well–defined for closed expressions, i.e. for terms and formulas without free variables. As soon as these occur, the meaning of the expression is not fully determined anymore in traditional semantics. There are no entities defined as a result of an interpretation applied to open expressions.

In this text we generalize the traditional design and define a meaning for all expressions under a given interpretation: every expressions turns into a member of a theory algebra of relations (as defined in an earlier text of the same title). Now, the meaning of each expression is a schematic relation. This generalized design is consistent with the traditional one: the interpretation of closed formulas is either the zero (⊥, false) or the unit relation (⊤, true statement). A closed term turns into a well–defined constant, however wrapped in the form of a schematic relation. Besides, the fact that both, terms and formulas are no different kind of entities (values and statements), but that they both have a meaning in the same set of schematic relation, will not appear as an artificial unification, but as a very intuitive and natural transformation, indeed. Moreover, the new interpretation is not merely a simply transformation from syntax to semantics, but an algebraic embedding: junctions (∧, ∨, ¬) of formulas turns into according theory–algebraic operations (⊓, ⊔, ¬), quantifications (∀, ∃) translate into schema reductions (↾, ⇂).

11 Foreword

The subtitle The schematic–operational interpretation for first–order predicate logic. The natural semantics of predicate logic. ^{2}

2 If something claims to be “natural”, one should be really suspicious. It used to be “natural”, that men provide for the family and women stay in the kitchen. And it still seems to scare people as being “not natural”, that other people of the same gender have sex. “Natural” stands for “evident”, “unquestionable”, “eternally true” and “given by god”. But on a closer look, all statements that pretend to be descriptive, turn out to be normative. There is no difference when it comes to mathematics. The naive reference to a real world is often enough the very drive and belief of the people involved. Kroneckers famous motto that natural (!) numbers are created by god and everything else is the work of men emphasizes the upside–down epistemiology of the time: that the concrete is the evident and simple and the abstract is the complex. In fact, it rather is the other way round, and at least mathematicians should see that, because they always start abstract when they built their homes. And yet, they force themselves to think the opposite, confused by the observation that each child can count its fingers and only sophisticated people can cite Peano’s axioms. Having said that, the “naturalness” of our proposed semantic can only be ironic. It refers to “our real world” of mathematical logic, where concepts like expression, interpretation, theory etc have a common, standard and pretty precise definition. In this context, the design of our interpretation concept seems to be “natural”, i.e. “very logical” in every sense.

12 Introduction

12.1 Ordinary structures, signatures and interpretations

12.1.1 Ordinary structures and ordinary operations

An ordinary structure 𝔄 is often given as

𝔄 = ⟨S_{1}, S_{2}, …, o_{1}, o_{2}, …⟩

made of

(1) a couple of carrier classes S_{1}, S_{2}, … and

(2) ordinary operator o_{1}, o_{2}, …, i.e. constants, ordinary functions and ordinary relations on that given classes.

12.1.2 Ordinary operators

So ordinary operator is our general notation for either constants, ordinary functions and ordinary relations.^{3} Let us recall some common conventions and some features of our own notation (for more details see Thalg syntax ).

(1) Each ordinary or n–ary function is given as

f : D_{1} × … × D_{n} ⟶ C

where the D_{1}, …, D_{n}, C are among the given carrier classes. As usual, D_{1} × … × D_{n} is the domain and C is the codomain of f. And if θ is a term that describes the result of applying f to an argument ⟨x_{1}, …, x_{n}⟩ ∈ D_{1} × … × D_{n}, i.e. if f(x_{1}, …, x_{n}) := θ, we write the whole function as

f = [ \begin{matrix}D_{1} × … × D_{n} ⟶ C \\ ⟨x_{1}, …, x_{n}⟩ ↦ θ \end{matrix} ]

The default notation of applying such an f to an argument ⟨x_{1}, …, x_{n}⟩ is

f(x_{1}, …, x_{n})

But often in mathematics, there is a special syntax for these applications, e.g. one writes “x + y” instead of “+(x, y)”, “x mod y” instead of “mod(x, y)” etc. or even without a symbol at all as in “x^{y}” for the power function and “xy” for multiplication. In all this deviant cases we use placeholders ◯ 1 , ◯ 2 , … in the function definition to indicate this special syntax. For example,

◯ 1 · ◯ 2 := [ \begin{matrix}ℕ × ℕ ⟶ ℕ \\ ⟨x, y⟩ ↦ \begin{cases}x & if y = 0 \\ x + (x · (y − 1)) & if y > 0 \end{cases} \end{matrix} ]

(recursively) defines the multiplication on naturals numbers.

(2) We allow ordinary functions to be nullary, their domain is the nullary cartesian product {⟨⟩}, only made of the empty tuple ⟨⟩. We call such a nullary function c : {⟨⟩} ⟶ C a constant and rather write

c : C

for its type expression and simply

c  instead of  c()

for the (unique) application of c.

(3) An ordinary or n–ary relation R is made of a domain D_{1} × … × D_{n} and graph Γ ⊆ D_{1} × … × D_{n}. We often write such an R in a compact notation

R = [ \begin{matrix}D_{1} ↭ … ↭ D_{n} \\ Γ \end{matrix} ]

i.e. the type expression of such a relation R is

R : D_{1} ↭ … ↭ D_{n}

And if Γ is determined by a formula φ, i.e. if

Γ = {⟨x_{1}, …, x_{n}⟩ ∈ D_{1} × … × D_{n} | φ}

we also use another version and rather write

R = [ \begin{matrix}D_{1} ↭ … ↭ D_{n} \\ ⟨x_{1}, …, x_{n}⟩ ↝ φ \end{matrix} ]

instead of

R = [ \begin{matrix}D_{1} ↭ … ↭ D_{n} \\ \{⟨x_{1}, …, x_{n}⟩ ∈ D_{1} × … × D_{n} | φ\} \end{matrix} ]

As usual, we write

⟨x_{1}, …, x_{n}⟩ ∈ R  or  R(x_{1}, …, x_{n})

iff an argument ⟨x_{1}, …, x_{n}⟩ is a member of Γ. And again we use placeholders ◯ 1 , ◯ 2 , … to declare deviant notations. For example, ◯ 1 ≡ ◯ 2 explains that we write “x ≡ y” rather than “≡ (x, y)”. The usual linear order relation on the natural number is in our notation then defined by say

◯ 1 ≤ ◯ 2 = [ \begin{matrix}ℕ ↭ ℕ \\ ⟨x, y⟩ ↝ ∃n ∈ ℕ . x + n = y \end{matrix} ]

12.1.3 Ordinary signatures

An (ordinary) signature 𝔖 is made of:

(1) carrier class symbols

(2) ordinary operator symbols, i.e.

(a) constants,

(b) ordinary (partial or total) function symbols, and

(c) ordinary relation symbols,

all defined on the given carrier class symbols.

(Ordinary) signatures only have “ordinary operators” or “n–ary operators”, i.e. their domains are ordinary cartesian products, their arguments are tuples. Most of the signatures in the sequel are finite in the sense that their total amount of symbols is finite. In that case, we have a compact and intuitive form for 𝔖, roughly given by

𝔖 = ( \begin{matrix}carrier class symbols \\ operator symbols \\ with their types \end{matrix} )

3 A generalization of the ordinary relation is the schematic relations, defined in Thalg the book . Later on (46.2.11), we will need these generalizations and we also introduce schematic functions (46.2.11) as a generalization of ordinary functions.

12.1.4 Example of an ordinary signature

An example of a signature is given by

                   𝔖 = ( \begin{matrix}C, D \\ c : C \\ d : D \\ f : C ⟶ C \\ g : C × C ⟶ D \\ R : C ↭ D \\ S : C ↭ C ↭ D \end{matrix} )

which is supposed to be read as follows:

(1) C and D are the two symbols for the carrier classes involved.

(2) There are six operator symbols defined on the given carrier classes, namely

(a) two constants c and d, of type C and D, respectively,

(b) one function symbol f of type C ⟶ C and one function symbol g of type C × C ⟶ D

(c) one relation symbol R, standing for a binary relation between C and D, and one ternary relation symbol S, which is of type

    C ↭ C ↭ D.

12.1.5 Ordinary interpretations

An interpretation ℑ assigns a concrete ordinary structure 𝔄 to a given signature 𝔖.

𝔖 ℑ 𝔄_{signature} _{interpretation} _{structure}

If the signature is given by our compact form

𝔖 = ( S_{1}, …, S_{k} ; o_{1} : τ_{1} ; ⋮ ; o_{n} : τ_{n} )

where τ_{i} is the type expression for the operator symbol o_{i}, and a structure is given by

𝔄 = ⟨S_{1}, …, S_{k}, o_{1}, …, o_{n}⟩

where the S_{i} are the carrier classes and the o_{i} are the operators, then the interpretation ℑ that assigns 𝔄 to 𝔖 is written in a compact form

ℑ = [ \begin{matrix}S_{1} & ↦ & S_{1} \\ ⋮ & & ⋮ \\ S_{k} & ↦ & S_{k} \\ o_{1} & ↦ & o_{1} \\ ⋮ & & ⋮ \\ o_{n} & ↦ & o_{n} \end{matrix} ]

Of course, such an interpretation is only well–defined, if 𝔖 and 𝔄 are compatible in the sense that the type expressions of 𝔖 match the actual types of the operations in 𝔄.

One often writes S^{ℑ} for the carrier and o^{ℑ} for the operation resulting from the ℑ–interpretation of the symbols S and o, respectively. Accordingly, the structure 𝔄 we obtained by applying ℑ to the signature 𝔖 is also given by

𝔄 = ⟨S_{1}^{ℑ}, …, S_{k}^{ℑ}, o_{1}^{ℑ}, …, o_{n}^{ℑ}⟩

12.1.6 Examples of interpretations

Consider the signature

                                                                                           𝔖 = ( \begin{matrix}S \\ c : S \\ i : S ⟶ S \\ f : S × S ⟶ S \end{matrix} )

If

⟨ℤ, 0, -◯^{1} , ◯^{1} + ◯^{2} ⟩

is the usual additive structure on the integers (with -x the negation of each given x ∈ ℤ), then

[ \begin{matrix}S ↦ & ℤ \\ c ↦ & 0 \\ i ↦ & -◯ 1 \\ f ↦ & ◯ 1 + ◯ 2 \end{matrix} ]

is a well–defined interpretation for 𝔖.

And if

⟨ℚ^{+}, 1, ◯_{1} ^{-1}, ◯_{1} · ◯_{2} ⟩

is the usual multiplicative structure on the set ℚ^{+} of all positive rationals (with x^{-1} := \frac{1}{x} and x · y the usual multiplication), then

[ \begin{matrix}S ↦ & ℚ^{+} \\ c ↦ & 1 \\ i ↦ & ◯ 1 ^{-1} \\ f ↦ & ◯ 1 · ◯ 2 \end{matrix} ]

is another well–defined interpretation for 𝔖.

12.1.7 Example of an interpretation

A suitable interpretation for the previous example signature 𝔖 from 12.1.4 is given by

ℑ := [ \begin{matrix}C ↦ & \{1, 2\} \\ D ↦ & \{1, 2, 3, 4\} \\ c ↦ & 1 \\ d ↦ & 4 \\ f ↦ & [ \begin{matrix}\{1, 2\} ⟶ \{1, 2\} \\ x ↦ 3 − x \end{matrix} ] \\ g ↦ & [ \begin{matrix}\{1, 2\} × \{1, 2\} ⟶ \{1, 2, 3, 4\} \\ ⟨x, y⟩ ↦ x + y \end{matrix} ] \\ R ↦ & [ \begin{matrix}\{1, 2\} ↭ \{1, 2, 3, 4\} \\ ⟨x, y⟩ ↝ x ≤ y \end{matrix} ] \\ S ↦ & [ \begin{matrix}\{1, 2\} ↭ \{1, 2\} ↭ \{1, 2, 3, 4\} \\ ⟨x, y, z⟩ ↝ x + y = z \end{matrix} ] \end{matrix} ]

12.2 Typed variable sets, terms and formulas

12.2.1 introduction

Each signature 𝔖 defines two kinds of expressions: terms, standing for elements from the given carrier classes, and formulas that make statements about the structure. A typical term on the signature of the previous example is given by

g(f(c), g(c, c))

and typical formulas are

∀x . ∃y . [ y = f(x) ]

and

∀x . ∀y . ∀w . [ S(x, y, w) → [ R(x, w) ∧ R(y, w) ] ]

However, our repertoire of well–formed expressions is a bit more complicated than the syntax in most classical text books on (first– order) predicate logic, but also more powerful and practical in daily live. The main differences are:

(1) We allow structures to have more than one carrier class. In other words, our signatures are multiple carrier signatures. Therefore, we introduce typed variable sets below as part of the syntax.

(2) We include conditional expressions and descriptions in our definition of terms.

(a) A description has the form

the v with φ

and is supposed to denote the (unique) element v, that satisfies the formula φ. One difficulty with descriptions is the fact that these terms might not denote well–defined elements under certain interpretations.

(b) A conditional expression has the form

if φ then θ_{1} else θ_{2}

Usually when introducing the syntax of logical expressions, terms are defined before the formulas. But including descriptions and conditional terms requires a simultaneous (recursive) definition of both classes, because both terms are built with formulas (namely the “φ”).

(3) Our predicate logic is with identity, i.e. the equation

[ θ_{1} = θ_{2} ]

is a well–defined formula, for all terms θ_{1}, θ_{2}.

12.2.2 Typed variable sets and extended signatures

First of all, we allow multiple carrier (or multi–sort) signatures. Therefore, we actually need to specify the type for each variable we use. One way to do so is the exclusive use of “typed quantifications”, i.e. we would have to write

∀x : C . ∀y : C . ∀w : D . [ S(x, y, w) → [ R(x, w) ∧ R(y, w) ] ]

or, in a more common version,

∀x ∈ C . ∀y ∈ C . ∀w ∈ D . [ S(x, y, w) → [ R(x, w) ∧ R(y, w) ] ]

instead of the previous formula with “untyped quantifications”

∀x . ∀y . ∀w . [ S(x, y, w) → [ R(x, w) ∧ R(y, w) ] ]

But there is a problem. Well–formed expressions are constructed recursively, i.e.

                                                                                         S(x, y, w)  R(x, w)  R(y, w)

must already be well–defined formulas before they can be used in the construction of first [ R(x, w) ∧ R(y, w) ], then [ S(x, y, w) → [ R(x, w) ∧ R(y, w) ] ] and finally

∀x . ∀y . ∀w . [ S(x, y, w) → [ R(x, w) ∧ R(y, w) ] ]

But each of its subformulas, say R(x, w) is well–defined only, if x is of type C and w is of type D, because R is a relation symbol of type C ↭ D. In other words, not only the final quantified formula, but already its subformulas such as R(x, w) fix the types of the variables we use. Our solution to this problem is the predefined typed variable set 𝔙 as part of the syntax definition. A suitable typed variable set for our example signature 𝔖 is e.g. given by

                                                                                               𝔙 := ( \begin{matrix}x : C \\ y : C \\ z : C \\ u : D \\ v : D \\ w : D \end{matrix} )

The combination of signature 𝔖 and 𝔙 is then called an extended signature and written

𝔖 † 𝔙

and terms and formulas are defined not on 𝔖 alone, as usual, but on 𝔖 † 𝔙. ^{4}

12.2.3 The repertoire of terms and formulas

Given an extended signature 𝔖 † 𝔙. The classes

Term (𝔖 † 𝔙)  and  Form (𝔖 † 𝔙)

of all terms and formulas of 𝔖†𝔙, respectively, are simultaneously and recursively defined to comprise the following expressions:

( ; 𝅝 ; ) Terms are

v  (variable)
c  (constant)
f(θ_{1}, …, θ_{n})  (application)
if φ then θ_{1} else θ_{2}  (conditional)
the v with φ  (description)

( ; 𝅝 ; ) Formulas are

4 In our approach to first–order predicate logic, (typed) variables become an explicit and essential part of the syntax and semantics of theories. This is contrary to the more common understanding of variables merely as auxiliary items. Some branches of logic (e.g. the combinatory logic of Haskell Curry and others) even eliminate variables alltogether and design a variable–free version of logic. So far, we justified our emancipation of variables as equal citizens among the other symbols of a signature by our use of multiple carrier signatures. But in fact, we have much stronger reasons and that implies a fundamental shift in the whole philosophy. However, this will become apparent only much later, when we define interpretations as homomorphisms into theory algebras and when we develop methods to construct model classes for theories.

R(θ_{1}, …, θ_{n})  (relation form)
[ θ_{1} = θ_{2} ]  (equation)
¬φ  (negation)
[ φ_{1} ∧ … ∧ φ_{n} ]  (conjunction)
[ φ_{1} ∨ … ∨ φ_{n} ]  (disjunction)
∃v . φ  (existentialization)
∀v . φ  (generalization)

where v is a variable from 𝔙, c is a constant, f a n–ary function symbol, R a n–ary relation symbol, the θ_{1}, …, θ_{n} are terms and the φ, φ_{1}, …, φ_{n} are formulas, and all expressions are well–typed in the usual sense. To actually achieve this necessary type consistency, we add a function cosy to the simultaneous introduction of terms and formulas, which returns a codomain symbol

cosy (θ)

i.e. one of the given carrier class symbol of 𝔖, for each term θ.

12.2.4 Examples of terms and formulas

Let us consider our earlier example signature 𝔖 and the typed variable set 𝔙, where

      𝔖 = ( \begin{matrix}C, D \\ c : C \\ d : D \\ f : C ⟶ C \\ g : C × C ⟶ D \\ R : C ↭ D \\ S : C ↭ C ↭ D \end{matrix} ) and 𝔙 := ( \begin{matrix}x : C \\ y : C \\ z : C \\ u : D \\ v : D \\ w : D \end{matrix} )

Example terms and formulas of this extended signature 𝔖 † 𝔙 are:

(1) Each variable is a term and its codomain symbol is the one assigned by 𝔙. For example, y is a term with cosy (y) = C and u is a term with cosy (u) = D.

(2) The constant c is a term with codomain symbol cosy (c) = C and the constant d is another term with cosy (d) = D.

(3) The application g(c, y) is a well–defined term, because cosy (c) = C and cosy (y) = C and g : C × C ⟶ D. Thus, the codomain symbol of g(c, y) itself is D. That again makes the application f(g(c, y)) a well–defined term, because f : C ⟶ C, and its codomain symbol is C, too.

(4) The relation form R(f(c), u) is a well–defined formula, because R : C ↭ D, cosy (f(c)) = C and cosy (u) = D.

(5) The equation [ g(c, y) = f(c) ] is a well–defined formula, because its two terms g(c, y) and f(c) are well–defined.

(6) A well–defined conditional term is

if [ x = c ] then d else g(x, x)

and D is its codomain symbol. In general, the codomain symbol of a conditional

if φ then θ_{1} else θ_{2}

is the same as cosy (θ_{1}), which must be identical to cosy (θ_{1}) by definition. For that reason, “if [ x = c ] then x else u” is not a correct term.

(7) The description

the x with R(c, g(x, x))

is a well–defined term with the codomain symbol identical to the type of x, i.e. C.

(8) Finally, an example of a more complex formula on the given 𝔖 † 𝔙 is

∀x . ∃u . [ S(x, x, u) ∧ [ g(x, x) = u ] ∧ ¬R(c, u) ]

12.3 Interpretations of terms and formulas

12.3.1

An interpretation ℑ assigns a structure 𝔄 to a signature 𝔖. But if 𝔖 † 𝔙 is an extended signature, ℑ also provides a semantic for the terms and formulas of 𝔖 † 𝔙. More precisely:

(1) If θ is a term, ℑ defines both a codomain

cod (θ)

and a value

ℑ(θ) ∈ cod (θ)

for θ.

(2) If φ is a formula, then either

ℑ ⊧ φ i.e. “φ is true in ℑ” or
ℑ |̸= φ i.e. “φ is false in ℑ”

Actually, the semantics is more quite complicated in general, as we will see later on. But it holds at least for most of the closed terms and formulas.

12.3.2 Example interpretations of closed terms and formulas

Again, let us consider the extended signature 𝔖 † 𝔙 with

                                                                             𝔖 = ( \begin{matrix}C, D \\ c : C \\ d : D \\ f : C ⟶ C \\ g : C × C ⟶ D \\ R : C ↭ D \\ S : C ↭ C ↭ D \end{matrix} ) and 𝔙 := ( \begin{matrix}x : C \\ y : C \\ z : C \\ u : D \\ v : D \\ w : D \end{matrix} )

and the interpretation for 𝔖 from example 12.1.7

ℑ := [ \begin{matrix}C ↦ & \{1, 2\} \\ D ↦ & \{1, 2, 3, 4\} \\ c ↦ & 1 \\ d ↦ & 4 \\ f ↦ & [ \begin{matrix}\{1, 2\} ⟶ \{1, 2\} \\ x ↦ 3 − x \end{matrix} ] \\ g ↦ & [ \begin{matrix}\{1, 2\} × \{1, 2\} ⟶ \{1, 2, 3, 4\} \\ ⟨x, y⟩ ↦ x + y \end{matrix} ] \\ R ↦ & [ \begin{matrix}\{1, 2\} ↭ \{1, 2, 3, 4\} \\ ⟨x, y⟩ ↝ x ≤ y \end{matrix} ] \\ S ↦ & [ \begin{matrix}\{1, 2\} ↭ \{1, 2\} ↭ \{1, 2, 3, 4\} \\ ⟨x, y, z⟩ ↝ x + y = z \end{matrix} ] \end{matrix} ]

ℑ turns the signature 𝔖 into a structure 𝔄, namely

𝔄 = ⟨C^{ℑ}, D^{ℑ}, c^{ℑ}, d^{ℑ}, f^{ℑ}, g^{ℑ}, R^{ℑ}, S^{ℑ}⟩

with C^{ℑ} = {1, 2}, c^{ℑ} = 1 etc. ℑ however defines not only an interpretation for the symbols of the signature, but also works on the terms and formulas of 𝔖 † 𝔙. For example:

(1) Let θ be the (well–defined) term g(c, f(c)) with codomain symbol D. Applying the interpretation ℑ the term now has

(i) a codomain

cod(θ) = D^{ℑ} = {1, 2, 3, 4}

(ii) a value ℑ(θ) ∈ cod(θ), which is the result of applying ℑ to all the basic parts of the term, i.e.

ℑ(θ) := g^{ℑ}(c^{ℑ}, f^{ℑ}(c^{ℑ})) = g^{ℑ}(1, f^{ℑ}(1)) = g^{ℑ}(1, 2) = 3

(2) Let φ be the formula

[ R(c, d) ∨ [ c = d ] ]

This formula φ is either true or false under the interpretation of ℑ. In fact,

φ is true in ℑ  iff R^{ℑ}(c^{ℑ}, d^{ℑ}) or c^{ℑ} = d^{ℑ}

Now, R^{ℑ}(c^{ℑ}, d^{ℑ}) is R^{ℑ}(1, 4), which is true. And c^{ℑ} = d^{ℑ} means that 1 = 4, and that is false. Thus

R^{ℑ}(c^{ℑ}, d^{ℑ}) or c^{ℑ} = d^{ℑ}

alltogether is true. In other words,

ℑ ⊧ φ

indeed for the given ℑ and φ.

(3) Yet another formula on 𝔖 † 𝔙 is given by

∀x . R(x, d)

which is true in ℑ iff

R^{ℑ}(x, d) for all x ∈ cod (x) = {1, 2}

which is true iff

1 ≤ 4 and 2 ≤ 4

Thus alltogether, the formula is true in ℑ,

ℑ ⊧ ∀x . R(x, d)

The examples so far were examples of closed terms and formulas.

12.3.3 Example interpretations of open terms and formulas

What about the interpretation of non–closed, i.e. open expressions. What about terms and formulas with free variables?

(1) Given our standard example extended signature 𝔖 † 𝔙 from 12.3.2, the following is the well–defined term:

                           g(c, x)

What does it “mean” under the interpretation of ℑ? For its components g and c, the ℑ–values were given by

g^{ℑ} = [ \begin{matrix}\{1, 2\} × \{1, 2\} ⟶ \{1, 2, 3, 4\} \\ ⟨x, y⟩ ↦ x + y \end{matrix} ]  and  c^{ℑ} = 1

The codomain of g^{ℑ} is D^{ℑ} = {1, 2, 3, 4}, so ℑ(g(c, x)) should be a member of {1, 2, 3, 4}. The variable x has codomain symbol C, which turns into C^{ℑ} = {1, 2}, so that x must have the value 1 or 2. ( ; 𝅝 ; ) If x = 1 then g^{ℑ}(c^{ℑ}, x) = g^{ℑ}(1, 1) = 2.

( ; 𝅝 ; ) If x = 2 then g^{ℑ}(c^{ℑ}, x) = g^{ℑ}(1, 2) = 3.

Different valuations of x produce different values for g^{ℑ}(c^{ℑ}, x), hence g^{ℑ}(c^{ℑ}, x) itself is not a value.

(2) The situation is similar for open formulas such as

R(f(c), u)

The codomain symbol of u is D, so the codomain of u is D^{ℑ} = {1, 2, 3, 4}. For a possible ℑ–interpretation of the given term we obtain

R^{ℑ}(f^{ℑ}(c^{ℑ}), u) iff R^{ℑ}(f^{ℑ}(1), u)
iff R^{ℑ}(2, u)
iff 2 ≤ u

But “2 ≤ u” is neither true nor false. It depends on the choice of u ∈ {1, 2, 3, 4}.

12.3.4 Making open expressions meaningless

Let us repeat the initial idea from 12.3.1: Given an extended signature 𝔖†𝔙 and an interpretation ℑ for 𝔖. Under this interpretation

(1) terms θ should turn into values, i.e. elements of the well–defined codomain of θ, and

(2) formulas φ become statements which are either true or false.

But this approach only seems to work for closed terms and formulas, without free variables.^{5} One strategy to overcome this dilemma in semantics is the restriction of meanings to closed expressions only. Open expressions then just don’t make sense.

12.3.5 Open expressions as schematic operators

In the sequel, we will develop a different strategy and reject the initial idea alltogether. In our approach:

(1) Interpreted terms (i.e. terms θ in the context of an interpretation ℑ) are not values (i.e. members of the given carrier classes), but schematic functions. A closed term is just a special case of a function on the empty product.

(2) Interpreted formulas (i.e. formulas φ under a given interpretation ℑ) are no truth values in general, but schematic relations. A closed formula is then a special case of a schematic relation with an empty schema.

But before we can unfold this program, we need to introduce the concept of a schematic operator, which is a proper generalization of the earlier ordinary operator.

12.4 Schematic functions and relations

12.4.1 Introduction

Schematic operators are a generalization of the ordinary operators from 12.1.2. ( ; 𝅝 ; ) A schematic function has many similarities with polynomials. An important higher–order operation on schematic function is the coapplication.

( ; 𝅝 ; ) A schematic relation is a proper generalization of the ordinary relation. Higher–order operators on certain classes of schematic relations alltogether constitute an important structure, called theory algebra. All this was thoroughly introduced in a previous text^{6}, but we will provide a brief sketch here.

7

5 Even for closed expressions, this is not entirely correct, since we allowed descriptions as part of our term concept. A closed terms such as “the x with R(x, d)” under our standard interpretation turns into “the x ∈ {1, 2} with x ≤ 4”, which is not a well–determined value. On the other hand, not all open expressions need to be under–determined. For example, take R(x, d), where R^{ℑ}(x, d^{ℑ}) iff x ≤ 4, and that is always true for all x ∈ {1, 2}. For this open formula R(x, d) one could say that it is a true statement under ℑ.

6Theory algebras on relations, currently version 1.0 with 178 pages, freely available on www.bucephalus.org

7*** recommend the intro to TheoAlgRel here ***

12.4.2 Tuples and records

A tuple x = ⟨x_{1}, …, x_{n}⟩ can be re–defined as a surjective function

x : {1, …, n} ⟶ {x_{1}, …, x_{n}}

with

x(i) := x_{i} for each i ∈ {1, …, n}

also written

[ \begin{matrix}1 & ↦ & x_{1} \\ ⋮ & & ⋮ \\ n & ↦ & x_{n} \end{matrix} ]

If we allow not only (ordinal) sets {1, …, n} but any identifier^{8} set {i_{1}, …, i_{n}} as index set, we call this a (finite) record and

[ \begin{matrix}i_{1} & ↦ & x_{n} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & x_{n} \end{matrix} ]

is a convenient notation. More general though is the notation

[i ↦ x(i)|i ∈ I]  or simply  [x_{i}|i ∈ I]

for a record x, where I is any domain of identifiers and x_{i} the value for x at i. Put mathematically, a record x = [x_{i}|i ∈ I] is a surjective function x : I ⟶ {x_{i} | i ∈ I}. A tuple then is just a special record and can be re–defined by

⟨x_{1}, …, x_{n}⟩ := [ \begin{matrix}1 & ↦ & x_{1} \\ ⋮ & & ⋮ \\ n & ↦ & x_{n} \end{matrix} ]

12.4.3 Operations on records

Two records ξ = [ξ_{i}|i ∈ I] and υ = [υ|j ∈ J] are called compatible, if

ξ_{k} = υ_{k} for all k ∈ (I ∩ J)

and in that case, their join is

ξ ∨ υ := [ζ_{k}|k ∈ (I ∪ J)]  with  ζ_{k} := \begin{cases}ξ_{k} & if k ∈ I \\ υ_{k} & else \end{cases}

For example, if

ξ = [\begin{matrix}a ↦ & 3 \\ d ↦ & 9 \\ e ↦ & 11 \end{matrix}]  and  υ = [\begin{matrix}a ↦ & 3 \\ b ↦ & 5 \\ c ↦ & 7 \\ d ↦ & 9 \end{matrix}]

are compatible and their join is

ξ ∨ υ = [\begin{matrix}a ↦ & 3 \\ b ↦ & 5 \\ c ↦ & 7 \\ d ↦ & 9 \\ e ↦ & 11 \end{matrix}]

12.4.4 Schemas and their products A schema X = [X_{i}|i ∈ I] now is a record, where every value X_{i} is a class. A simple example schema is

              X = [ \begin{matrix}drink ↦ & \{water, wine\} \\ meal ↦ & \{lasagne, paella\} \\ dessert ↦ & \{pudding\} \end{matrix} ]

Accordingly, an ordinal schema is a schema

⟨X_{1}, …, X_{n}⟩ = [ \begin{matrix}1 & ↦ & X_{1} \\ ⋮ & & ⋮ \\ n & ↦ & X_{n} \end{matrix} ] = [X_{i}|i ∈ \{1, …, n\}]

The cartesian product ⊗X of a schema X = [X_{i}|i ∈ I] is a class of all the records ξ = [ξ_{i}|i ∈ I], where for each index i ∈ I the value ξ_{i} is a member of X_{i}. The cartesian product ⊗X of our previous example schema X has four members, namely

                   [ \begin{matrix}drink ↦ & water \\ meal ↦ & lasagne \\ dessert ↦ & pudding \end{matrix} ]  [ \begin{matrix}drink ↦ & wine \\ meal ↦ & lasagne \\ dessert ↦ & pudding \end{matrix} ]

                   [ \begin{matrix}drink ↦ & water \\ meal ↦ & paella \\ dessert ↦ & pudding \end{matrix} ]  [ \begin{matrix}drink ↦ & wine \\ meal ↦ & paella \\ dessert ↦ & pudding \end{matrix} ]

If X = ⟨X_{1}, …, X_{n}⟩ is an ordinary schema, its cartesian product is the well–known ordinary X_{1} × … × X_{n}, the members are the tuples ⟨x_{1}, …, x_{n}⟩ with x_{i} ∈ X_{i}.

12.4.5 schematic functions and relations

For ordinary operators the domain is an ordinary cartesian product D_{n} × … × D_{n}. A schematic operator is a generalization in the sense that the domain may be the cartesian product ⊗X of an arbitrary schema X. In 12.1.2 we distinguished three kinds of ordinary operators: constants, n–ary functions and n–ary relations. For each of those notions there is a “schematic” generalization. However, constants as being nullary functions with domain {⟨⟩} are “schematic” operators already. The empty tuple ⟨⟩ is the one and only record with an empty domain, so “empty tuple”, “empty record” and “empty schema” are synonyms.

12.4.6 Definition schematic functions

A schematic function is a function

f : ⊗X ⟶ C

where X = [X_{i}|i ∈ I] is an arbitrary schema.

As usual for all functions, we have dom (f) = ⊗X the domain of f cod (f) = C the codomain of f

Additionally we define x (f) := X the schema of f @ (f) := I the attribute or index class of f

12.4.7 Example polynomials are schematic functions

A polynomial, e.g. the polynomial f in two integer variables x, y, defined by

                      f := 5+xy^{2} -7x^{4}

8We don’t need to define identifiers here. Just think of them as simple, easily comparable items, like strings or numerals. is a function that has possible valuations for x and y as arguments and returns the according integer as a result. In our terminology, each such valuation is a record

ξ ∈ ⊗ [ \begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \end{matrix} ]  for example  ξ = [ \begin{matrix}x ↦ & -1 \\ y ↦ & 2 \end{matrix} ]

the application of f on this ξ is

f (ξ) = 5 + (-1) · 2^{2} − 7 · (-1)^{4} = -6

and f itself is a (non–ordinary) schematic function, namely

f = [ \begin{matrix}⊗ [ \begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \end{matrix} ] ⟶ ℤ \\ ξ ↦ 5 + ξx · ξy^{2} − 7 · ξx^{4} \end{matrix} ]

12.4.8 Definition coapplication

Given a tuple f = ⟨f_{1}, …, f_{n}⟩ of n schematic functions

f_{1} : ⊗Y_{1} ⟶ D_{1} , …, f_{n} : ⊗Y_{n} ⟶ D_{n}

such that the domain schemas

Y_{1} = [Y_{1,i}|i ∈ I_{1}] , …, Y_{n} = [Y_{n,i}|i ∈ I_{n}]

are (pairwise) compatible with

Y := Y_{1} ∨ … ∨ Y_{n}

For every function function

g : D_{1} × … × D_{n} ⟶ C

we define

g • f := [ \begin{matrix}⊗Y ⟶ C \\ ξ ↦ g (f_{1} (pr (ξ, I_{1})) , …, f_{n} (pr (ξ, I_{n}))) \end{matrix} ]

the coapplication of g on f.

12.4.9 Example coapplications on polynomials

Given two polynomials in integer variables

                      \begin{aligned}f_{1} & := & 5+xy^{2} -7x^{4} \\ f_{2} & := & 3x+2xz+2x^{4} \end{aligned}

i.e. we have two schematic functions

f_{1} : ⊗ [\begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \end{matrix}] ⟶ ℤ  and  f_{2} : ⊗ [\begin{matrix}x ↦ & ℤ \\ z ↦ & ℤ \end{matrix}] ⟶ ℤ

Their addition is a new polynomial

           f_{1} + f_{2} = (5+xy^{2} -7x^{4}) + (3x+2xz+2x^{4})

More precisely

f_{1} + f_{2} = [ \begin{matrix}⊗ [\begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \\ z ↦ & ℤ \end{matrix}] ⟶ ℤ \\ ξ ↦ (5 + ξx · ξy^{2} − 7ξx^{4}) · (3ξx + 2ξxξz + 2ξx^{4}) \end{matrix} ]

And that is in fact the coapplication of ◯ 1 + ◯ 2 on ⟨f, f_{2}⟩, i.e.

f_{1} + f_{2} = (◯ 1 + ◯ 2 ) • ⟨f, f_{2}⟩

Similarly, the polynomial multiplication is a coapplication

\begin{aligned}f_{1} · f_{2} & = & (5 + xy^{2} − 7x^{4}) · (3x + 2xz + 2x^{4}) \\ & = & (◯ 1 · ◯ 2 ) • ⟨f, f_{2}⟩ \end{aligned}

12.4.10

For example, if X is our previous simple schema, a schematic function with schema X is given by

price := [ \begin{matrix}⊗X ⟶ ℕ \\ ξ ↦ \begin{cases}13 & if ξ(drink) = water \\ 15 & if ξ(drink) = wine \end{cases} \end{matrix} ]

An application of price to one of its four arguments is the given by

                                                                                   price([ \begin{matrix}drink ↦ & water \\ meal ↦ & lasagne \\ dessert ↦ & pudding \end{matrix} ]) = 13

*** CONTINUE HERE ***Another example is

costs := [ \begin{matrix}⊗X ⟶ ℕ \\ ξ ↦ \begin{cases}4 & if ξ(drink) = water \\ 5 & if ξ(drink) = wine \end{cases} \end{matrix} ]

*** CONTINUE HERE ***

                                                                                   profit := [ \begin{matrix}⊗ [ \begin{matrix}expenses ↦ & ℕ \\ revenues ↦ & ℕ \end{matrix} ] \\ [ \begin{matrix}expenses ↦ & x \\ revenues ↦ & y \end{matrix} ] ↦ y − x \end{matrix} ]

*** CONTINUE HERE ***

12.4.11 schematic relations

Let X = [X_{i}|i ∈ I] be a proper schema. Then

𝔓𝔏 (X) = ⟨Prel (X) , I, ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂, Id⟩

is the predicate logical (theory) algebra (of relations) on X.

*** explain that ***

12.4.12

Given two schemas X = [X_{i}|i ∈ I] and Y = [Y_{j}|j ∈ J], which are compatible (i.e. X_{k} = Y_{k} for all k ∈ I ∩ J). Also given two relations R = [X, Γ] and S = [Y, Σ] which are compatible (by definition, because their schemas are). Furthermore, let i ∈ I. Then

( ; 𝅝 ; ) ⊥ = [ \begin{matrix}⟨⟩ \\ ∅ \end{matrix} ]

( ; 𝅝 ; ) ⊤ = [ \begin{matrix}⟨⟩ \\ \{⟨⟩\} \end{matrix} ]

( ; 𝅝 ; ) R ⊓ S = [ \begin{matrix}X ∨ Y \\ ξ ↝ pr (ξ, I) ∈ Γ and pr (ξ, J) ∈ Σ \end{matrix} ]

( ; 𝅝 ; ) R ⊔ S = [ \begin{matrix}X ∨ Y \\ ξ ↝ pr (ξ, I) ∈ Γ or pr (ξ, J) ∈ Σ \end{matrix} ]

( ; 𝅝 ; ) ¬R = [ \begin{matrix}X \\ ξ ↦ ξ ∉ Γ \end{matrix} ]

( ; 𝅝 ; ) R↾ i = [ \begin{matrix}pr & (X, I \ \{i\}) \\ ξ ↝ ∀x ∈ X_{i} . ξ ˙∨ [ i ↦ x] ∈ Γ \end{matrix} ]

( ; 𝅝 ; ) R⇂ i = [ \begin{matrix}pr & (X, I \ \{i\}) \\ ξ ↝ ∃x ∈ X_{i} . ξ ˙∨ [ i ↦ x] ∈ Γ \end{matrix} ]

( ; 𝅝 ; ) Id_{X} = [ \begin{matrix}X \\ ξ ↝ ∀i, j ∈ I . ξ_{i} = ξ_{j} \end{matrix} ]

*** Also introduce: translations and coapplications R • ⟨f_{1}, …, f_{n}⟩ ***

12.5 The interpretation of terms and formulas

12.5.1 the interpretation of expressions

Given an extended signatures 𝔖 † 𝔙 and an interpretation ℑ of 𝔖.

(1) For every term θ ∈ Term (𝔖 † 𝔙) we define the schematic function of θ, written

xfun (θ)

(2) For every formula φ ∈ Form (𝔖 † 𝔙) we define the schematic relation of φ, written

xrel (φ)

Because these definitions depend on the context of 𝔖 † 𝔙 and ℑ, we should write

xfun_{𝔖†𝔙}^{ℑ}(θ)  and  xrel_{𝔖†𝔙}^{ℑ}(φ)

instead of xfun (θ) and xrel (φ), to be precise. But we consider the given extended signature and interpretation as fixed in the sequel and prefer the short notations for these and other notations we are about to introduce here.

12.5.2 the schematic function of a terms

For every term θ ∈ Term (𝔖 † 𝔙) we define

( ; 𝅗𝅥 ; ) fvx (θ) the free variable schema *** CONTINUE

HERE ***

( ; 𝅗𝅥 ; ) dom (θ) := ⊗dom (θ) the domain *** CONTINUE

HERE *** ( ; 𝅗𝅥 ; ) cod (θ) the codomain *** CONTINUE HERE *** ( ; 𝅗𝅥 ; ) xfun (θ) : dom (θ) ⟶ cod (θ) *** CONTINUE

HERE ***

12.5.3 example

*** CONTINUE HERE ***

12.5.4 interpretation of formulas

For every term φ ∈ Form (𝔖 † 𝔙) we define

( ; 𝅗𝅥 ; ) fvx (φ) the free variable schema *** CONTINUE

HERE ***

( ; 𝅗𝅥 ; ) dom (φ) := ⊗dom (φ) the domain *** CONTINUE

HERE *** ( ; 𝅗𝅥 ; ) xrel (φ) : Rel (fvx (φ)) *** CONTINUE HERE

***

12.5.5 example

*** CONTINUE HERE ***

*** CONTINUE HERE ***

12.5.6

For every θ ∈ Term (𝔖 † 𝔙) we define:

( ; 𝅝 ; ) the codomain of θ by

cod (θ) := C^{ℑ}  where  C = cosy (θ)

( ; 𝅝 ; ) the schema of θ by

x (θ) := [ \begin{matrix}x_{1} & ↦ & D_{1}^{ℑ} \\ ⋮ & & ⋮ \\ x_{n} & ↦ & D_{n}^{ℑ} \end{matrix} ]

where

{x_{1}, …, x_{n}} is the set of free variables in θ

with

x_{1} : D_{1}, …, x_{n} : D_{n}

( ; 𝅝 ; ) The domain of θ is then defined by

dom (θ) := ⊗x (θ)

For every φ *** CONTINUE HERE ***

12.5.7

For every θ ∈ Term (𝔖 † 𝔙) we define

cod (θ) the codomain of θ

as follows:

(1) If θ = v is a variable and v : D in 𝔖 then

cod (θ) = D^{ℑ}

(2) If θ = c is a constant and c : C in 𝔖 then

cod (θ) = C^{ℑ}

(3) If θ = f (θ_{1}, …, θ_{n}) is an application and f : D_{1} × … × D_{n} ⟶ C in 𝔖 then

cod (θ) = C^{ℑ}

(4) If θ = (if φ then θ_{1} else θ_{2}) is a conditional then

cod (θ) = cod (θ_{1}) = cod (θ_{2})

(5) If θ = the v with φ is a description and v : D in 𝔖 then

cod (θ) = D^{ℑ}

12.5.8

For every θ ∈ Term (𝔖 † 𝔙) we define

xfun (θ) : dom (θ) −−→ cod (θ)

the schematic function of θ as follows:

(1) If θ = v is a variable and v : D in 𝔖 then

xfun (θ) = [ \begin{matrix}⊗[ v ↦ D^{ℑ} ] ⟶ D^{ℑ} \\ ξ ↦ ξv \end{matrix} ]

(2) If θ = c is a constant

xfun (θ) = c^{ℑ}

(3) If θ = f (θ_{1}, …, θ_{n}) is an application

xfun (θ) = f^{ℑ} • ⟨xfun (θ_{1}) , …, xfun (θ_{n})⟩

(4) If θ = (if φ then θ_{1} else θ_{2}) is a conditional

*** first version ***

xfun (θ) = switch_{cod(θ)} • ⟨χ_{xrel(φ)}, xfun (θ_{1}) , xfun (θ_{2})⟩

where for each class S

switch_{S} := [ \begin{matrix}𝔹 × S × S ⟶ S \\ ⟨β, a, b⟩ ↦ \begin{cases}a & if β = 1 \\ b & if β = 0 \end{cases} \end{matrix} ]

*** second version ***

xfun (θ) = xfun (((R ⊓ T_{1}) ⊔ (¬R ⊓ T_{2})), j)

where j is an arbitrary identifier with j ∉ Fvar (θ) and R = xrel (φ) and

T_{1} = xrel (xfun (θ_{1}) , j) and T_{2} = xrel (xfun (θ_{2}) , j)

(5) If θ = the v with φ is a description

xfun (θ) = xfun (xrel (φ) , v)

12.5.9

For every φ ∈ Form (𝔖 † 𝔙) we define

xrel (φ) : Rel (xφ)

the schematic relation of φ as follows:

(1) If φ = R(θ_{1}, …, θ_{n}) is a relation form then

xrel (φ) = R^{ℑ} • ⟨xfun (θ_{1}) , …, xfun (θ_{n})⟩

(2) If φ = [ θ_{1} = θ_{2} ] is an equation then

xrel (φ) = Id_{⟨cod(θ1),cod(θ2)⟩} • ⟨xfun (θ_{1}) , xfun (θ_{2})⟩

(3) If φ = ¬ψ then

xrel (φ) = ¬xrel (ψ)

(4) If φ = [ φ_{1} ∧ … ∧ φ_{n} ] then

xrel (φ) = xrel (φ_{1}) ⊓ … ⊓ xrel (φ_{n})

(5) If φ = [ φ_{1} ∨ … ∨ φ_{n} ] then

xrel (φ) = xrel (φ_{1}) ⊔ … ⊔ xrel (φ_{n})

(6) If φ = ∃v . ψ then

xrel (φ) = xrel (ψ)⇂ v

(7) If φ = ∀v . ψ then

xrel (φ) = xrel (ψ)↾ v

Plain theory algebras

Conventions In the sequel, let ( ; 𝅝 ; ) I be an arbitrary index class

( ; 𝅝 ; ) D is a non–empty class of values We define ( ; 𝅝 ; ) X := [D|I] the constant D–value schema on I

\underline{Defintion} The plain extended relation algebra on (index class) I and (value class) D is

ℜ𝔢𝔩 (I, D) := ⟨Rel (I, D) , ⊆, ⊥_{[D|I]}, ⊤_{[D|I]}, ∩, ∪, ∁⟩

where

\begin{aligned}ℜ𝔢𝔩 (I, D) & := & Rel ([D|I]) \\ & = & \{ [\begin{matrix}[I|D] \\ Γ \end{matrix}] Γ ⊆ ⊗[I|D] \} \end{aligned}

\underline{Definition} The plain projection relation algebra on (index class) I and (value class) D is

𝔓𝔯𝔢𝔩 (I, D) := ⟨Prel (I, D) , I, ⊑, ≡, ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂, Id⟩

where

Prel (I, D) := Prel ([D|I])
= \{ [\begin{matrix}Y \\ Γ \end{matrix}] Y = [Y_{j}|j ∈ J] with J ⊆ I and Y_{j} = D for all j ∈ J Γ ⊆ ⊗Y \}

\underline{Definition} For every R ⊆ Rel (I, D) we define

Rel[ R] := ∗ ∗ ∗CONTINUEHERE ∗ ∗∗

the Rel–closure (class) of R

ℜ𝔢𝔩[ R] := ⟨Rel[ R], ⊆, ⊥_{[D|I]}, ⊤_{[D|I]}, ∩, ∪, ∁⟩

the ℜ𝔢𝔩–closure (structure) of R

\underline{Definition} For every R ⊆ Prel (I, D) we define

Prel[ R] := ∗ ∗ ∗CONTINUEHERE ∗ ∗∗

the Prel–closure (class) of R

𝔓𝔯𝔢𝔩[ R] := ⟨Prel[ R], ⊑, ≡, ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂⟩

the 𝔓𝔯𝔢𝔩–closure (structure) of R

\underline{Definition} A boolean algebra of relations (on I and D) is a structure

⟨R, ⊆, ⊥_{[D|I]}, ⊤_{[D|I]}, ∩, ∪, ∁⟩

where

R = Rel[ R]

\underline{Definition} A theory algebra of relations (on I and D) is a structure

⟨R, ⊑, ≡, ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂⟩

where

R = Prel[ R]

The theory–algebraic approach to (plain) first–order predicate logic

The restriction to “plain logic”

In the text we provide a rich version of first–order predicate logic in the sense that ( ; 𝅝 ; ) we include the identity ( ; 𝅝 ; ) we allow multiple carriers ( ; 𝅝 ; ) we use descriptions and conditional expressions However, in the sequel, we only consider plain logic, i.e. single– carrier relational first–order predicate logic with finitely many operators and finite many variables and standard symbols.

Standard symbols for plain logic We define ( ; 𝅝 ; ) C is standard carrier symbol for plain logic

( ; 𝅝 ; ) R1 , R2 , R3 , R4 , …

are the standard relation symbols for plain logic.

For the first three symbols we also write

                                                                                      R for R1     S for R2     T for R3

And for each positive integer i we write

R_{i} for the Ri, where i is the symbols for i

( ; 𝅝 ; ) x1 , x2 , x3 , x4 , …

are the standard variables for plain logic. For the first three symbols we also write

                                                                                      x for x1     y for x2     z for x3

And for each positive integer i we write

x_{i} for the xi, where i is the symbols for i

Syntax of plain logic

( ; 𝅝 ; ) An arity tuple (for plain logic) is a tuple

a = ⟨a_{1}, …, a_{n}⟩ ∈ ℕ^{∗}

We also write

a(i) for a_{i}

as usual for tuples. ( ; 𝅝 ; ) For every arity tuple a = ⟨a_{1}, …, a_{n}⟩ we define

𝔖_{(a1,...,an)} := ( \begin{matrix}C \\ R_{1} : \underbrace{C ↭ … ↭ C}_{a(1)–times} \\ ⋮ & ⋮ \\ R_{n} : \underbrace{C ↭ … ↭ C}_{a(n)–times} \end{matrix} )

the the (standard) plain signature of arity ⟨a_{1}, …, a_{n}⟩. For example

𝔖_{(2,3)} = ( \begin{matrix}C \\ R : C ↭ C \\ S : C ↭ C ↭ C \end{matrix} )

( ; 𝅝 ; ) For every m ∈ ℕ we define

𝔙_{m} := ( x_{1} : C ; ⋮ ; x_{m} : C )

is the the standard set of m variables. For example

𝔙_{2} = ( \begin{matrix}x : C \\ y : C \end{matrix} )

( ; 𝅝 ; ) For every arity tuple a = ⟨a_{1}, …, a_{n}⟩ and each m ∈ ℕ

𝔖_{a} † 𝔙_{m}  is the (standard) plain extended signature

and

Form (𝔖_{a} † 𝔙_{m})  the (standard) plain formula class

is made of the following expressions

\begin{matrix}R_{i} (x_{1}, …, x_{a(i)})  [ x=y ]  ∃x . φ  ∀x . φ \\ ¬φ  [ φ_{1} ∧ … ∧ φ_{k} ]  [ φ_{1} ∨ … ∨ φ_{k} ] \end{matrix}

for each R_{i} ∈ {R_{1}, …, R_{n}}, all x, x_{1}, …, x_{a(i)} ∈ {x_{1}, …, x_{m}} and φ_{1}, …, φ_{k}, φ ∈ Form (𝔖_{a} † 𝔙_{m}).

( ; 𝅝 ; ) A plain proto–theory is given by

𝔗 = ⟨𝔖_{a}, 𝔙_{m}, Ax⟩

where 𝔖_{a} †𝔙_{m} is a plain extended signature and Ax is a finite set of closed formulas of 𝔖_{a} † 𝔙_{m}.

Semantics of plain logic Given a plain extended signature 𝔖_{a} † 𝔙_{m}. An interpretation ℑ for 𝔖_{a} is given by

ℑ = [ \begin{matrix}C & ↦ & C^{ℑ} \\ R_{1} & ↦ & R_{1}^{ℑ} \\ ⋮ & & ⋮ \\ R_{n} & ↦ & R_{n}^{ℑ} \end{matrix} ]

where C^{ℑ} is a (non–empty) class and R_{i}^{ℑ} an a (i)–ary relation on C^{ℑ} for each i ∈ {1, …, n}. ℑ induces a schema

X_{m}^{ℑ} := [ \begin{matrix}x_{1} & ↦ & C^{ℑ} \\ ⋮ & & ⋮ \\ x_{m} & ↦ & C^{ℑ} \end{matrix} ]

and a function

xrel^{ℑ} : Form (𝔖_{a} † 𝔙_{m}) ⟶ Prel(X_{m}^{ℑ}) and a class of schematic relations

Xrel (𝔙_{m}, ℑ) := {xrel_{m}^{ℑ}(φ) | φ ∈ Form (𝔖_{a} † 𝔙_{m})}

The embedding lemma Given a plain extended signature 𝔖_{a} † 𝔙_{m} and an interpretation ℑ for 𝔖_{a}. ( ; 𝅝 ; ) For all φ, ψ ∈ Form (𝔖_{a} † 𝔙_{m}) holds

( ; 𝅗𝅥 ; ) φ ⇒ ψ iff xrel^{ℑ}(φ) ⊑ xrel^{ℑ}(ψ) ( ; 𝅗𝅥 ; ) φ ⇒ ψ iff xrel^{ℑ}(φ) ⊑ xrel^{ℑ}(ψ)

( ; 𝅝 ; ) And if φ and ψ have the same free variables, then ( ; 𝅗𝅥 ; ) φ ⇒ ψ iff xrel^{ℑ}(φ) ⊆ xrel^{ℑ}(ψ) ( ; 𝅗𝅥 ; ) φ ⇒ ψ iff xrel^{ℑ}(φ) = xrel^{ℑ}(ψ)

( ; 𝅝 ; ) Furthermore

( ; 𝅗𝅥 ; ) xrel^{ℑ}(R_{i} (x_{1}, …, x_{k})) = tr (R_{i}^{ℑ}, (x_{1}, …, x_{k}))

( ; 𝅗𝅥 ; ) xrel^{ℑ}([ x = y]) = Id_{(x,y)}

( ; 𝅗𝅥 ; ) xrel^{ℑ}(∃x . φ) = xrel^{ℑ}(φ)⇂ x ( ; 𝅗𝅥 ; ) xrel^{ℑ}(∀x . φ) = xrel^{ℑ}(φ)↾ x ( ; 𝅗𝅥 ; ) xrel^{ℑ}(¬φ) = ¬xrel^{ℑ}(φ)

( ; 𝅗𝅥 ; ) xrel^{ℑ}([ φ_{1} ∧ … ∧ φ_{n} ]) = xrel^{ℑ}(φ_{1}) ⊓ … ⊓ xrel^{ℑ}(φ_{n})

( ; 𝅗𝅥 ; ) xrel^{ℑ}([ φ_{1} ∨ … ∨ φ_{n} ]) = xrel^{ℑ}(φ_{1}) ⊔ … ⊔ xrel^{ℑ}(φ_{n})

Propositional logic

Standard atoms for propositional logic The standard atom symbol class (for propositional logic) is

𝔸 := { a1 , a2 , a3 , …}

For the first five standard atom symbols we also write

a for a1, b for a2, c for a3, d for a4, e for a5 And for each positive integer i we write

a_{i} for the ai, where i is the symbols for i

Propositional formulas For each A ⊆ 𝔸 we define

Form (A)  the (propositional) formula class of A

as the expression class comprising

α  ¬φ  [ φ_{1} ∧ … ∧ φ_{n} ]  [ φ_{1} ∨ … ∨ φ_{n} ]

for all α ∈ A and all φ, φ_{1}, …, φ_{n} ∈ Form (A). We also use the following abbreviations:

f for [ φ_{1} ∨ … ∨ φ_{n} ]

t for [ φ_{1} ∧ … ∧ φ_{n} ]

[ φ_{1} → … → φ_{n} ] for ∗ ∗ ∗... ∗ ∗∗
[ φ_{1} ↔ … ↔ φ_{n} ] for ∗ ∗ ∗... ∗ ∗∗

\underline{Definition} For every φ ∈ Form (𝔸) we define

Atf (φ) ⊆ 𝔸 is the atom form class of φ 1

\underline{Definition} A propositional formula φ is said to be ( ; 𝅝 ; ) valid or a tautology, if

*** CONTINUE HERE ***

( ; 𝅝 ; ) satisfiable, if

*** CONTINUE HERE ***

( ; 𝅝 ; ) a contradiction, if

*** CONTINUE HERE ***

◯ 1 ⇒ ◯ 2 is the subvalence
◯ 1 ⇔ ◯ 2 is the equivalence

\underline{Definition} A propositional formula algebra is *** CONTINUE

HERE ***

*** color the symbol and concept definitions *** *** update according to the new 𝔖_{a} † 𝔙_{m} symbolism ***

The finite model construction

\underline{Definition}

( ; 𝅝 ; ) For every plain signature 𝔖 and every set S,

Int (𝔖, S)

denotes the class of all the interpretations of ℑ, where S^{ℑ} = S is the carrier of the resulting structure.

( ; 𝅝 ; ) For every plain proto–theory 𝔗 = ⟨𝔖, 𝔙, Ax⟩ and each set

S,

Mod (𝔗, S)

denotes the class of all the models ℑ for 𝔗 with carrier S^{ℑ} = S.

Para–interpretations Given a plain signature 𝔖 with carrier symbol S, relation symbols {R_{1}, …, R_{n}} and arity function ar. ( ; 𝅝 ; ) A (standard) para–table is a schematic function

T : ⊗Y ⟶ Prop (𝔸)

We define

Atf (T) := {Atf (T (ξ)) | ξ ∈ ⊗Y }

( ; 𝅝 ; ) A (plain) para–interpretation for 𝔖 (on A) is given by

ℑ = [ \begin{matrix}S & ↦ & S \\ R_{1} & ↦ & T_{1} \\ ⋮ & & ⋮ \\ R_{n} & ↦ & T_{n} \end{matrix} ]

where S = {c_{1}, …, c_{l}} is a finite set, the carrier of ℑ, and

T_{i} : S^{ar}^{(R^{i})} ⟶ Form (A) for each i ∈ {1, …, n} i.e. T_{i}(⟨a_{1}, …, a_{ar}_{(R_{i})}⟩) is a propositional formula φ ∈ Form (A) for some given set A of atoms, i.e. identifiers.

( ; 𝅝 ; ) Such an ℑ is called

( ; 𝅗𝅥 ; ) definite, iff T_{i}(a) ∈ {f, t}, for every i ∈ {1, …, n} and

each a ∈ S^{ar}^{(R^{i})}. ( ; 𝅗𝅥 ; ) free, if for all i, j ∈ {1, …, n} and a ∈ S^{ar}^{(R^{i})} and

b ∈ S^{ar}^{(R^{j})}

( ; ♩ ; ) T_{i}(a) ∈ A and

( ; ♩ ; ) T_{i}(a) = T_{j}(b) implies i = j and a = b

( ; 𝅝 ; ) Each definite para–interpretation ℑ represents the plain interpretation int (ℑ) (and vice versa), namely

int (ℑ) = [ \begin{matrix}S & ↦ & S \\ R_{1} & ↦ & R_{1} \\ ⋮ & & ⋮ \\ R_{n} & ↦ & R_{n} \end{matrix} ] where R_{i} := [ \underbrace{S ↭ … ↭ S}_{ar(Ri) –times} a ↝ T_{i}(a) = t ]

( ; 𝅝 ; ) If ℑ is a para–interpretation and ω : A ⟶ 𝔹 is a valuation of A, then val (ℑ, ω) is the definite para—interpretation which is ℑ, where each propositional formula T_{i}(a) is replaced by the definite formula val (T_{(}a), ω).

( ; 𝅝 ; ) If ℑ is a para–interpretation and φ ∈ Form (A) is a proposi-

tional formula on a, then

Int (ℑ, φ) := {int (val (ℑ, ω)) | ω ⊧ φ}

is a subclass of Int (𝔖, S).

The finite model algorithm Given a plain signature 𝔖 and a finite set S. Let I be a free para–interpretation of 𝔖 on a (big enough) atom set A such that S is its carrier class. (ℑ is uniquely determined by 𝔖 and S up to the choice of A and the order these atoms occur in ℑ) Then there is an algorithm

prop_{ℑ} : Form (𝔖 † 𝔙) ⟶ Form (A)

such that Int (ℑ, prop_{ℑ}([ φ_{1} ∧ … ∧ φ_{l} ])) = Mod (𝔗, S)

for every plain proto–theory 𝔗 = ⟨𝔖, 𝔙, {φ_{1}, …, φ_{l}}⟩.

Closures

\underline{Definition} Let X = [X_{i}|i ∈ I] be a proper schema and R ⊆ Prel (X). We say that ( ; 𝅝 ; ) R is semantically closed iff

( ; 𝅗𝅥 ; ) R ≡ ⊥ for some R ∈ R

( ; 𝅗𝅥 ; ) R ≡ ⊤ for some R ∈ R

( ; 𝅗𝅥 ; ) for all R, S ∈ R there is a T ∈ R with R ⊓ S ≡ T ( ; 𝅗𝅥 ; ) for all R, S ∈ R there is a T ∈ R with R ⊓ S ≡ T ( ; 𝅗𝅥 ; ) for each R ∈ R there is a S ∈ R with S ≡ ¬R

( ; 𝅝 ; ) R is semantically completely closed iff ( ; 𝅗𝅥 ; ) R is semantically closed ( ; 𝅗𝅥 ; ) for each S ⊆ R there is a T ∈ R with ∏S ≡ T ( ; 𝅗𝅥 ; ) for each S ⊆ R there is a T ∈ R with ∐S ≡ T

( ; 𝅝 ; ) R is syntactically closed iff

( ; 𝅗𝅥 ; ) R↾ i ∈ R for each R ∈ R and i ∈ @ (R)

( ; 𝅗𝅥 ; ) R⇂ i ∈ R for each R ∈ R and i ∈ @ (R)

( ; 𝅝 ; ) R is syntactically completely closed iff ( ; 𝅗𝅥 ; ) R ⇓ Y ∈ R for each R ∈ R and Y ∈ Proj (X) ( ; 𝅗𝅥 ; ) R ⇑ Y ∈ R for each R ∈ R and Y ∈ Proj (X)

( ; 𝅝 ; ) R is theory–algebraically closed iff ( ; 𝅗𝅥 ; ) R is semantically closed ( ; 𝅗𝅥 ; ) R is syntactically closed

( ; 𝅝 ; ) R is theory–algebraically completely closed iff ( ; 𝅗𝅥 ; ) R is semantically completely closed ( ; 𝅗𝅥 ; ) R is syntactically completely closed

\underline{Definition}

*** CONTINUE HERE ***

sem_{X}[ R] ⊆ Rel (X) the semantic closure of R on X

syn_{X}[ R] the syntactic closure of R on X
thal_{X}[ R] the theory–algebraic closure of R on X

Compact relation classes and algebras

\underline{Definition} A relation R ∈ Prel (X) is called ( ; 𝅝 ; ) singular (as defined in Thalg 17.3.3(5) ), if it has exactly one

attribute ( ; 𝅝 ; ) (pseudo–)cartesian, if it is a finite conjunction of singular

relations, i.e. if its graph is a cartesian product of a finite schema

( ; 𝅝 ; ) compact, if it is a finite disjunction of (pseudo–)cartesian relations

\underline{Examples}

( ; 𝅝 ; ) ◯ 1 ≤ ◯ 2 : ℕ ↭ ℕ is not compact. ( ; 𝅝 ; ) If X is a completely finite schema, then each R ∈ Prel (X)

is compact.

\underline{Theorem}

( ; 𝅝 ; ) The semantic closure of a compact relation class is a compact

relation class. ( ; 𝅝 ; ) The syntactic closure of a compact relation class is a compact

relation class. ( ; 𝅝 ; ) The theory–algebraic closure of a compact relation class is a

compact relation class.

Partitions

\underline{Definition} Let X = [X_{i}|i ∈ I] be a proper schema and R ⊆ Prel (X).

( ; 𝅝 ; ) R is (pairwise) disjunct, if

R ⊓ S ≡ ⊥ for all R, S ∈ R with R ≠ S

( ; 𝅝 ; ) R is a quasi–partition, if ( ; 𝅗𝅥 ; ) R is (pairwise) disjunct and

( ; 𝅗𝅥 ; ) ∐R ≡ ⊤

( ; 𝅝 ; ) R is a partition, if ( ; 𝅗𝅥 ; ) R is (pairwise) disjunct and

( ; 𝅗𝅥 ; ) ∐R ≡ ⊤ and

( ; 𝅗𝅥 ; ) R ≢ ⊥ for all R ∈ R

\underline{Definition} Let X = [X_{i}|i ∈ I] be a proper schema and R, S ⊆ Prel (X). We say that ( ; 𝅝 ; ) R is below S, written

R ≾ S

iff for each R ∈ R there is a S ∈ S with R ⊑ S ( ; 𝅝 ; ) R is a base for S, if for each S ∈ S there is a T ⊆ R with

S = ∐T . ( ; 𝅝 ; ) R is a compact base for S, if for each S ∈ S there is are

R_{1}, …, R_{n} ∈ R with S = R_{1} ⊔ … ⊔ R_{n}.

\underline{Definition} Let X = [X_{i}|i ∈ I] be a schema. We define

Elem (X) := \{ [\begin{matrix}X \\ \{ξ\} \end{matrix}] ξ ∈ ⊗X \}

is the elem(entary relation) class of X

\underline{Lemma} Let X = [X_{i}|i ∈ I] be a proper partition. Then ( ; 𝅝 ; ) Elem (X) is a partition ( ; 𝅝 ; ) Elem (X) is a base for every S ⊆ Prel (X)

( ; 𝅝 ; ) *** CONTINUE HERE ***

\underline{Definition} Let X = [X_{i}|i ∈ I] be a proper schema and R ⊆ Prel (X). We define

bap_{X}(R) the boolean auto–partition of R (on X)

as the result of the following construction:

\begin{aligned}R_{1} & := & \{( ∏_{S∈S}¬S) ⊓ (∏S) | S ⊆ R\} \\ R_{2} & := & \{⋃ S | S ⊆ R_{1}\} \\ R_{3} & := & \{S ∈ R_{2} | S ≢ ⊥\} \\ R_{4} & := & \{(S ∥ X) | S ∈ R_{3}\} \\ bap_{X}(R) & := & R_{4} \end{aligned}

\underline{Theorem} Let X = [X_{i}|i ∈ I] be a proper schema and R ⊆ Prel (X). Then

( ; 𝅝 ; ) bap_{X}(R) ⊆ Rel (X)

( ; 𝅝 ; ) bap_{X}(R) is a partition ( ; 𝅝 ; ) bap_{X}(R) is a base for R ( ; 𝅝 ; ) bap_{X}(R) is a base for sem_{X}[ R]

\underline{Corollary}

card (bap_{X}(R)) ≤ 2^{2card(R)}

\underline{Definition} Let X = [X_{i}|i ∈ I] be a proper schema and R ⊆ Prel (X). We define

thap_{X}(R) the theory–algebraic auto–partition of R (on X)

as the result of the following construction:

R_{1} := ∗ ∗ ∗CONTINUEHERE ∗ ∗∗
thap_{X}(R) := ∗ ∗ ∗CONTINUEHERE ∗ ∗∗

\underline{Theorem} Let X = [X_{i}|i ∈ I] be a proper schema and R ⊆ Prel (X). Then

( ; 𝅝 ; ) thap_{X}(R) ⊆ Rel (X)

( ; 𝅝 ; ) thap_{X}(R) is a partition ( ; 𝅝 ; ) thap_{X}(R) is a base for R ( ; 𝅝 ; ) thap_{X}(R) is a base for thal_{X}[ R]

\underline{Corollary}

card (thap_{X}(R)) ≤ ∗ ∗ ∗??? ∗ ∗∗

Permuted relation classes

\underline{Definition} R ⊆ Prel (I, D) is called permuted, if tr (R, τ) ∈ R for each R ∈ R and every bijection τ : I ⟶ I.

\underline{Theorem} If R is permuted, then there is a partition D of D such that for every E = [X, Γ] ∈ Elem (R) there is exactly one Y ∈ ⊗[D|I] with Γ ⊆ ⊗Y, and vice versa.

Theorem, continued And in case Γ = ⊗Y for some Y ⊆ X, then R is compact, i.e.

*** CONTINUE HERE ***

Misc

\underline{Definition} Let X = [X_{i}|i ∈ I] be a proper schema and R ⊆ Prel (X).

( ; 𝅝 ; ) semC(R) is the semantical complexity, which is the num-

ber of the ≡–equivalence classes of R ( ; 𝅝 ; ) synC(R) is the syntactical complexity, which is the num-

ber of attributes alltogether in R

Cardinality of the semantic space

*** UPDATE THIS WITH THE NEW SYM-BOLISM ***

\underline{Definition} Given a plain extended signature 𝔖 † 𝔙. We define

qpart (𝔖 † 𝔙) := ∗ ∗ ∗CONTINUEHERE ∗ ∗∗
part (𝔖 † 𝔙) := ∗ ∗ ∗CONTINUEHERE ∗ ∗∗

The definitions are such that

xrel^{ℑ}(π) ∈ qpart (Xrel (𝔖 † 𝔙, ℑ))

for each π ∈ qpart (𝔖 † 𝔙)

Theorem and definition For each plain extended signature 𝔖 † 𝔙 there is a

κ(𝔖 † 𝔙) ∈ ℕ

such that

card (part (𝔖 † 𝔙)) ≤ κ(𝔖 † 𝔙)

More general if

PlainSig is the class of all plain signatures

then κ : PlainSig ⟶ ℕ

*** give a precise definition of κ ***

\underline{Definition} For every plain extended signature 𝔖†𝔙 and every interpretation ℑ for 𝔖

Elem (𝔙, ℑ) := Elem (Xrel (𝔙, ℑ))

\underline{Lemma}

Elem (𝔙, ℑ) ⊆ Rel (X_{𝔙}^{ℑ})

\underline{Theorem} For every plain extended signature 𝔖†𝔙 and every interpretation ℑ for 𝔖

card (Elem (𝔙, ℑ)) ≤ κ(𝔖 † 𝔙)

\underline{Theorem} For every plain extended signature 𝔖 † 𝔙 and every interpretation ℑ for 𝔖 with carrier S there is a partition Π of S such that for each E = [X_{𝔙}^{ℑ}, Γ] ∈ Elem (𝔙, ℑ) there is exactly one Y ∈ ⊗[Π|𝔙] such that Γ ⊆ ⊗Y. For this partition Π of S holds

card (Π) ≤ κ(𝔖 † 𝔙)

\underline{Lemma} Given a plain extended signature 𝔖 † 𝔙 and an interpretation ℑ for 𝔖, then ( ; 𝅝 ; ) Xrel (𝔙, ℑ) is finite ( ; 𝅝 ; ) Xrel (𝔙, ℑ) is permuted ( ; 𝅝 ; ) Xrel (𝔙, ℑ) is a closed subclass in 𝔓𝔏 (X_{𝔙}^{ℑ})

Index of interpretation and model classes

\underline{Definition}

( ; 𝅝 ; ) For every plain signature 𝔖 we define

INT (𝔖) the interpretation class of 𝔖

i.e. the class of all the interpretations ℑ for 𝔖. ( ; 𝅝 ; ) For every plain proto–theory 𝔗 = ⟨𝔖, 𝔙, Ax⟩ we define

MOD (𝔖) the model class of 𝔗

i.e. the class of all the interpretations ℑ for 𝔖 with ℑ ⊧ φ for all φ ∈ Ax.

\underline{Defintion} Given a plain signature 𝔖 with carrier symbol S and two interpretations ℑ and 𝔍 for 𝔖. ( ; 𝅝 ; ) ℑ and 𝔍 are isomorph,

ℑ ≅ 𝔍

if there is an isomorphism

f : S^{ℑ} ⟶ S^{𝔍}

such that

R^{ℑ}(x_{1}, …, x_{n}) iff R^{𝔍}(f(x_{1}), …, f(x_{n}))

for each n–ary relation symbol R in 𝔖 and all x_{1}, …, x_{n} ∈ S^{ℑ}. ( ; 𝅝 ; ) ℑ and 𝔍 are (elementary) equivalent of degree m ∈ ℕ,

ℑ ≡_{m} 𝔍

if for all φ ∈ Cform (𝔖 † 𝔙) holds

ℑ ⊧ φ  iff  𝔍 ⊧ φ

where 𝔙 = {v_{1}, …, v_{m}}. ( ; 𝅝 ; ) ℑ and 𝔍 are (elementary) equivalent m ∈ ℕ,

ℑ ≡ 𝔍

if for all φ ∈ Cform (𝔖 † 𝔙) holds

ℑ ⊧ φ  iff  𝔍 ⊧ φ

where 𝔙 = {v_{1}, v_{2}, …} is a standard infinite variable set for 𝔖.

\underline{Lemma} ≡_{m} (for m ∈ ℕ) and ≡ are equivalence relations on INT (𝔖), for each plain signature 𝔖.

\underline{Definition}

ℑ/_{≡m} := {𝔍 ∈ INT (𝔖) | 𝔍 ≡_{m} ℑ}
INT (𝔖) /_{≡m} := {ℑ/_{≡m} | ℑ ∈ INT (𝔖)}

\underline{Lemma} Let 𝔖 † 𝔙 be a plain extended signature with m variables. Then

INT (𝔖) /_{≡m} ≤ 2^{κ𝔖†𝔙}

Block algebra

Conventions In the sequel, let ( ; 𝅝 ; ) I be an arbitrary index class

( ; 𝅝 ; ) D is a non–empty class of values

We define

( ; 𝅝 ; ) X := [D|I] the constant D–value schema on I

\underline{Definition} For every R = [Z, Γ] ∈ Prel (X) with Z = [D|J] and each partition D of D we put A := [D|J] and define

♢R|A := [ \begin{matrix}A \\ Y ↝ ⊗Y ∩ Γ ≠ ∅ \end{matrix} ]

the diamond block relation of R on A

□R|A := [ \begin{matrix}A \\ Y ↝ ⊗Y ⊆ Γ \end{matrix} ]

the box block relation of R on A

*** CONTINUE HERE ***

Block model construction

Standard symbols

( ; 𝅝 ; ) A1 , A2 , A3 , … are the standard (propositional) atom

symbols ( ; 𝅝 ; ) B1 , B2 , B3 , … are the standard block symbols For every n ∈ ℕ ( ; 𝅝 ; ) A (n) := {A1, …, An} is the n standard atom symbol set

( ; 𝅝 ; ) B (n) := {B1, …, Bn} is the n standard block symbol set

Quasi–partitions Given a class C and some n ∈ ℕ. ( ; 𝅝 ; ) A n–block quasi–partition of C is a schema

Π = [ \begin{matrix}B1 & ↦ & Π_{1} \\ ⋮ & & ⋮ \\ Bn & ↦ & Π_{n} \end{matrix} ]

where the Π_{1}, …, Π_{n} are pairwise-disjunct subclasses of C with Π_{1} ∪ … ∪ Π_{n} = C.

( ; 𝅝 ; ) A n–block quasi–partition is called proper, or a n–block partition of C, if each of the Π_{i} is non–empty.

Block symbol valuations A n–block symbol valuation is a function

ω : B (n) ⟶ 𝔹

If Π is a n–block quasi–partition of a given class C, then

ω_{Π} := [ \begin{matrix}B (n) ⟶ 𝔹 \\ B ↦ \begin{cases}0 & if Π(B) = ∅ \\ 1 & if Π(B) ≠ ∅ \end{cases} \end{matrix} ]

*** n–block (quasi)–partition ***

*** n–block valuation ***

*** CONTINUE HERE ***

*** OBSOLETE STUFF ***

Formula and statement algebra Given a plain extended signature 𝔖 † 𝔙. We define, for all φ, ψ ∈ Form (𝔖 † 𝔙),

φ ⇒ ψ iff xrel^{ℑ}(φ) ⊑ xrel^{ℑ}(ψ) for all ℑ ∈ Int (𝔖 † 𝔙)
φ ⇔ ψ iff xrel^{ℑ}(φ) ≡ xrel^{ℑ}(ψ) for all ℑ ∈ Int (𝔖 † 𝔙)

For each φ,

φ/_{⇔} := {ψ | ψ ⇔} is the statement of φ

And the statement algebra (or Lindenbaum algebra) is

𝔖𝔱𝔞𝔱 (𝔖 † 𝔙) := ⟨Form (𝔖 † 𝔙) /_{⇔}, …⟩

*** CONTINUE HERE ***

PredLogInTheoAlgRel 70

Figure 6:

Given an extended signature 𝔖 † 𝔙 and an interpretation ℑ for 𝔖. We define

X_{𝔙}^{ℑ} := [ car_{ℑ}(sort_{𝔙}(v)) v ∈ Var (𝔙) ] the variable schema of 𝔖 † 𝔙 and ℑ We simultaneously define

ti_{𝔙}^{ℑ} := [ \begin{matrix}Term (𝔖 † 𝔙) ⟶ ⊛X_{𝔙}^{ℑ} −−→ ⋃ Car (ℑ) \\ θ ↦ [ \begin{matrix}⊛X_{𝔙}^{ℑ} −−→ ⋃ Car (ℑ) \\ ω ↦ \begin{cases}ω(v) & if θ = v ∈ Var (𝔙) is a variable \\ c^{ℑ} & if θ = c ∈ Osy (𝔖) is a constant \\ f^{ℑ}(ti_{𝔙}^{ℑ}(θ_{1}), …, ti_{𝔙}^{ℑ}(θ_{n})) & if θ = f (θ_{1}, …, θ_{n}) is an application \\ ti_{𝔙}^{ℑ}(θ_{1})(ω) & if θ = [if φ then θ_{1} else θ_{2}] and fi_{𝔙}ℑ(φ) = 1 \\ ti_{𝔙}^{ℑ}(θ_{2})(ω) & if θ = [if φ then θ_{1} else θ_{2}] and fi_{𝔙}ℑ(φ) = 0 \\ the x ∈ X_{𝔙}^{ℑ}(v) with fi_{𝔙}^{ℑ}(φ)(ω√ [ v ↦ x]) = 1 & if θ = [the v with φ] is a descriptor \end{cases} \end{matrix} ] \end{matrix} ]

the term interpreter of 𝔖 † 𝔙 and ℑ

fi_{𝔙}^{ℑ} := [ \begin{matrix}Form (𝔖 † 𝔙) ⟶ ⊛X_{𝔙}^{ℑ} −−→ 𝔹 \\ φ ↦ [ \begin{matrix}X_{𝔙}^{ℑ} −−→ 𝔹 \\ ω ↦ \begin{cases}1 & if φ = R (θ_{1}, …, θ_{n}) and ⟨ti_{𝔙}^{ℑ}(θ_{1})(ω), …, ti_{𝔙}^{ℑ}(θ_{n})(ω)⟩ ∈ R^{ℑ} \\ 0 & if φ = R (θ_{1}, …, θ_{n}) and ⟨ti_{𝔙}^{ℑ}(θ_{1})(ω), …, ti_{𝔙}^{ℑ}(θ_{n})(ω)⟩ ∉ R^{ℑ} \\ 1 & if φ = [ θ_{1} = θ_{2} ] and ti_{𝔙}^{ℑ}(θ_{1})(ω) = ti_{𝔙}^{ℑ}(θ_{1})(ω) \\ 0 & if φ = [ θ_{1} = θ_{2} ] and ti_{𝔙}^{ℑ}(θ_{1})(ω) ≠ ti_{𝔙}^{ℑ}(θ_{1})(ω) \\ -fi_{𝔙}^{ℑ}(ψ)(ω) & if φ = ¬ψ is a negation \\ fi_{𝔙}^{ℑ}(φ_{1})(ω) ∧ … ∧ fi_{𝔙}^{ℑ}(φ_{n})(ω) & if φ = [ φ_{1} ∧ … ∧ φ_{n} ] is a conjunction \\ fi_{𝔙}^{ℑ}(φ_{1})(ω) ∨ … ∨ fi_{𝔙}^{ℑ}(φ_{n})(ω) & if φ = [ φ_{1} ∨ … ∨ φ_{n} ] is a disjunction \\ ⋁\{fi_{𝔙}^{ℑ}(ψ)(ω√ [ v ↦ x]) | x ∈ X_{𝔙}^{ℑ}(v)\} & if φ = ∃v . ψ is an existentiation \\ ⋀\{fi_{𝔙}^{ℑ}(ψ)(ω√ [ v ↦ x]) | x ∈ X_{𝔙}^{ℑ}(v)\} & if φ = ∀v . ψ is a generalization \end{cases} \end{matrix} ] \end{matrix} ]

the formula interpreter of 𝔖 † 𝔙 and ℑ

PredLogInTheoAlgRel 71

Figure 7:

xfun_{𝔙}^{ℑ} = [ \begin{matrix}Term (𝔖 † 𝔙) ⟶ Xfun (X_{𝔙}^{ℑ}, Car (ℑ)) \\ θ ↦ [ \begin{matrix}dom_{𝔙}^{ℑ}(θ) ⟶ cod_{𝔙}^{ℑ}(θ) \\ ω ↦ \begin{cases}v_{[Xℑ 𝔙]}^{•} & if θ = v ∈ Var (𝔙) is a variable \\ op_{ℑ}(c)_{[Xℑ 𝔙]}^{•} & if θ = c ∈ Osy (𝔖) is a constant \\ op_{ℑ}(f)_{[Xℑ 𝔙]}^{•}(xfun_{𝔙}^{ℑ}(θ_{1}), …, xfun_{𝔙}^{ℑ}(θ_{n})) & if θ = f (θ_{1}, …, θ_{n}) is an application \\ xfun & ((R ⊓ T_{1}) ⊔ (¬R ⊓ T_{2}) , j) \\ where ( \begin{matrix}j ∈ Var (𝔙) \ Fvar (θ) \\ R := xrel_{𝔙}^{ℑ}(φ) \\ T_{1} := xrel (xfun_{𝔙}^{ℑ}(θ_{1}), j) \\ T_{2} := xrel (xfun_{𝔙}^{ℑ}(θ_{2}), j) \end{matrix} ) & if θ = [if φ then θ_{1} else θ_{2}] is a conditional \\ xfun(xrel_{𝔙}^{ℑ}(φ), v) & if θ = [the v with φ] is a descriptor \end{cases} \end{matrix} ] \end{matrix} ]
xrel_{𝔙}^{ℑ} = [ \begin{matrix}Form (𝔖 † 𝔙) ⟶ Prel (X_{𝔙}^{ℑ}) \\ φ ↦ [ \begin{matrix}x_{𝔙}^{ℑ}(φ) \\ ω ↦ \begin{cases}R_{[Xℑ 𝔙]}^{•}(xfun_{𝔙}^{ℑ}(θ_{1}), …, xfun_{𝔙}^{ℑ}(θ_{n})) & if φ = R (θ_{1}, …, θ_{n}) is a relation form \\ (Eq_{C,C})_{[Xℑ 𝔙]}^{•}(xfun_{𝔙}^{ℑ}(θ_{1}), xfun_{𝔙}^{ℑ}(θ_{2})) \\ where C := cod_{𝔙}^{ℑ}(θ_{1}) = cod_{𝔙}^{ℑ}(θ_{2}) & if φ = [ θ_{1} = θ_{2} ] is an equation \\ ¬xrel_{𝔙}^{ℑ}(ψ) & if φ = ¬ψ is a negation \\ xrel_{𝔙}^{ℑ}(φ_{1}) ⊓ … ⊓ xrel_{𝔙}^{ℑ}(φ_{n}) & if φ = [ φ_{1} ∧ … ∧ φ_{n} ] is a conjunction \\ xrel_{𝔙}^{ℑ}(φ_{1}) ⊓ … ⊓ xrel_{𝔙}^{ℑ}(φ_{n}) & if φ = [ φ_{1} ∨ … ∨ φ_{n} ] is a disjunction \\ xrel_{𝔙}^{ℑ}(ψ)⇂ v & if φ = ∃v . ψ is an existentiation \\ xrel_{𝔙}^{ℑ}(ψ)↾ v & if φ = ∀v . ψ is a generalization \end{cases} \end{matrix} ] \end{matrix} ]

13 Summary of symbols

13.1 Structures, signatures and interpretations *** structures.tex ***

Ordinary operators and types ( ; 𝅝 ; ) Oops (Car) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . the ordinary operator class of a class Car of carrier classes ( ; 𝅝 ; ) Otyp (Car) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . the ordinary type class of a class Car of carrier classes ( ; 𝅝 ; ) typ : Oops (Car) ⟶ Otyp (Car) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . the type function ( ; 𝅝 ; ) o : τ stands for typ (o) = τ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ( ; 𝅝 ; ) dox (o) *** change to x (o) *** . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . the domain schema of o ∈ Oops (Car) ( ; 𝅝 ; ) dom (o) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . the domain of o ∈ Oops (Car) ( ; 𝅝 ; ) cod (o) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . the codomain of o ∈ Oops (Car) ( ; 𝅝 ; ) ar (o) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . the arity of o ∈ Oops (Car) ( ; 𝅝 ; ) Car (o) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . the carriers of o ∈ Oops (Car)

\underline{Structures} ( ; 𝅝 ; ) 𝔄 = ⟨Car (𝔄) , Op (𝔄)⟩ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . general form of an (ordinary) structure

( ; 𝅝 ; ) 𝔄 = ⟨S_{1}, …, S_{k}, o_{1}, …, o_{n}⟩ *** should be ⟨S_{1}, …, S_{k}; o_{1}, …, o_{n}⟩ ***^{9} special form for structures with finite Car (𝔄) and finite Op (𝔄)

Ordinary type expressions and signatures ( ; 𝅝 ; ) Otex (Csy) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . the ordinary type expression class of an identifier class Csy, made of

( ; 𝅗𝅥 ; ) C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . constant type expression ( ; 𝅗𝅥 ; ) D_{1} × … × D_{n} ⟶ C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . function type expression ( ; 𝅗𝅥 ; ) D_{1} ↭ … ↭ D_{n} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ordinary relation type expression

( ; 𝅝 ; ) 𝔖 = ⟨Csy (𝔖) , Osy (𝔖) , sig_{𝔖}⟩ *** change sig𝔖 to typ𝔖 everywhere *** . . . . . .general form of an (ordinary) signature

( ; 𝅝 ; ) 𝔖 = ( S_{1}, …, S_{k} ; o_{1} : sig (o_{1}) ; ⋮ ; o_{n} : sig (o_{n}) ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . special form for finite signatures

( ; 𝅝 ; ) dosys_{𝔖} : Osy (𝔖) ⟶ Csy (𝔖)^{∗} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . the domain symbols function of a given signature 𝔖 ( ; 𝅝 ; ) cosy_{𝔖} : Osy (𝔖) ⟶ Csy (𝔖) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . the codomain symbol function of a given signature 𝔖 ( ; 𝅝 ; ) ar_{𝔖} : Osy (𝔖) ⟶ ℕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . the arity function of a given signature 𝔖

Interpretations or symbolized structures ( ; 𝅝 ; ) ℑ = ⟨𝔖, 𝔄, car, op⟩ the general form of an (ordinary) interpretaton or symbolized structure.

( ; 𝅗𝅥 ; ) 𝔰𝔦𝔤𝔫 (ℑ) = 𝔖

( ; 𝅗𝅥 ; ) 𝔰𝔱𝔯𝔲𝔠 (ℑ) = 𝔄

( ; 𝅗𝅥 ; ) car_{ℑ} = car

( ; 𝅗𝅥 ; ) op_{ℑ} = op

( ; 𝅗𝅥 ; ) Csy (ℑ) = Csy (𝔖)

( ; 𝅗𝅥 ; ) Osy (ℑ) = Osy (𝔖)

( ; 𝅗𝅥 ; ) Car (ℑ) = Car (𝔄)

( ; 𝅗𝅥 ; ) Op (ℑ) = Op (𝔄)

( ; 𝅗𝅥 ; ) sig_{ℑ} = sig_{𝔖}

( ; 𝅗𝅥 ; ) ar_{ℑ} : ar_{𝔖}

( ; 𝅗𝅥 ; ) cosy_{ℑ} := cosy_{𝔖}

( ; 𝅗𝅥 ; ) dosys_{ℑ} := dosys_{𝔖}

We also use the following abbreviations:

( ; 𝅗𝅥 ; ) S^{ℑ} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . stands for the carrier car_{ℑ}(S) of a carrier symbol S ∈ Csy (ℑ) ( ; 𝅗𝅥 ; ) o^{ℑ} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . stands for the operator op_{ℑ}(o) of an operator symbol o ∈ Osy (ℑ)

9*** Replace \structuple {◯ 1 } by \strucpair {◯ 1 } {◯ 2 } in all files. *** ( ; 𝅝 ; ) ℑ = [ \begin{matrix}S_{1} & ↦ & S_{1}^{ℑ} \\ ⋮ & & ⋮ \\ S_{k} & ↦ & S_{k}^{ℑ} \\ o_{1} & ↦ & o_{1}^{ℑ} \\ ⋮ & & ⋮ \\ o_{n} & ↦ & o_{n}^{ℑ} \end{matrix} ] = [ \begin{matrix}S_{1} & ↦ & car(S_{1}) \\ ⋮ & & ⋮ \\ S_{k} & ↦ & car(S_{k}) \\ o_{1} & ↦ & op(o_{1}) \\ ⋮ & & ⋮ \\ o_{n} & ↦ & op(o_{n}) \end{matrix} ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . is the compact form of an interpretation ℑ with a finite signature

\underline{Classes} ( ; 𝅝 ; ) INT (𝔖) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . the interpretation class of a signature 𝔖 ( ; 𝅝 ; ) STRUC (𝔖) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . the structure class of a signature 𝔖 ( ; 𝅝 ; ) Int (𝔖, X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . the interpretation class of a signature 𝔖 and (carrier) schema X ( ; 𝅝 ; ) Struc (𝔖, X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . the structure class of a signature 𝔖 and (carrier) schema X ( ; 𝅝 ; ) Int (𝔄) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . the interpretation class of a structure 𝔄 ( ; 𝅝 ; ) Sign (𝔄) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .the signature class of a structure 𝔄

13.2 Syntax *** express.tex *** *** CONTINUE HERE ***

13.3 Interpretation of terms and formulas *** interpret.tex ***

*** CONTINUE HERE ***

13.4 Schematic functions and coapplications *** funapps.tex ***

*** CONTINUE HERE ***

13.5 Theory–algebraic interpretation of terms and formulas *** theoalgrel.tex ***

*** CONTINUE HERE ***

Part VII

Operators, symbolized structures and general algebra

14 Additional operators

14.0.1 Introduction

*** CONTINUE HERE *** *** sum up *** ( ; 𝅝 ; ) *** characteristic functions *** ( ; 𝅝 ; ) *** schematic conversions *** ( ; 𝅝 ; ) *** identity/equality relations and their

parametrizations *** ( ; 𝅝 ; ) *** the flip functions and their parametriza-

tions ***

14.1 Schematic conversions

14.1.1 Remark

With χ_{◯ 1} : Prel (X) ⟶ 𝔹^{•}[X] we have a relation–to–function converter available, that works in both directions, due to its bijectivity. However, we often need another kind of conversion. Given a schema X = [X_{i}|i ∈ I], we are now going to define a pair of conversions for each index i ∈ X: one “function–to–relation” converter

fr^{i} : X_{i}^{•}[X] ⟶ Prel (X)

and one “relation–to–function” converter

rf^{i} : Prel (X) −−→ X_{i}^{•}[X]

In the following diagram, which probably explains the whole idea already, the chosen index is c.

R f :: ^{Rel ([\begin{matrix}a ↦ & A \\ b ↦ & B \\ c ↦ & C \\ d ↦ & D \end{matrix}])} ⊗ [\begin{matrix}a ↦ & A \\ b ↦ & B \\ d ↦ & D \end{matrix}] ⟶ C^{frc}    ^{rfc}

R := fr^{c}(f) is a pure formality. But the other move f := rfc(R) from a relation to a function is often undefined.

14.1.2 Definition

Let X = [X_{i}|i ∈ I] be a schema.

(1) For every i ∈ I we define

fr^{i} := [ \begin{matrix}X_{i}^{•}[X] ⟶ Prel (X) \\ f ↦ [ \begin{matrix}x (f) ∨ [ i ↦ X_{i} ] \\ ξ ↝ f(pr (ξ, @ (f))) = ξ_{i} \end{matrix} ] \end{matrix} ]

the function–to–relation converter at i (on X)

fr^{i}(f) itelf is simply called the relation of f at i.

(2) For every i ∈ I we define

rf^{i} := [ \begin{matrix}Prel (X) −−→ X_{i}^{•}[X] \\ R ↦ [ \begin{matrix}⊗pr (X, @R \ \{i\}) ⟶ X_{i} \\ ξ ↦ ( \begin{matrix}the x ∈ X_{i} \\ with ξ ˙∨ [ i ↦ x] ∈ R \end{matrix} ) \end{matrix} ] \end{matrix} ]

the relation–to–function converter at i (on X)

rf^{i}(R) itself is simply called the function of R at i.

(3) We also define

Conv (X) := {fr^{i} | i ∈ I} ∪ {rf^{i} | i ∈ I}

the converter class of X.

14.1.3 Example

Let X be the schema given by

X = [\begin{matrix}a ↦ & ℕ \\ b ↦ & ℤ \\ c ↦ & ℤ \\ d ↦ & ℝ \end{matrix}]

The converter class Conv (X) comprises four total and four partial functions

fra : ℕ^{•}[X] ⟶ Prel (X)  rfa : Prel (X) −−→ ℕ^{•}[X]
frb : ℤ^{•}[X] ⟶ Prel (X)  rfb : Prel (X) −−→ ℤ^{•}[X]
frc : ℤ^{•}[X] ⟶ Prel (X)  rfc : Prel (X) −−→ ℤ^{•}[X]
frd : ℝ^{•}[X] ⟶ Prel (X)  rfd : Prel (X) −−→ ℝ^{•}[X]

Let us exercise some concrete cases.

(1) The function–to–relation conversion is merely an exercise in the application of our notations.

(a) Let f ∈ ℤ^{•}[X] be defined as

f = [ \begin{matrix}⊗ [\begin{matrix}a ↦ & ℕ \\ b ↦ & ℤ \end{matrix}] ⟶ ℤ \\ ξ ↦ ξa + ξb \end{matrix} ]

with e.g.

f ([\begin{matrix}a ↦ & 3 \\ b ↦ & -7 \end{matrix}]) = -4  and  f ([\begin{matrix}a ↦ & 3 \\ b ↦ & 4 \end{matrix}]) = 7

The relation of f at c is

frc(f) = [ \begin{matrix}[ & \begin{matrix}a ↦ & ℕ \\ b ↦ & ℤ \\ c ↦ & ℤ \end{matrix} & ] \\ ξ ↝ ξa + ξb = ξc \end{matrix} ]

with

[\begin{matrix}a ↦ & 3 \\ b ↦ & -7 \\ c ↦ & -4 \end{matrix}] ∈ frc(f)  and  [\begin{matrix}a ↦ & 3 \\ b ↦ & 4 \\ c ↦ & 5 \end{matrix}] ∉ frc(f)

(b) Usually, we will need conversions fr^{i}(f), where i is not already an attribute of f. But if indeed i ∈ @ (f), we will obtain well–defined relations as well, as the following example demonstrates. Let f be as in (a), then

frb(f) = [ \begin{matrix}[ & \begin{matrix}a ↦ & ℕ \\ b ↦ & ℤ \end{matrix} & ] \\ ξ ↝ ξa + ξb = ξb \end{matrix} ] = [ \begin{matrix}[ & \begin{matrix}a ↦ & ℕ \\ b ↦ & ℤ \end{matrix} & ] \\ ξ ↝ ξa = 0 \end{matrix} ]

and so e.g

[\begin{matrix}a ↦ & 0 \\ b ↦ & -23 \end{matrix}] ∈ frb(f)  and  [\begin{matrix}a ↦ & 23 \\ b ↦ & 0 \end{matrix}] ∉ frb(f)

(2) The conversion of a relation into a function on the other hand often fails.

(a) If we take the result from (1)(a)

R = frc(f) = [ \begin{matrix}[ & \begin{matrix}a ↦ & ℕ \\ b ↦ & ℤ \\ c ↦ & ℤ \end{matrix} & ] \\ ξ ↝ ξa + ξb = ξc \end{matrix} ]

then

rfc(R) = [ \begin{matrix}⊗ [\begin{matrix}a ↦ & ℕ \\ b ↦ & ℤ \end{matrix}] ⟶ ℤ \\ ξ ↦ the n ∈ ℤ with [\begin{matrix}a ↦ & ξa \\ b ↦ & ξb \\ c ↦ & n \end{matrix} ] ∈ R \end{matrix} ]

= [ \begin{matrix}⊗ [\begin{matrix}a ↦ & ℕ \\ b ↦ & ℤ \end{matrix}] ⟶ ℤ \\ ξ ↦ the n ∈ ℤ with ξa + ξb = n \end{matrix} ]

= [ \begin{matrix}⊗ [\begin{matrix}a ↦ & ℕ \\ b ↦ & ℤ \end{matrix}] ⟶ ℤ \\ ξ ↦ ξa + ξb \end{matrix} ]

and that is exactly our original function f ∈ ℤ^{•}[X] with e.g.

f ([\begin{matrix}a ↦ & 73 \\ b ↦ & -6 \end{matrix}]) = 67

Obviously, rf(frc(f)) = f, and that is true in general (14.1.6).

(b) But for many relations R ∈ Prel (X) there is no such function rf^{i}(R) at a given i ∈ {a, b, c, d}. For example, if

R = [ \begin{matrix}[ & \begin{matrix}a ↦ & ℕ \\ b ↦ & ℤ \\ c ↦ & ℤ \end{matrix} & ] \\ ξ ↝ ξa + ξb ≤ ξc \end{matrix} ]

and if we put

ξ := [\begin{matrix}a ↦ & 3 \\ c ↦ & 9 \end{matrix}]

then e.g.

ξ ˙∨ [ b ↦ 2 ] = [\begin{matrix}a ↦ & 3 \\ b ↦ & 2 \\ c ↦ & 9 \end{matrix}] ∈ R

ξ ˙∨ [ b ↦ 4 ] = [\begin{matrix}a ↦ & 3 \\ b ↦ & 2 \\ c ↦ & 9 \end{matrix}] ∈ R

But that makes, that

the n ∈ ℤ with ξ ˙∨ [ b ↦ n] ∈ R

is not well–defined, which means that

rfb(R) = [ \begin{matrix}⊗ [\begin{matrix}a ↦ & ℕ \\ c ↦ & ℤ \end{matrix}] \\ ξ ↦ the n ∈ ℤ with ξ ˙∨ [ b ↦ n] ∈ R \end{matrix} ]

alltogether is not defined.

(c) For the same relation R and for the index d, there is no function of R at d either. We could try and obtain

rfd(R) = [ \begin{matrix}[\begin{matrix}a ↦ & ℕ \\ b ↦ & ℤ \\ c ↦ & ℤ \end{matrix}] ⟶ ℝ \\ ξ ↦ the n ∈ ℝ with ξ ˙∨ [ d ↦ n] ∈ R \end{matrix} ]

But neither ξ ˙∨ [ d ↦ n] ∈ R nor ξ ˙∨ [ d ↦ n] ∉ R, because

ξ ˙∨ [ d ↦ n] = [\begin{matrix}a ↦ & ξa \\ b ↦ & ξb \\ c ↦ & ξc \\ d ↦ & n \end{matrix} ] ∉ ⊗ [\begin{matrix}a ↦ & ℕ \\ b ↦ & ℤ \\ c ↦ & ℤ \end{matrix}] = dom (R)

and so rfd(R) is not well–defined at all and doesn’t exist. This is a case, where we seek a function rf^{i}(R) for some i ∉ @ (R), and that always fails (see 14.1.3(2)(a)).

14.1.4 Lemma

Let X = [X_{i}|i ∈ I] be a proper schema and i ∈ I.

(1) fr^{i}(f) is a well–defined member of Prel (X), for each f ∈ X_{i}^{•}[X].

(2) rf^{i}(R) is well–defined member of X_{i}^{•}[X] for R ∈ Prel (X), iff

(a) i ∈ @R and

(b) For every ξ ∈ ⊗pr (X, @R \ {i}) there is exactly one x ∈ X_{i} with ξ ˙∨ [ i ↦ x] ∈ R.

14.1.5 Proof of 14.1.4

(1) f ∈ X_{i}^{•}[X] means that f : ⊗Y ⟶ X_{i} with Y := pr (X, J) and J := @ (f), and

fr^{i}(f) = [ \begin{matrix}Y ∨ [ i ↦ X_{i} ] \\ ξ ↝ f(pr (ξ, J)) = ξ_{i} \end{matrix} ]

is always well–defined.

(2) Given R ∈ Prel (X). If i ∉ @ (R) we have the situation of example 14.1.3(2)(c), where ξ ˙∨ [ i ↦ x] is not in the domain of R at all and so rf^{i}(R) is undefined for each of its arguments and thus undefined itself. If, on the other hand, (a) i ∈ @ (R) and (b) holds, too, the straight–forward application of definition 14.1.2(2) provides us with a well–defined function rf^{i}(R) : ⊗pr (X, @ (R) \ {i}) ⟶ X_{i}.

PredLogInTheoAlgRel 77

14.1.6 Lemma Let X = [X_{i}|i ∈ I] be a proper schema and i ∈ I.

(1) If R ∈ Prel (X) and rf^{i}(R) exists at all, then fr^{i}(rf^{i}(R)) = R

(2) If f ∈ X_{i}^{•}[X] with i ∉ @ (f) then rf^{i}(fr^{i}(f)) = f

14.1.7 Proof of 14.1.6 This is an immediate consequence of definition 14.1.2(1) and (2).

14.2 Identity relations

14.2.1 Repetition Recall fig. 13(3)(a), that each schema X = [X_{i}|i ∈ I] defines the identity relation

Id_{X} = [\begin{matrix}X \\ ξ ↝ ξ_{j} = ξ_{k} for all j, k ∈ I \end{matrix}]

For example, if

X = [\begin{matrix}n ↦ & ℕ \\ i ↦ & ℤ \\ r ↦ & ℚ \end{matrix}] then [\begin{matrix}n ↦ & 5 \\ i ↦ & 5 \\ r ↦ & 5 \end{matrix}] ∈ Id_{X} but [\begin{matrix}n ↦ & 7 \\ i ↦ & -5 \\ r ↦ & \frac{5}{7} \end{matrix}] ∉ Id_{X}

*** CONTINUE HERE ***

14.2.2 Definition For every two classes A and B we define

Id_{A,B} := [ \begin{matrix}A ↭ B \\ ⟨a, b⟩ ↝ a = b \end{matrix} ]

the (ordinal) identity relation between A and B.

For every two classes A, B and each schema X holds

Id_{A,B} _{[X]}^{•}
= [ \begin{matrix}A^{•}[X] × B^{•}[X] ⟶ Prel (X) \\ ⟨f, g⟩ ↦ [ \begin{matrix}x (f) ∨ x (g) \\ ξ ↝ f(pr (ξ, @ (f))) = g(pr (ξ, @ (g))) \end{matrix} ] \end{matrix} ]

For every family Car and each schema X we define

Ids (Car, X) := {Id_{A,B} _{[X]}^{•} | A, B ∈ Car}

the parameterized identity relation class of Car.

*** CONTINUE HERE ***

14.3 Flip functions

14.3.1 Definition

For every class C we define

flip_{C} := [ \begin{matrix}𝔹 × C × C ⟶ C \\ ⟨β, x_{1}, x_{2}⟩ ↦ \begin{cases}x_{1} & if β = 1 \\ x_{2} & if β = 0 \end{cases} \end{matrix} ]

the flip function on C

14.3.2 Lemma

Let C be a class and X a schema. For each R ∈ Prel (X) and all f_{1}, f_{2} ∈ C^{•}[X] holds flip_{C} • ⟨χ_{R}, f_{1}, f_{2}⟩

= [ \begin{matrix}⊗ (x (R) ∨ x (f_{1}) ∨ x (f_{2})) ⟶ C \\ ξ ↦ \begin{cases}f_{1}(pr (ξ, @ (f_{1}))) & if pr (ξ, @ (R)) ∈ R \\ f_{2}(pr (ξ, @ (f_{2}))) & if pr (ξ, @ (R)) ∉ R \end{cases} \end{matrix} ]

14.3.3 Remark

flip_{C} _{[X]}^{•} : 𝔹^{•}[X] × C^{•}[X] × C^{•}[X] ⟶ C^{•}[X]

However we define a little different with Prel (X) for 𝔹^{•}[X] = {χ_{R} | R ∈ Prel (X)}.

flip_{C} _{[X]}^{•} := [ \begin{matrix}⊗ (x (R) ∨ x (f_{1}) ∨ x (f_{2})) ⟶ C^{•}[X] \\ ⟨R, f_{1}, f_{2}⟩ ⟶ flip_{C} • χ_{R}, f_{1}, f_{2} \end{matrix} ]

the parameterized flip function on C and X

Flip (Car, X) := {flip_{C} _{[X]}^{•} | C ∈ Car}

the parameterized flip function class

*** CONTINUE HERE ***

14.4 Examples

14.4.1 Definition

For every class C we define

flip_{C} := [ \begin{matrix}𝔹 × C × C ⟶ C \\ ⟨b, a_{1}, a_{2}⟩ ↦ \begin{cases}a_{1} & if b = 1 \\ a_{2} & if b = 0 \end{cases} \end{matrix} ]

the switch function on C 14.4.2 Lemma If X is a schema and C a class, then (flip_{C})_{[X]}^{∘}

= [ \begin{matrix}𝔹^{∘}[X] × C^{∘}[X] × C^{∘}[X] ⟶ C^{∘}[X] \\ ⟨f, g_{1}, g_{2}⟩ ↦ \\ [ & ⊗x (\{f, g_{1}, g_{2}\}) −−→ 𝔹 ξ ↦ ( \begin{matrix}if & f (pr (ξ, @ (f))) = 1 \\ then & g_{1} (pr (ξ, @ (g_{1}))) \\ else & g_{2} (pr (ξ, @ (g_{2}))) \end{matrix} ) & ] \end{matrix} ]

14.4.3 Lemma For every two classes C and D holds:

(Id_{C,D})_{[X]}^{∀} = Id_{C•[X],D•[X]}

14.4.4 Proof of 14.4.3

*** CONTINUE HERE ***

15 Structures, signatures and interpretations

15.1 Introduction

15.1.1 Introduction

In this section^{10} we introduce a lot of terminology and notation. But most of it is standard language and the essential idea fits in a simple picture

𝔖 ℑ 𝔄_{signature} _{interpretation} _{structure}

( ; 𝅝 ; ) A structure is made of carrier classes and operators on them. In the sequel, we only consider ordinary structures, where all operators are ordinary, i.e. constants, n–ary functions or n–ary relations.

( ; 𝅝 ; ) An (ordinary) signature is a symbolization, a kind of syntax or grammar for (ordinary) structures. It is made of symbols for carrier classes and operators, together with a type expression for each operator symbol.

( ; 𝅝 ; ) In interpretation is the map that assigns components of the structure to the symbols of the signature.

15.1.2 Example the additive group of integers

A simple example of a signature is in our compact notation given by

𝔖 := ( \begin{matrix}G \\ neu : G \\ op : G × G ⟶ G \\ inv : G ⟶ G \end{matrix} )

First, there are the carrier class symbols, in this case just one “G”. Underneath, there are the operator symbols, each one with its own type expression: ( ; 𝅝 ; ) neu is a constant of type G (“neutral element”) ( ; 𝅝 ; ) op is a binary total function symbol on G (the default “opera-

tion”) ( ; 𝅝 ; ) inv is an unary total function symbol on G (“inversion”)

An interpretation for 𝔖 is in our compact notation given by ^{11}

ℑ := [ \begin{matrix}G ↦ & ℤ \\ neu ↦ & 0 \\ op ↦ & ◯ 1 + ◯ 2 \\ inv ↦ & -◯ 1 \end{matrix} ]

which is obviously saying that ( ; 𝅝 ; ) G becomes the integer class ℤ = {…, -2, -1, 0, 1, 2, …} ( ; 𝅝 ; ) neu maps to the zero integer 0 ( ; 𝅝 ; ) op is the usual addition ◯ 1 + ◯ 2 on integers, and ( ; 𝅝 ; ) inv becomes the negation -◯ 1 of integers, which turns each

n ∈ ℤ into -n.

The resulting structure of this interpretation is

𝔄 = ⟨ℤ, 0, +, -⟩

the additive group of integers. So the general picture in 15.1.1 now becomes

( \begin{matrix}G \\ neu : G \\ op : G × G ⟶ G \\ inv : G ⟶ G \end{matrix} ) ^{[ \begin{matrix}G ↦ & ℤ \\ neu ↦ & 0 \\ op ↦ & ◯ 1 + ◯ 2 \\ inv ↦ & -◯ 1 \end{matrix} ]}  ^{⟨ℤ, 0, +, -⟩} signature  interpretation  structure

for this example.

15.2 Ordinary operators and types

15.2.1 Repetition ordinary operators

Ordinary functions and relations are common and essential concepts. But still, when it comes to the details, there is no overall standard yet. So let us briefly recall our design, a summary of the notation and formalism is given by figure 8. Note, that operator is our collective noun for functions and relations in general. For now, we are only dealing with ordinary operators, which means that they only take ordinary or n–ary arguments, i.e. tuples. Later on (in ?? and ??), we generalize these operators and introduce schematic operators, defined not only on tuples, but on arbitrary records.

15.2.2 Definition

Let Car be a given class of so–called carrier classes.

Oops (Car) := \{ \begin{matrix}c : C, \\ f : D_{1} × … × D_{n} ⟶ C, \\ R : D_{1} ↭ … ↭ D_{n} \\ C, D_{1}, …, D_{n} ∈ Car \end{matrix} \}

is the ordinary operator class of Car

10Many definitions are (slightly modified) versions of definitions given earlier in the preliminary section Thalg 5 and

Thalg 5.8 Structures (syntax-strucsmain) in particular.

11If o is a n–ary operator, an application of o to arguments x_{1}, …, x_{n} is written o(x_{1}, …, x_{n}) by default. The placeholders ◯ 1 , ◯ 2 , … are used here to indicate that each application of “+” is written in infix “x + y” rather than prefix notation “+(x, y)”, and that we write “-x” rather than “-(x)” when applying the negation to an argument x. By the way, we use a short line for the unary negation -◯ 1 and a longer line for the binary subtraction ◯ 1 − ◯ 2

Figure 8: Ordinary operators

(1) Operators in general An operator is either a function or a relation. Our general form of an operator is

symbol = [ \begin{matrix}syntax \\ semantics \end{matrix} ]

The syntax defines the kind of arguments the operator can take and which kind of results are being returned. The semantics is the actual rule that produces the results. In our default forms for ordinary operators, the syntax is given by a type expression and the semantics is given by a prescription, i.e. a map for n–ary functions and a predicator for n–ary relations.

(2) The type of ordinary operators An ordinary operator or n–ary operator is an operator where all arguments are n-tuples of a specified domain.

(a) The type of an n–ary function is in general given by

D_{1} × … × D_{n} ⟶ C

with the special versions

(i) D_{1} ⟶ C as an (imprecise, but common) abbreviation

in case n = 1 (ii) C instead of ⊗⟨⟩ ⟶ C or {⟨⟩} ⟶ C in case n = 0.

These nullary functions are also called constants.

(b) The type of an n–ary relation in our notation is

D_{1} ↭ … ↭ D_{n}

with the special versions

(i) Pty(D_{1}) in case n = 1, since the unary relation is a kind of property on D_{1}

(ii) 𝔹 in case n = 0, because there are exactly two nullary relations and 𝔹 = {0, 1}

(iii) Rel^{n}(D) in case all the D_{1}, …, D_{n} are the same class D.

(3) Ordinary functions Our default form for an n–ary function f is

f = [ \begin{matrix}D_{1} × … × D_{n} ⟶ C \\ ⟨x_{1}, …, x_{n}⟩ ↦ θ \end{matrix} ]

which means that f is a functions that takes n–tuple arguments ⟨x_{1}, …, x_{n}⟩ from the domain D_{1} × … × D_{n} and returns a value the from C which is defined by θ.

(a) D_{1} × … × D_{n} ⟶ C is the type (expression) of f

(b) ⟨x_{1}, …, x_{n}⟩ ↦ τ is the map(ping) expressions of f ^{a}

As usual, we write

(c) dom (f) := D_{1} × … × D_{n} for the domain of f

(d) cod (f) := C for the codomain of f (e) f (x_{1}, …, x_{n}) for the result of an application of f to an

argument ⟨x_{1}, …, x_{n}⟩

Additionally, we define

(f) ar (f) := n the arity of f

(g) x (f) := ⟨D_{1}, …, D_{n}⟩ the schema of f

Furthermore, we follow the somehow imprecise and ambiguous, but common habit and write

(h) [\begin{matrix}D ⟶ C \\ x ↦ θ \end{matrix}] instead of [\begin{matrix}⊗⟨D⟩ ⟶ C \\ ⟨x⟩ ↦ θ \end{matrix}] for unary functions

(i) c : C instead of [\begin{matrix}⊗⟨⟩ ⟶ C \\ ⟨⟩ ↦ c \end{matrix}] for constants

(4) Example ordinary function

For example, if f = [\begin{matrix}ℕ × ℕ × ℕ ⟶ ℕ \\ ⟨a, b, c⟩ ↦ a^{2} + 5 · b + c \end{matrix}] then dom (f) =

ℕ × ℕ, cod (f) = ℕ, ar (f) = 2, x (f) = ⟨ℕ, ℕ⟩, and example applications are f(2, 1, 7) = 16, f(0, 0, 0) = 0 and f(1, 1, 1) = 7.

(5) Ordinary relations Our default form for a n–ary relation R is

R = [ \begin{matrix}D_{1} ↭ … ↭ D_{n} \\ ⟨x_{1}, …, x_{n}⟩ ↝ φ \end{matrix} ]

which means that R is a relation which is true, if the argument ⟨x_{1}, …, x_{n}⟩ from the domain D_{1} ×…×D_{n} satisfy the condition φ. For such an R we define

( ; 𝅝 ; ) dom (R) := D_{1} × … × D_{n} the domain of R

( ; 𝅝 ; ) x (R) := ⟨D_{1}, …, D_{n}⟩ the schema of R

( ; 𝅝 ; ) R (x_{1}, …, x_{n}) or ⟨x_{1}, …, x_{n}⟩ ∈ R is saying that R is true

for ⟨x_{1}, …, x_{n}⟩ ∈ dom (R)

( ; 𝅝 ; ) gr (R) := {⟨x_{1}, …, x_{n}⟩ ∈ dom (R) | R (x_{1}, …, x_{n})} the

graph of R

(6) Example ordinary relation

For example, if R = [\begin{matrix}ℕ ↭ ℕ \\ ⟨a, b⟩ ↝ a · a = b \end{matrix}] then x (R) = ⟨ℕ, ℕ⟩,

dom (R) = ℕ × ℕ, gr (R) = {⟨n, n · n⟩ | n ∈ ℕ} and both R(5, 25) and R(3, 9) are true, but R(5, 23) is not.

(7) Placeholders for special symbol layouts

So far, we only used o(◯ 1 , …, ◯ n ) as the form for an application of an operator o, which is indeed the default notation. However, there is a long tradition in mathematics of deviations from this form. To be able to preserve these traditions, we use placeholders ◯ 1 , ◯ 2 , … to indicate an idiosyncratic layout for

symbols. For example, we write ◯ 1 ≤ ◯ 2 to explain that the

binary operator ≤ is written in infix notation, χ_{◯ 1} for a certain unary operator, etc. This way we can even have a notation for symbols that have no identifier at all, such as the traditional

◯ 1 ◯ 2 for multiplication and ◯ 1 ^{◯ 2} for exponentiation.

aIn another mathematical tradition, the map expression ⟨x_{1}, …, x_{n}⟩ ↦ θ is written as the lambda expression λx_{1} . λx_{2} … λx_{n} . θ.

Otyp (Car) := \{ \begin{matrix}C, \\ D_{1} × … × D_{n} ⟶ C, \\ D_{1} ↭ … ↭ D_{n} \\ C, D_{1}, …, D_{n} ∈ Car \end{matrix} \}

is the ordinary type class of Car

As usual, we write for all given o ∈ Oops (Car) and τ ∈ Otyp (Car),

o : τ iff o is an ordinary operator of type τ

It is often useful to have this type correspondence in a functional form and we put

typ := [ \begin{matrix}Oops (Car) ⟶ Otyp (Car) \\ o ↦ the τ with o : τ \end{matrix} ]

the type function

15.2.3 Example

Let Car = {ℕ, ℤ, ℚ, ℝ} the class of carriers, which are the natural numbers, the integers, the rational and real numbers. Two members of Otyp (Car), i.e. two ordinary types on Car are given by

ℤ × ℤ ⟶ ℚ  and  ℝ ↭ ℝ

Two example members of Oops (Car) are

sq := [ \begin{matrix}ℤ ⟶ ℕ \\ x ↦ x · x \end{matrix} ]  and  Rt := [ \begin{matrix}ℝ ↭ ℕ \\ ⟨x, n⟩ ↝ x · x = n \end{matrix} ]

with e.g.

sq(7) = 49  sq(-5) = 25  Rt(3, 9)  Rt(\sqrt{2}, 2)

Obviously,

typ (sq) = (ℤ ⟶ ℕ)  and  typ (Rt) = (ℝ ↭ ℕ)

in other words

sq : ℤ ⟶ ℕ  and  Rt : ℝ ↭ ℕ

15.2.4 Remark domain, codomain, etc.

A domain dom (f) and codomain cod (f) is defined for each function f and a schema is defined for each relation R. But there is an obvious generalization for these notions for all ordinary operations. There is a 1-1 correspondence^{12} between an (ordinary) cartesian product S_{1} × … × S_{n} and the ordinary schema (our title for “class tuple”) ⟨S_{1}, …, S_{n}⟩. We therefore define both the schema and the domain for all operators in 15.2.5.

15.2.5 Definition

Let Car be a class of carriers and o ∈ Oops (Car). We define

x (o) := \begin{cases}⟨⟩ & if o : C \\ ⟨D_{1}, …, D_{n}⟩ & if o : D_{1} × … × D_{n} ⟶ C \\ ⟨D_{1}, …, D_{n}⟩ & if o : D_{1} ↭ … ↭ D_{n} \end{cases}

the schema of o

dom (o) := \begin{cases}\{⟨⟩\} & if o : C \\ D_{1} × … × D_{n} & if o : D_{1} × … × D_{n} ⟶ C \\ D_{1} × … × D_{n} & if o : D_{1} ↭ … ↭ D_{n} \end{cases}

the domain of o

cod (o) := \begin{cases}C & if o : C \\ C & if o : D_{1} × … × D_{n} ⟶ C \\ undefined & if o : D_{1} ↭ … ↭ D_{n} \end{cases}

the codomain of o

ar (o) := \begin{cases}0 & if o : C \\ n & if o : D_{1} × … × D_{n} ⟶ C \\ n & if o : D_{1} ↭ … ↭ D_{n} \end{cases}

the arity of o

15.2.6 Example

Take the two example operators sq and Rt from 15.2.3 again, we obtain

ar (sq) = 1 ar (Rt) = 2 x (sq) = ⟨ℤ⟩ x (Rt) = ⟨ℝ, ℕ⟩
dom (sq) = ℤ  dom (Rt) = ℝ × ℕ  cod (sq) = ℕ
cod (Rt) is undefined

15.2.7 Example

If we consider \frac{2}{3} a constant in ℚ then

x ( \frac{2}{3} ) = ⟨⟩ dom ( \frac{2}{3} ) = \{⟨⟩\} cod ( \frac{2}{3} ) = ℚ ar ( \frac{2}{3} ) = 0

15.2.8 Remark constants vs. elements

As mentioned in 8, we consider constants c : C as nullary functions with codomain C, but we also treat elements of C as constants. However, there is the difference, that constants do point to their codomain, while elements don’t. For example, consider the number \frac{2}{3} . If we take it to be a constant, we can reconstruct its codomain cod ( \frac{2}{3} ). But the element \frac{2}{3} ∈ ℚ itself doesn’t carry that information, because with ℚ ⊆ ℝ we also have \frac{2}{3} ∈ ℝ. We could paraphrase this difference by stating that constants are typed and simple values are untyped elements of a given class.

15.3 (Ordinary) Structures

12See Thalg (in moresyntax.tex) schemprod-prodeq(2) , which proofs this bijective relation between schemas X and their cartesian products ⊗X holds for all proper schemas X, i.e. all schemas X = [X_{i}|i ∈ I] with X_{i} ≠ ∅ for all i ∈ I.

15.3.1 Definition

An (ordinary) structure is given by

𝔄 = ⟨Car, Op⟩

where

(1) Car is a class of so–called carrier classes

(2) Op ⊆ Oops (Car) is a class of ordinary operator on Car.

If 𝔄 = ⟨Car, Op⟩ is a structure where both Car and Op are finite and thus 𝔄 is given by

𝔄 = ⟨{S_{1}, …, S_{k}} , {o_{1}, …, o_{n}}⟩

then we rather represent it in its common compact form

𝔄 = ⟨S_{1}, …, S_{k}, o_{1}, …, o_{n}⟩

which is the usual form for such structures.

If 𝔄 = ⟨Car, Op⟩ is a structure, we write

Car (𝔄) := Car Op (𝔄) := Op

as a general convention to recover the components from “𝔄”.

15.3.2 Example

Given a non–empty class I, we define

𝔗𝔠𝔬𝔩 (I) := ⟨I, I^{∗}, emp, ins, del, Emp, Mem, Incl⟩

the tuple collection structure of I, made of ( ; 𝅝 ; ) two carriers:

( ; 𝅗𝅥 ; ) I itself

( ; 𝅗𝅥 ; ) I^{∗}, the set of all the tuples ⟨x_{1}, …, x_{n}⟩, where each of the components x_{i} is a member of I

( ; 𝅝 ; ) six operators:

( ; 𝅗𝅥 ; ) emp : I^{∗}

is the empty tuple ⟨⟩

( ; 𝅗𝅥 ; ) ins : I × I^{∗} ⟶ I^{∗}

is the insertion function, which is simply defined by ins (x, ⟨y_{1}, …, y_{m}⟩) := ⟨x, y_{1}, …, y_{m}⟩

( ; 𝅗𝅥 ; ) del : I × I^{∗} ⟶ I^{∗}

returns the deletion del (x, ⟨y_{1}, …, y_{m}⟩) of an item x from the tuple ⟨y_{1}, …, y_{m}⟩. For example, del (2, ⟨1, 2, 5, 2, 1⟩) = ⟨1, 5, 1⟩.

( ; 𝅗𝅥 ; ) Emp : Pty (I^{∗})

the empty property on I^{∗}, an unary relation defined by Emp⟨x_{1}, …, x_{n}⟩ iff n = 0.

( ; 𝅗𝅥 ; ) Mem : I ↭ I^{∗}

the membership relation, where Mem (x, ⟨y_{1}, …, y_{m}⟩) holds iff x occurs in ⟨y_{1}, …, y_{m}⟩, at least once.

( ; 𝅗𝅥 ; ) Incl : I^{∗} ↭ I^{∗}

the inclusion relation, where Incl (⟨x_{1}, …, x_{n}⟩, ⟨y_{1}, …, y_{m}⟩) iff each x_{i} occurs among the y_{j}. For example, Incl (⟨2, 2, 3⟩, ⟨2, 3, 4⟩) is true, but Incl (⟨1, 2⟩, ⟨2, 3, 4⟩) is not.

This structure is a simple and nice illustration for our structure concept, although it is not a standard solution for practical problems. Mathematicians would rather use finite sets or a set field (see 15.3.6) to deal with collections, computer scientists will find this rather inefficient and would implement a more sophisticated solution (e.g. ordered lists, hash tables, weighted trees etc.). In ?? we will introduce the proto–theory of collections 𝔗col and by then we will have all the means together to give a precise version of the statement we just made.

15.3.3 Example bit value algebra

One of the most important structures is the boolean value algebra (or bit value algebra, Thalg 5.8.4 )

𝔅 = ⟨𝔹, ≤, 0, 1, -, ∧, ∨⟩ with carrier 𝔹 = {0, 1}, constants 0, 1, one unary negator -◯ 1 , the binary conjunctor or meet function ◯ 1 ∧ ◯ 2 and disjunctor or join function ◯ 1 ∨ ◯ 2 , and the linear order ◯ 1 ≤ ◯ 2 on 𝔹.

15.3.4 Example number systems

There are the number systems or ordered arithmetic structures:

(1) 𝔑 = ⟨ℕ, 0, 1, +, ·, ≤⟩ natural numbers

(2) ℨ = ⟨ℤ, 0, 1, +, ·, ≤⟩ integers

(3) 𝔔 = ⟨ℚ, 0, 1, +, ·, ≤⟩ rational numbers

(4) ℜ = ⟨ℝ, 0, 1, +, ·, ≤⟩ real numbers

Strictly speaking, the operators 0, 1, +, ·, ≤ are different for each of the structures and we should have written say “𝔑 = ⟨ℕ, 0_{𝔑}, 1_{𝔑}, +_{𝔑}, ·_{𝔑}, ≤_{𝔑}⟩” etc, but we will always give enough hints in the sequel to decide which version is meant. Actually, the “𝔑, ℨ, 𝔔, ℜ” are not really standard symbols and one usually writes “ℕ, ℤ, ℚ, ℝ” instead, for both the whole structure and its carrier. But we will keep things separated and make a clear distinction between a structure 𝔄 and the carrier A. It is common sense to think that ℕ ⊆ ℤ ⊆ ℚ ⊆ ℝ, although it took the entire 19th century and complex algebraic theories to make this work. In fact, for a decent standard definition of these example structures we would already need much of the theory we intent to develop below. But for now, it is fine to rely on common knowledge.

15.3.5 Example Euclidean space

For an important mathematical example of a structure with two carriers let us fix some positive integer d. Then

ℜ^{d} = ⟨ℝ, ℝ^{d}, 0, 1, +, ·, ≤, + + +, ◯_{1} ◯_{2} , d, ∥ ◯_{1} ∥⟩

is the d–dimensional Euclidean space, where ( ; 𝅝 ; ) ⟨ℝ, 0, 1, +, ·, ≤⟩ is the structure ℜ from 15.3.4(4)

( ; 𝅝 ; ) ℝ^{d} := {⟨x_{1}, …, x_{d}⟩ | x_{1}, …, x_{d} ∈ ℝ} is the vector class

( ; 𝅝 ; ) the remaining operators are ( ; 𝅗𝅥 ; ) ◯ 1 + + + ◯ 2 : ℝ^{d} × ℝ^{d} ⟶ ℝ^{d} the vector addition ( ; 𝅗𝅥 ; ) ◯ 1 ◯ 2 : ℝ × ℝ^{d} ⟶ ℝ^{d} the scalar product

Note, that for n ∈ ℝ and x ∈ ℝ^{d} one usually writes nx for the product, so the actual operation symbol is ◯ 1 ◯ 2 in our placeholder notation (see Thalg 4.3.1 and Thalg 5.2.4 ).

( ; 𝅗𝅥 ; ) d : ℝ^{d} × ℝ^{d} ⟶ ℝ the Euclidean distance function ( ; 𝅗𝅥 ; ) ∥ ◯ 1 ∥: ℝ^{d} ⟶ ℝ the Euclidean norm function

where the actual definition of the operators is

\begin{aligned}x + + + y & := & ⟨x_{1} + y_{1}, …, x_{d} + y_{d}⟩ \\ nx & := & ⟨n · x_{1}, …, n · x_{d}⟩ \\ d (x, y) & := & \sqrt{(x_{1} − y_{1})^{2} + … + (x_{d} − y_{d})^{2}} \\ ∥x∥ & := & \sqrt{x_{1}^{2} + … + x_{d}^{2}} \end{aligned}

for each n ∈ ℝ and all x, y ∈ ℝ^{d} with x = ⟨x_{1}, …, x_{d}⟩ and y = ⟨y_{1}, …, y_{d}⟩.

15.3.6 Example set field

For every class A, the (membership and) set field structure on A is given by

𝔖𝔢𝔱 (A) := ⟨A, P (A) , ∈, ⊆, ∅, 1, ∩, ∪\⟩

where ( ; 𝅝 ; ) P (A) = {S | S ⊆ A} is the power class of A ( ; 𝅝 ; ) ◯ 1 ∈ ◯ 2 : A ↭ P (A) is the membership relation ( ; 𝅝 ; ) ∅ is the empty and ( ; 𝅝 ; ) 1 := A is the full set ( ; 𝅝 ; ) ∩, ∪, \, ⊆ are the usual binary operators on P (A), i.e.

\begin{matrix}◯ 1 ∩ ◯ 2 \\ ◯ 1 ∪ ◯ 2 \\ ◯ 1 \ ◯ 2 \end{matrix} \} : P (A) ↭ P (A) ◯ 1 ⊆ ◯ 2 : P (A) ↭ P (A)

15.3.7 Example the boolean algebra of projections

Given a record η = [η_{k}|k ∈ K]. Recall ??, that the projection class of η was given by

Proj (η) := {pr (η, J) | J ⊆ K}

All ξ, υ ∈ Proj (η) are compatible, i.e. ξ ⌣ υ and together with the subrecord relation ≤, this is an example of a complete boolean lattice. More precisely, this boolean structure is given by

𝔓𝔯𝔬𝔧 (η) = ⟨Proj (η) , ≤, ⟨⟩, η, ∧, ∨, ⋀, ⋁, -⟩

where ⟨⟩ is the least, η is the greatest element, -ξ := η \ ξ the complement, and ⋀⟨⟩ := η.

15.3.8 Example first–order theory algebra

A very important ordinary structure for us later on is the following one with two carriers. In ?? we repeat all the involved concepts. For now it is sufficient to know of its existence. Given a proper schema X = [X_{i}|i ∈ I], the first–order theory algebra (of relations) on X

𝔗ℜ (X) = ⟨I, Prel (X) , ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂, Id⟩

is made of: ( ; 𝅝 ; ) Two carrier classes

( ; 𝅗𝅥 ; ) I the index or attribute class ( ; 𝅗𝅥 ; ) Prel (X) the projection relation class on X ( Thalg 17.8.1 )

( ; 𝅝 ; ) Eight operators ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂, Id, where ( ; 𝅗𝅥 ; ) ⊥, ⊤, ⊓, ⊔, ¬ constitute a quasi–boolean algebra ( Thalg ) on

Prel (X) (even a complete one Thalg 23.1.1 )

( ; 𝅗𝅥 ; ) the (singular) supremum/infimum eliminators ( Thalg 21.4.1 ) are of type

\begin{matrix}◯ 1 ⇂ ◯ 2 \\ ◯ 1 ↾ ◯ 2 \end{matrix} \} : Prel (X) × I ⟶ Prel (X)

( ; 𝅗𝅥 ; ) Id_{◯ 1 , ◯ 2} : I × I ⟶ Prel (X) returns an identity relation Id_{i,j} for any two attributes i, j ∈ I.

15.3.9 Example carrier–free structures

In our definition 15.3.1 of a structure 𝔄 = ⟨Car, Op⟩, we did not exclude the case Car = ∅. If there is no carrier, then there is no constant or function in Oops (Car), because they need a codomain. But there are relations that don’t need a carrier, namely the nullary ones. There are exactly two nullary relations at all and we named them “⊥” and “⊤” ( Thalg 19.3.1 ).

Carrier–free structures 𝔄 = ⟨∅, Op⟩ with Op ⊆ {⊥, ⊤} don’t make very much sense as such. But as an interpretation or symbolized structure ℑ (defined soon below), when we have symbols, say A_{1}, …, A_{n} available and each one points to a “truth value” A_{i}^{ℑ} ∈ {⊥, ⊤} (alternatively, with {f, t} or {0, 1} instead of {⊥, ⊤}), then ℑ turns into a model for propositional logic. Therefore, we call such a carrier–free structure propositional (see definition 15.6.1(5)). Later on in 19.4.2(2), we define the class Form (𝔖 † 𝔙) of (first– order predicate–logical) formulas for arbitrary extended signatures 𝔖 † 𝔙. When this 𝔖 † 𝔙 only comprises symbols A = {A_{1}, …, A_{n}} for nullary relations, predicate logic becomes the special case of propositional logic and we denote the whole formula class by Form (A). But since Form (A) is the carrier of a very important structure, let us introduce it already as the following example.

15.3.10 Example propositional logic

Let A be a given set of identifiers. The class

Form (A)

of all propositional formulas on A is recursively defined to comprise the following six kinds of expressions:

α  f  t  [ φ_{1} ∧ … ∧ φ_{n} ]  [ φ_{1} ∨ … ∨ φ_{n} ]  ¬φ

for all α ∈ A and φ, φ_{1}, …, φ_{n} ∈ Form (A).

The whole structure alltogether is the default propositional formula algebra on A,

𝔉𝔬𝔯𝔪 (A) := ⟨Form (A) , ⇒, ⇔, f, t, ⊓, ⊔, ¬⟩

which is an example of what we call a quasi–boolean algebra.^{13}

15.3.11 Remark

Let us take an example structure as the real number arithmetic ℜ = ⟨ℝ, 0, 1, +, ·, ≤⟩ from 15.3.4 again to mention a number of general issues.

(1) The order in the specification does not matter. Recall definition 15.3.1, that we defined “⟨ℝ, 0, 1, +, ·, ≤⟩” as a short form for ⟨{ℝ} , {0, 1, +, ·, ≤}⟩. So it doesn’t really matter in which order we write the carrier classes and the operators. For example ⟨ℝ, 0, 1, +, ·, ≤⟩ and ⟨ℝ, ≤, 0, +, 1, ·⟩ are the same structure.

(2) Specified and derived operators.

Next to the specified operators 0, 1, +, ·, ≤, basic arithmetic on ℝ requires operators like −, <, -1, / as well. If we consider a structure as a module or library in a software system, we better specify every operator which is likely to be used (frequently). On the other hand, we can also derive them, which means that we introduce them by means of the given ones and the formal expressions we are about to define below (in 19.4.2). For example, we could derive the (unary) negation and (binary) subtraction by

\begin{matrix}-◯ 1 := [ \begin{matrix}ℝ ⟶ ℝ \\ n ↦ the m ∈ ℝ with n + m = 0 \end{matrix} ] \\ ◯ 1 − ◯ 2 := [ \begin{matrix}ℝ × ℝ ⟶ ℝ \\ ⟨n, m⟩ ↦ n + (-m) \end{matrix} ] \end{matrix}

In fact, we could then also omit the two constants in ⟨ℝ, 0, 1, +, ·, ≤⟩, because we can derive 0 and 1 in terms of + an · by putting

0 := the n ∈ ℝ with ∀m ∈ ℝ . n · m = n
1 := the n ∈ ℝ with ∀m ∈ ℝ . n · m = m

(3) Partial functions.

Similar to the negation and subtraction, we could also derive the reciprocal and division from the given operators in ℜ by putting

13See Thalg 6.4 and Thalg 7.6.2(4) .

◯ 1 ^{-1} := [ \begin{matrix}ℝ −−→ ℝ \\ n ↦ the m ∈ ℝ with n · m = 1 \end{matrix} ]

◯ 1 /◯ 2 := [ \begin{matrix}ℝ × ℝ −−→ ℝ \\ ⟨n, m⟩ ↦ \begin{cases}n · (m^{-1}) & if m ≠ 0 \\ undefined & else \end{cases} \end{matrix} ]

But different to the negation and subtraction we cannot include these two into our structure specification for ℜ, because they are both truely partial functions, i.e. a more general function concept in which application results might not be defined for all arguments of the given domain. In this example, 0^{-1} and n/0 are not defined. In our notation, “−−→” instead of “⟶” in the type expression indicates a partial function. Partial function occur very often in many practical contexts. There are some strategies to fit partial functions into the framework of the ordinary structure definition. For example, we could introduce a second carrier ℝ′ := ℝ \ {0} and change the domains and codomains accordingly, or we could choose a default element d of the codomain that is returned by a partial function f in case f is applied to an undefined argument. But all these strategies have their drawbacks, too.

15.4 Ordinary type expressions and signatures

15.4.1 Definition

Let Csy an identifier class, called carrier symbols in this context. The ordinary type expression class of Csy, written

Otex (Csy)

is defined to comprise the following expressions:

C  for every C ∈ Csy

(constant type expression)

D_{1} × … × D_{n} ⟶ C  for D_{1}, …, D_{n}, C ∈ Csy

(ordinary function type expression)

D_{1} ↭ … ↭ D_{n} for D_{1}, …, D_{n} ∈ Csy with n ≥ 2
Pty(D) and BOOL  for D ∈ Csy

(ordinary relation type expression)

15.4.2 Remark

Note the difference between an ordinary type and an ordinary type expression. ( ; 𝅝 ; ) Again, let ℕ be the natural numbers and ℤ the integers, then

ℕ × ℕ ⟶ ℤ

is a class of certain functions and an example of an ordinary type, a member of Otyp ({ℕ, ℤ}).

( ; 𝅝 ; ) If N and Z are two carrier symbols, i.e. two identifiers, then

                         N × N ⟶ Z

is an ordinary type expression and a member of Otex ({N, Z}).

15.4.3 Remark unary and nullary relations

Recall fig. 8(2)(b)(1) , that Pty (D) is the type for a unary relation (or “property”) on a given class D. For example,

P := [\begin{matrix}Pty & (ℤ) \\ x ↝ x > 0 \end{matrix}]

denotes the property of an integer to be positive. So, e.g. P (3) is true, but P (-7) is not. Accordingly, we choose

                                                                                                 Pty(D)

as the form for an unary relation type expression.

Also in fig. 8(2)(b)(ii), a nullary relation was defined to be of type 𝔹. The nullary cartesian product is the class of all the nullary tuples, i.e. {⟨⟩}. Each nullary relation is therefore exactly one of the following two

⊥ := [\begin{matrix}\{⟨⟩\} \\ ⟨⟩ ↝ false \end{matrix}]  or  ⊤ := [\begin{matrix}\{⟨⟩\} \\ ⟨⟩ ↝ true \end{matrix}]

That justifies the choice of “𝔹” as the type for nullary relations. Accordingly, we take

                                                                                                  BOOL

as the type expression for nullary relations.

15.4.4 Definition

An (ordinary) signature is given by

𝔖 = ⟨Csy, Osy, sig⟩

and made of two disjunct classes of identifiers and one function, namely

(1) Csy the carrier symbol class (2) Osy the operator symbol class (3) sig : Osy ⟶ Otex (Csy) the signature function

Let 𝔖 = ⟨Csy, Osy, sig⟩ be a signature and o ∈ Osy.

As usual and similar to the custom 15.2.2 we use a type declaration, i.e. an expression

o : τ to denote that sig (o) = τ

And o ∈ Osy is called

(i) a constant (symbol) in 𝔖, if

                                                                        o : C

(ii) a function symbol in 𝔖, if o : D_{1} × … × D_{n} ⟶ C (iii) a relation symbol in 𝔖, if

o : D_{1} ↭ … ↭ D_{n}

If 𝔖 = ⟨Csy, Osy, sig⟩ is a signature and both Csy = {S_{1}, …, S_{k}} and Osy = {o_{1}, …, o_{n}} are finite, then 𝔖 itself is called finite and is more conveniently represented by its compact form

𝔖 = ( S_{1}, …, S_{k} ; o_{1} : sig(o_{1}) ; ⋮ ; o_{n} : sig(o_{n}) )

If 𝔖 = ⟨Csy, Osy, sig⟩ is a signature, we write

Csy (𝔖) := Csy Osy (𝔖) := Osy sig_{𝔖} := sig

to recover the components from “𝔖”.

15.4.5 Remark

When defining concrete examples of signatures, we use a special font for all its identifiers and e.g. write ( ; 𝅝 ; ) D , C , … for carrier symbols

( ; 𝅝 ; ) c , const , … for constants ( ; 𝅝 ; ) f , g , add , mult , … for function symbols

( ; 𝅝 ; ) R , S , Smeq , … for relation symbols

Our convention to start identifiers for carrier and relation symbols with a capital letter, while constants and function symbols have an initial small letter, is intended to support a quick grasp of example signatures. But it is not part of the official definition. The only rule given in 15.4.4 is the disjunctness of Csy (𝔖) and Osy (𝔖) within a given signature 𝔖. Note, that we don’t use idiosyncratic mathematical layouts like “◯ 1 + ◯ 2 ” or “◯ 1 ^{◯ 2} ” or other constructions than the default prefix notation “o(ξ_{1}, …, ξ_{n})” when we apply an operator symbol o to arguments ξ_{1}, …, ξ_{n} later on in the definition of terms and formulas.

15.4.6 Example

An example of a signature is given by

                   𝔖 = ( \begin{matrix}C, D \\ c : C \\ d : D \\ f : C ⟶ C \\ g : C × C ⟶ D \\ R : C ↭ D \\ S : C ↭ C ↭ D \end{matrix} )

which is supposed to be read as follows:

(1) C and D are the two symbols for the carrier classes involved.

(2) There are six operator symbols defined on the given carrier classes, namely

(a) two constants c and d, of type C and D, respectively,

(b) one function symbol f of type C ⟶ C and one function symbol g of type C × C ⟶ D

(c) one relation symbol R, standing for a binary relation between C and D, and one ternary relation symbol S, which is of type

    C ↭ C ↭ D.

15.4.7 Example signature for groups

A signature for groups, with one binary “operation” symbol op on a given carrier G, one “neutral element” neu and one “inverter” inv is given by

                  𝔖gr = ( \begin{matrix}G \\ neu : G \\ op : G × G ⟶ G \\ inv : G ⟶ G \end{matrix} )

15.4.8 Example signature for (ordered) rings

A finite signature for ordered rings is given by

                 𝔖org = ( \begin{matrix}S \\ zero : S \\ unit : S \\ add : S × S ⟶ S \\ mult : S × S ⟶ S \\ neg : S ⟶ S \\ Smeq : S ↭ S \end{matrix} )

where Smeq is the relation symbol for the binary “smaller–or–equal” relation. Without Smeq, we denote the signature by

𝔖rg

which is our signature for rings.

15.4.9 Example signature for collections

What we call the signature for collections shall be the signature defined as

                                                                                    𝔖col = ( \begin{matrix}Item, Coll \\ emp : Coll \\ ins : Item × Coll ⟶ Coll \\ del : Item × Coll ⟶ Coll \\ Mem : Item ↭ Coll \\ Emp : Pty(Coll) \\ Incl : Coll ↭ Coll \end{matrix} )

The motivation for this formalism is of course that

Item  is the item class

                                                                             Coll

is the collection class, each one a collection of items

emp  is the empty collection
ins(i, s)  is the insertion of item i into collection s
del(i, s)  is the deletion of item i from collection s
Mem(i, s)  is saying that i is a member of s
Emp(s)  is saying that s is an empty collection

Incl(s, t) is saying that collection s is included by collection t, in the sense that s is a subset of t 15.4.10 Definition

For every signature 𝔖 we define

dosys_{𝔖} :=

Osy (𝔖) ⟶ Csy (𝔖)^{∗}

o ↦ \begin{cases}⟨⟩ & if o : C \\ ⟨D_{1}, …, D_{n}⟩ & if o : D_{1} × … × D_{n} ⟶ C \\ ⟨D_{1}, …, D_{n}⟩ & if o : D_{1} ↭ … ↭ D_{n} \end{cases}

the domain symbols function

cosy_{𝔖} :=

Osy (𝔖) −−→ Csy (𝔖)

o ↦ \begin{cases}C & if o : C \\ C & if o : D_{1} × … × D_{n} ⟶ C \\ undefined & if o : D_{1} ↭ … ↭ D_{n} \end{cases}

the codomain symbol function

ar_{𝔖} := [ \begin{matrix}Osy (𝔖) ⟶ ℕ \\ o ↦ \begin{cases}0 & if o : C \\ n & if o : D_{1} × … × D_{n} ⟶ C \\ n & if o : D_{1} ↭ … ↭ D_{n} \end{cases} \end{matrix} ]

the arity function

15.4.11 Example

Let us take the signature for ordered rings from 15.4.8 again,

𝔖org = ( \begin{matrix}S \\ zero : S \\ unit : S \\ add : S × S ⟶ S \\ mult : S × S ⟶ S \\ neg : S ⟶ S \\ Smeq : S ↭ S \end{matrix} )

We obtain e.g.

ar_{𝔖}(zero) = 0 ar_{𝔖}(add) = 2 ar_{𝔖}(neg) = 1 ar_{𝔖}(Smeq) = 2

dosys_{𝔖}(zero) = ⟨⟩ dosys_{𝔖}(add) = ⟨G, G⟩ dosys_{𝔖}(neg) = ⟨G⟩

dosys_{𝔖}(Smeq) = ⟨G, G⟩ cosy_{𝔖}(zero) = G cosy_{𝔖}(add) = G

cosy_{𝔖}(neg) = G cosy_{𝔖}(Smeq) is undefined

15.5 Interpretations or symbolized structures

15.5.1 Definition interpretations or symbolized structures

An (ordinary) interpretation or symbolized structure is given by

ℑ = ⟨𝔖, 𝔄, car, op⟩

where

(1) 𝔖 = ⟨Csy, Osy, sig⟩ is an (ordinary) signature

(2) 𝔄 = ⟨Car, Op⟩ is an (ordinary) structure (3) car : Csy ⟶ Car is surjective (i.e. a schema)

(4) op : Osy ⟶ Op is surjective (i.e. a record) such that the signatures of 𝔖 and 𝔄 are compatible in the sense that for each o ∈ Osy holds:

(i) o : C implies op(o) : car(C)

(ii) o : D_{1} × … × D_{n} ⟶ C implies

op(o) : car(D_{1}) × … × car(D_{n}) ⟶ car(C) (iii) o : D_{1} ↭ … ↭ D_{n} implies

op(o) : car(D_{1}) ↭ … ↭ car(D_{n})

If ℑ = ⟨𝔖, 𝔄, car, op⟩ is an interpretation, we say that “ℑ is an interpretation of 𝔖” or “𝔖 is a symbolization of 𝔄”. And we define

𝔰𝔦𝔤𝔫 (ℑ) := 𝔖  𝔰𝔱𝔯𝔲𝔠 (ℑ) := 𝔄
car_{ℑ} := car  op_{ℑ} := op
Csy (ℑ) := Csy (𝔖) Osy (ℑ) := Osy (𝔖)
Car (ℑ) := Car (𝔄)  Op (ℑ) := Op (𝔄)
sig_{ℑ} := sig_{𝔖}  ar_{ℑ} := ar_{𝔖}
cosy_{ℑ} := cosy_{𝔖}  dosys_{ℑ} := dosys_{𝔖}

to recover all components and subcomponents from a given “ℑ”.

15.5.2 Remark

In definition 15.5.1, car : Csy ⟶ Car is a schema, i.e. it assigns a class car (S) to each class symbol S. Such a car induces a function Otex (Csy) ⟶ Otyp (Car) in a very natural way. If we denote it with the same name car, this function is

car := [ \begin{matrix}Otex (Csy) ⟶ Otyp (Car) \\ τ ↦ \begin{cases}car (C) & if τ = C \\ car (D_{1}) × … × car (D_{n}) ⟶ car (C) \\ if τ = D_{1} × … × D_{n} ⟶ C \\ car (D_{1}) ↭ … ↭ car (D_{n}) \\ if τ = D_{1} ↭ … ↭ D_{n} \end{cases} \end{matrix} ]

And then, the compatibility conditions (i)—(iii) in definition 15.5.1 can be replaced by the simple equation

car ∘ sig = typ ∘ op

The according function diagram is

[figure: Osy; Op; Otex (Csy); Otyp (Car); op; sig; typ; car]

15.5.3 Definition special notations for interpretations

For a given interpretation ℑ = ⟨𝔖, 𝔄, car, op⟩ with signature 𝔖 = ⟨Csy, Osy, sig⟩ it is a custom to write

S^{ℑ} instead of car(S) for each S ∈ Csy
o^{ℑ} instead of op(o) for each o ∈ Osy

If ℑ = ⟨𝔖, 𝔄, car, op⟩ is an interpretation of a finite signature

𝔖 = ( S_{1}, …, S_{k} ; o_{1} : τ_{1} ; ⋮ ; o_{n} : τ_{n} )

then ℑ itself is often represented more conveniently by its compact form

ℑ = [ \begin{matrix}S_{1} & ↦ & S_{1}^{ℑ} \\ ⋮ & & ⋮ \\ S_{k} & ↦ & S_{k}^{ℑ} \\ o_{1} & ↦ & o_{1}^{ℑ} \\ ⋮ & & ⋮ \\ o_{n} & ↦ & o_{n}^{ℑ} \end{matrix} ] = [ \begin{matrix}S_{1} & ↦ & car(S_{1}) \\ ⋮ & & ⋮ \\ S_{k} & ↦ & car(S_{k}) \\ o_{1} & ↦ & op(o_{1}) \\ ⋮ & & ⋮ \\ o_{n} & ↦ & op(o_{n}) \end{matrix} ]

15.5.4 Remark

Suppose, we represent an interpretation ℑ = ⟨𝔖, 𝔄, car, op⟩ with a finite signature by its compact form

ℑ = [ \begin{matrix}S_{1} & ↦ & car(S_{1}) \\ ⋮ & & ⋮ \\ S_{k} & ↦ & car(S_{k}) \\ o_{1} & ↦ & op(o_{1}) \\ ⋮ & & ⋮ \\ o_{n} & ↦ & op(o_{n}) \end{matrix} ]

Usually, we can recover all four components 𝔖, 𝔄, car, op from this representation, especially because car and op are surjective. But there is also an ambiguity in the compact representation of 15.5.3. Consider, for example the interpretation

ℑ = [ \begin{matrix}A ↦ & ℤ \\ B ↦ & ℤ \\ f ↦ & f^{𝔍} \end{matrix} ]  where  f^{𝔍} : ℤ ⟶ ℤ

Then the signature could be one of the following four:

𝔰𝔦𝔤𝔫 (𝔍) = ( \frac{A, B}{f : A ⟶ A} ) 𝔰𝔦𝔤𝔫 (𝔍) = ( \frac{A, B}{f : B ⟶ A} )

𝔰𝔦𝔤𝔫 (𝔍) = ( \frac{A, B}{f : A ⟶ B} ) 𝔰𝔦𝔤𝔫 (𝔍) = ( \frac{A, B}{f : B ⟶ B} )

However, in practice the situation is usually clear.

15.5.5 Example

A suitable interpretation for the previous example signature 𝔖 from 15.4.6

                   𝔖 = ( \begin{matrix}C, D \\ c : C \\ d : D \\ f : C ⟶ C \\ g : C × C ⟶ D \\ R : C ↭ D \\ S : C ↭ C ↭ D \end{matrix} )

is given by

ℑ := [ \begin{matrix}C ↦ & \{1, 2\} \\ D ↦ & \{1, 2, 3, 4\} \\ c ↦ & 1 \\ d ↦ & 4 \\ f ↦ & [\begin{matrix}\{1, 2\} ⟶ \{1, 2\} \\ x ↦ 3 − x \end{matrix}] \\ g ↦ & [\begin{matrix}\{1, 2\} × \{1, 2\} ⟶ \{1, 2, 3, 4\} \\ ⟨x, y⟩ ↦ x + y \end{matrix}] \\ R ↦ & [\begin{matrix}\{1, 2\} ↭ \{1, 2, 3, 4\} \\ ⟨x, y⟩ ↝ x ≤ y \end{matrix}] \\ S ↦ & [\begin{matrix}\{1, 2\} ↭ \{1, 2\} ↭ \{1, 2, 3, 4\} \\ ⟨x, y, z⟩ ↝ x + y = z \end{matrix}] \end{matrix} ]

Note that

c^{ℑ}, d^{ℑ}, f^{ℑ}, g^{ℑ}, R^{ℑ}, S^{ℑ} ∈ Oops({C^{ℑ}, D^{ℑ}})

and for example

(1) g^{ℑ}(c^{ℑ}, c^{ℑ}) = g^{ℑ}(1, 1) = 1 + 1 = 2

(2) f^{ℑ}(f^{ℑ}(c^{ℑ})) = 3 − (3 − 1) = 1

(3) S^{ℑ}(g^{ℑ}(c^{ℑ}, c^{ℑ}), f^{ℑ}(c^{ℑ}), d^{ℑ}) is S^{ℑ}(1 + 1, 3 − 1, 4) which is true, because (1 + 1) + (3 − 1) = 4.

15.5.6 Example

Consider the finite signature for ordered rings from example 15.4.8

               𝔖org = ( \begin{matrix}S \\ zero : S \\ unit : S \\ add : S × S ⟶ S \\ mult : S × S ⟶ S \\ neg : S ⟶ S \\ Smeq : S ↭ S \end{matrix} )

(1) One interpretation of 𝔖org is given by

ℑ = [ \begin{matrix}S ↦ & ℤ \\ zero ↦ & 0 \\ unit ↦ & 1 \\ add ↦ & ◯ 1 + ◯ 2 \\ mult ↦ & ◯ 1 · ◯ 2 \\ neg ↦ & -◯ 1 \\ Smeq ↦ & ◯ 1 ≤ ◯ 2 \end{matrix} ]

where ℤ is the class of integers, 0 and 1 the two distinguished integers, ◯ 1 + ◯ 2 and ◯ 2 · ◯ 2 are the addition and multiplication of integers, -◯ 1 is the negation (i.e. x ↦ -x for each x ∈ ℤ) and ◯ 1 ≤ ◯ 2 the usual linear order on integers. So the structure of ℑ is the usual ordered ring of integers

𝔰𝔱𝔯𝔲𝔠 (ℑ) = ⟨S^{ℑ}, zero^{ℑ}, unit^{ℑ}, add^{ℑ}, mult^{ℑ}, neg^{ℑ}, Smeq^{ℑ}⟩
= ⟨ℤ, 0, 1, +, ·, -, ≤⟩

(2) Another interpretation of 𝔖org, this time on the carrier 𝔹 = {0, 1}, is given by

𝔍 = [ \begin{matrix}S ↦ & 𝔹 \\ zero ↦ & 0 \\ unit ↦ & 1 \\ add ↦ & [\begin{matrix}𝔹 × 𝔹 ⟶ 𝔹 \\ ⟨β_{1}, β_{2}⟩ ↦ \begin{cases}0 & if β_{1} = β_{2} \\ 1 & if β_{1} ≠ β_{2} \end{cases} \end{matrix} ] \\ mult ↦ & [\begin{matrix}𝔹 × 𝔹 ⟶ 𝔹 \\ ⟨β_{1}, β_{2}⟩ ↦ \begin{cases}1 & if β_{1} = β_{2} = 1 \\ 0 & else \end{cases} \end{matrix} ] \\ neg ↦ & [\begin{matrix}𝔹 ⟶ 𝔹 \\ β ↦ \begin{cases}1 & if β = 0 \\ 0 & if β = 1 \end{cases} \end{matrix} ] \\ Smeq ↦ & [\begin{matrix}𝔹 ↭ 𝔹 \\ ⟨β_{1}, β_{2}⟩ ↝ β_{1} = 0 or β_{2} = 1 \end{matrix}] \end{matrix} ]

The resulting structure is very similar to the bit value algebra from

Thalg 5.8.4

𝔅 = ⟨𝔹, ≤, 0, 1, -, ∧, ∨⟩

More precisely

zero^{𝔍} = 0  unit^{𝔍} = 1  mult^{𝔍} = ◯ 1 ∧ ◯ 2

neg^{𝔍} = -◯ 1 Smeq^{𝔍} = ◯ 1 ≤ ◯ 2

Except that add^{𝔍} is not the join (or disjunctor) ◯ 1 ∨ ◯ 2 , but the boolean addition or antivalence with

add^{𝔍}(β_{1}, β_{2}) = -(β_{1} ↔ β_{2}) = (β_{1} ∧ -β_{2}) ∨ (-β_{1} ∧ β_{2})

The resulting structure 𝔰𝔱𝔯𝔲𝔠 (𝔍) is thus not a boolean algebra, but a so–called boolean ring.

15.5.7 Example

Let us consider the signature for collections from example 15.4.9

𝔖col = ( \begin{matrix}Item, Coll \\ emp : Coll \\ ins : Item × Coll ⟶ Coll \\ del : Item × Coll ⟶ Coll \\ Mem : Item ↭ Coll \\ Emp : Pty(Coll) \\ Incl : Coll ↭ Coll \end{matrix} )

(1) One structure for 𝔖col is of course the tuple collection structure from example 15.3.2

𝔗𝔠𝔬𝔩 (I) := ⟨I, I^{∗}, emp, ins, del, Emp, Mem, Incl⟩

where I is some non–empty class and I^{∗} is the class of all the tuples on I. The interpretation itself is then given by

ℑ := [ \begin{matrix}Item ↦ & I \\ Coll ↦ & I^{∗} \\ emp ↦ & emp \\ ins ↦ & ins \\ del ↦ & del \\ Mem ↦ & Mem \\ Emp ↦ & Emp \\ Incl ↦ & Incl \end{matrix} ]

This is a well–defined interpretation, because 𝔖col and 𝔗𝔠𝔬𝔩 (I) are compatible. For example,

del^{ℑ} : Item^{ℑ} × Coll^{ℑ} ⟶ Coll^{ℑ} is del : I × I^{∗} ⟶ I^{∗}

indeed. In this example interpretation the operator say del looks similar to the operator symbol del and that similarity is of course intended. But for the sake of our subject, this might be more confusing than helpful.

(2) Let us take another interpretation for 𝔖col, where the collections are made of finite sets on I so that the interpretation becomes

ℑ := [ \begin{matrix}Item ↦ & I \\ Coll ↦ & Fin (I) \\ emp ↦ & ∅ \\ ins ↦ & [\begin{matrix}I × Fin (I) ⟶ Fin (I) \\ ⟨i, S⟩ ↦ S ∪ \{i\} \end{matrix}] \\ del ↦ & [\begin{matrix}I × Fin (I) ⟶ Fin (I) \\ ⟨i, S⟩ ↦ S \ \{i\} \end{matrix}] \\ Mem ↦ & ◯ 1 ∈ ◯ 2 \\ Emp ↦ & [\begin{matrix}Pty & (I) \\ S ↝ S = ∅ \end{matrix}] \\ Incl ↦ & ◯ 1 ⊆ ◯ 2 \end{matrix} ]

15.6 Special structures and signatures

15.6.1 Definition

A signature 𝔖 is called

(1) a single–carrier or uni–sort signature, if 𝔖 has exactly one carrier symbol.

(2) a functional signature, if all operator symbols are constants or function symbols

(3) a relational signature, if all operators symbols are relation symbols

(4) an algebraic signature, if it is a functional and single–carrier signature

(5) propositional, if it has no carrier symbol at all, thus no constants, no functions, and no relation symbols other than nullary ones.

An interpretation ℑ or structure 𝔄 is called single–carrier / uni–sort / functional / relational / algebraic / propositional iff the signature of ℑ or any symbolization of 𝔄 has the according property.

(1) In case of a single–carrier structure, one often uses the same identifier (but maybe with another style) for the unique carrier and the entire structure itself. For example, one takes “A”, “B”, “C”, … for the (unique) carrier symbols of the structure “𝔄”, “𝔅”, “ℭ”, …, respectively. For standard structures like the ring of integers, it is custom to use “ℤ” for both the structure and the carrier.

(2) An algebraic signature 𝔖 is often completely represented by

𝔖 = ⟨S, Osy, ar⟩

where S is the unique carrier symbol and Op is the operator symbol class, and ar : Osy ⟶ ℕ is the arity function, as defined in 15.4.10.

(3) If 𝔖 is a propositional signature, it has no carrier symbols. Note, that indeed the only possible operator symbols are nullary relation symbols R with R : 𝔹, often called atoms. Each possible interpretation of 𝔖 assigns either the empty ⊥ or the full relation ⊤ ( Thalg 19.3.1 ) to each of these atoms. So essentially, each structure for 𝔖 is a record which assigns a bit value to each atom. In 46.2.11 we will see, that the expressions built from 𝔖 are exactly the propositional formulas on the given atom set.

Part VIII

Excursion: schematic relations and functions

16 Excursion into schematic operators

16.1 Introduction and overview

16.1.1 from ordinary to schematic operators

So far, we did things the ordinary or n–ary way: ( ; 𝅝 ; ) Arguments of operators (i.e. functions or relations) were n–ary

tuples ξ = ⟨ξ_{1}, …, ξ_{n}⟩ ( ; 𝅝 ; ) Domains of operators were n–ary cartesian products D_{1} ×…×

D_{n}, which means that the schema (see definition 15.2.5) of such an operator is the n–ary schema ⟨D_{1}, …, D_{n}⟩.

We now introduce a generalization of ordinary operators, namely the schematic relations and schematic functions. ( ; 𝅝 ; ) Now, arguments are records, for example

ξ = [ \begin{matrix}i_{1} & ↦ & ξ_{1} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & ξ_{n} \end{matrix} ]

Each tuple ξ = ⟨ξ_{1}, …, ξ_{n}⟩ is now understood as an ordinary record, where the indices i_{1}, …, i_{n} are 1, …, n, i.e.

ξ = ⟨ξ_{1}, …, ξ_{n}⟩ = [ \begin{matrix}1 & ↦ & ξ_{1} \\ ⋮ & & ⋮ \\ n & ↦ & ξ_{n} \end{matrix} ]

( ; 𝅝 ; ) A schema simply is a record X, where each value X_{i} is a class. ( ; 𝅝 ; ) The cartesian product ⊗X of such a schema is then made of

all the records ξ with ξ_{i} ∈ X_{i} for all the indices i. Again, the ordinary case D_{1} ×…×D_{n} is nothing but the cartesian product of the ordinary schema, i.e.

D_{1} × … × D_{n} = ⊗⟨D_{1}, …, D_{n}⟩

Thus a schematic operator is an operator, where the domain is the cartesian product ⊗X of an arbitrary schema X. In particular

( ; 𝅝 ; ) A schematic function is a function

f : ⊗X ⟶ C  where  X is a schema and C a class

( ; 𝅝 ; ) A schematic relation is a relation

R = [\begin{matrix}X \\ Γ \end{matrix}]  where  X is a schema and Γ ⊆ ⊗X

16.1.2 schematic operators in predicate logic

What use do schematic operators have for predicate logic? They are the natural meaning of formal expressions in the context of an interpretation ℑ. We will soon give a precise version of this statement. But to give an impression, let us sketch the essential idea. Given an extended signature 𝔖 † 𝔙, which is a signature 𝔖 with a sorted variable set 𝔙 attached, i.e. some variables v, each with an assigned carrier symbol C (we write v : C). This extended signature induces two classes of expressions: ( ; 𝅝 ; ) Term (𝔖 † 𝔙) the terms, e.g. each constant “c” is a term or

each application “f (θ_{1}, …, θ_{n})” with function symbol f and terms θ_{i} (at least if their types fit together)

( ; 𝅝 ; ) Form (𝔖 † 𝔙) the formulas, e.g. if R : C ↭ C is the type declaration in 𝔖 and x : C and y : C are two variables in 𝔙, then “∀x . ∃y . [ R(x, y) ∨ R(y, x) ]” is a formula on 𝔖 † 𝔙.

Suppose, we also have an interpretation ℑ for 𝔖. We already saw how ℑ assigns a function f^{ℑ} to each function symbol f and a relation R^{ℑ} to the relation symbols R. But ℑ also induces ( ; 𝅝 ; ) a schematic function xfun (θ) for each term θ, and ( ; 𝅝 ; ) a schematic relation xrel (φ) for each relation φ.

But there is more to it. We not only have schematic operators, we have operations defined on these operators that reflect all the syntactic constructions on the formal expressions. ( ; 𝅝 ; ) For schematic functions f, f_{1}, …, f_{n} we might be able to con-

struct a coapplication f •⟨f_{1}, …, f_{n}⟩, which is again a schematic function. And if we now take the term f (θ_{1}, …, θ_{n}), we have

xfun (f (θ_{1}, …, θ_{n})) = f^{ℑ} (xfun(θ_{1}), …, xfun(θ_{n}))

i.e. the syntactic application turns into a coapplication on schematic functions.

( ; 𝅝 ; ) Similarly, we have operations ⊓, ⊔, ¬, ↾, ⇂ defined on schematic relations, so that e.g.

xrel ([ φ ∧ ψ]) = xrel(φ) ⊓ xrel(ψ)

and a syntactic generalization (“∀”) turns into an infimum elimination (“↾”)

xrel (∀x . φ) = xrel(φ)↾ x

16.1.3 overview

We first give a summary the basic notions like records, schemas etc. and we introduce schematic relations and the operations on them. All this is thoroughly elaborated in another text.^{14} But since we want this present text to be self–contained, we recall the core content here in a couple of figures : 9 Records 10 Schemas and their various products 11 Schematic relations and their various products 12 Various table diagrams 13 Operations and algebras on relations, part I/III 14 Operations and algebras on relations, part II/III 15 Operations and algebras on relations, part III/III

Section ?? is then devoted to the introduction of schematic functions, coapplications and the like. Alltogether, this chapter ???? is a lot of information and it may be a good advice to just skip it for now and continue with the introduction of the formal language in ??express.tex?? .

14See “Theory algebras of relations”, available from www.bucephalus.org.

Figure 9: Records

(1) Record ( Thalg 9.1.2 and Thalg 9.1.5 )

A record ξ is defined by

(a) dom (ξ) its domain, also called index class or attribute class, which is an identifier class, and

(b) ξ(i) or ξ_{i} , an arbitrary value for each index i ∈ dom (ξ)

We also define

(c) cod (ξ) := {ξ_{i} | i ∈ dom (ξ)} the codomain or value class of ξ

This way, a record is the same as a surjective function

ξ = [ \begin{matrix}dom (ξ) ⟶ cod (ξ) \\ i ↦ ξ_{i} \end{matrix} ]

(2) Notation for records ( Thalg 9.1.5 )

The default form for a record ξ with domain I is

ξ = [ξ_{i}|i ∈ I]  or  ξ = [i ↦ ξ_{i}|i ∈ I]

But if ξ is finite, which means that its domain I = {i_{1}, …, i_{n}} is finite, we also write

ξ = [ \begin{matrix}i_{1} & ↦ & ξ_{i1} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & ξ_{in} \end{matrix} ]

And if ξ is univalent in the sense that all values ξ_{i} are the same constant value c, we sometimes write

[c|I] instead of [i ↦ c|i ∈ I]

(3) Tuples as records ( Thalg 9.2.1 )

Each tuple ⟨ξ_{1}, …, ξ_{n}⟩ can be redefined as a record with domain {1, …, n}, i.e.

⟨ξ_{1}, …, ξ_{n}⟩ = [ \begin{matrix}1 & ↦ & ξ_{1} \\ ⋮ & & ⋮ \\ n & ↦ & ξ_{n} \end{matrix} ]

(4) Empty record

If ξ = [ξ_{i}|i ∈ I] is the empty record in the sense that I = ∅, then it is the same as the (unique) empty function ξ : ∅ ⟶ ∅, which

is the empty tuple ⟨⟩. For all these identical concepts we use ⟨⟩ as the default symbol.

(5) Basic operations on records

If ξ = [ξ_{i}|i ∈ I] is a record and J ⊆ I we define ( Thalg 10.2.1 )

(a) pr (ξ, J) := [ξ_{j}|j ∈ J] the projection of ξ onto J

For two records ξ = [ξ_{i}|i ∈ I] and υ = [υ_{j}|j ∈ J] we define ( Thalg 10.3.2 )

(b) ξ ⌣ υ , saying that ξ and υ are compatible, if ξ_{k} = υ_{k} for

all k ∈ I ∩ J; otherwise we write ξ ⌣̸ υ

(c) ξ ≤ υ , saying that ξ is a subrecord of υ or smaller than υ,

if I ⊆ J and ξ_{i} = υ_{i} for all i ∈ I; otherwise we write ξ ≰ υ

(e) ξ ≬ υ , saying that ξ and υ are distinct, if I ∩ J = ∅; other-

wise we write ξ ≬̸ υ

And in case ξ ≬ υ, we define ( Thalg 10.4.1 )

(f) ξ ˙∨ υ := [ζ_{k}|k ∈ (I ∪ J)] with ζ_{k} := \begin{cases}ξ_{k} & if k ∈ I \\ υ_{k} & if k ∈ J \end{cases}

the distinct join of ξ and υ

(6) Record junctions

For each two records ξ = [ξ_{i}|i ∈ I] and υ = [υ_{j}|j ∈ J] we put

D^{⌣̸} := {k ∈ (I ∩ J) | ξ_{k} ≠ υ_{k}} and D^{⌣} := (I ∪ J) \ D^{⌣̸}

for their incompatible and compatible domain ( Thalg 11.3.1 ) and

ζ_{k} := \begin{cases}υ_{k} & if k ∈ J \\ ξ_{k} & if k ∈ (I \ J) \end{cases} for each k ∈ (I ∪ J)

and we define ( Thalg 11.4.3 )

(a) ξ \ υ := [ξ_{i}|i ∈ (I \ J)] for ξ without υ (subtraction)

(b) ξ ⋉ υ := [ξ_{i}|i ∈ D^{⌣̸}] the part of ξ rejected by υ

(c) ξ ∧ υ := [ζ_{k}|k ∈ (I ∩ J ∩ D^{⌣})] for ξ and υ (meet)

(d) ξ ∨ υ := [ζ_{k}|k ∈ D^{⌣}] for ξ or υ (join)

(e) ξ ▽ υ := [ζ_{k}|k ∈ ((I \ J) ∪ (J \ I))] for ξ opposed to υ

(f) ξ√ υ := [ζ_{k}|k ∈ (I ∪ J)] for ξ updated with υ

\underline{(7) Example}

ξ = [\begin{matrix}a ↦ & 1 \\ c ↦ & 3 \\ d ↦ & 4 \\ e ↦ & 5 \\ f ↦ & 6 \end{matrix}]  and  υ = [\begin{matrix}b ↦ & 2 \\ c ↦ & 3 \\ d ↦ & 77 \\ e ↦ & 88 \\ f ↦ & 6 \end{matrix}]

have D^{⌣} = {a, b, c, f} and D^{⌣̸} = {d, e} and so:

ξ \ υ = [ a ↦ 1 ], υ \ ξ = [ b ↦ 2 ], ξ ⋉ υ = [\begin{matrix}d ↦ & 4 \\ e ↦ & 5 \end{matrix}],

υ ⋉ ξ = [\begin{matrix}d ↦ & 77 \\ e ↦ & 88 \end{matrix}], \begin{matrix}ξ ∧ υ \\ υ ∧ ξ \end{matrix} \} = [\begin{matrix}c ↦ & 3 \\ f ↦ & 6 \end{matrix}], \begin{matrix}ξ ▽ υ \\ υ ▽ ξ \end{matrix} \} = [\begin{matrix}a ↦ & 1 \\ b ↦ & 2 \end{matrix}],

\begin{matrix}ξ ∨ υ \\ υ ∨ ξ \end{matrix} \} = [\begin{matrix}a ↦ & 1 \\ b ↦ & 2 \\ c ↦ & 3 \\ f ↦ & 6 \end{matrix}], ξ√ υ = [\begin{matrix}a ↦ & 1 \\ b ↦ & 2 \\ c ↦ & 3 \\ d ↦ & 77 \\ e ↦ & 88 \\ f ↦ & 6 \end{matrix}], υ√ ξ = [\begin{matrix}a ↦ & 1 \\ b ↦ & 2 \\ c ↦ & 3 \\ d ↦ & 4 \\ e ↦ & 5 \\ f ↦ & 6 \end{matrix}]

(8) The boolean algebra of projections

For every given record η = [η_{k}|k ∈ K] we define the projection class of η ( Thalg 10.2.6 )

Proj (η) := {pr (η, J) | J ⊆ K}

All ξ, υ ∈ Proj (η) are compatible, i.e. ξ ⌣ υ, so that

D^{⌣̸} = ∅ ξ ⋉ υ = ⟨⟩ ξ√ υ = ξ ∨ υ

Togther with the subrecord relation this projection class turns into a complete boolean lattice

𝔓𝔯𝔬𝔧 (η) = ⟨Proj (η) , ≤, ⟨⟩, η, ∧, ∨, ⋀, ⋁, -⟩

where ⟨⟩ is the least, η is the greatest element, -ξ := η \ ξ the complement, ⋀ Ξ := [η_{k}|k ∈ ⋂{dom (ξ) | ξ ∈ Ξ}] and ⋁ Ξ := [η_{k}|k ∈ ⋃{dom (ξ) | ξ ∈ Ξ}] for all Ξ ⊆ Proj (η).

Figure 10: Schemas and their various products

(1) Schema ( Thalg 9.3.1 )

A schema is a record X = [X_{i}|i ∈ I] where each value X_{i} is a class.

(2) Schema properties ( Thalg 9.3.3 )

A schema X = [X_{i}|i ∈ I] is called

(a) proper, if X_{i} ≠ ∅ for all i ∈ I

(b) finite, if it is a finite record, i.e. if I is finite

(c) completely finite, if I is finite and each X_{i} is finite, for i ∈ I (d) ordinary or n–ary, if I = {1, …, n} for some n ∈ ℕ

(e) empty, if I = ∅, so that X = ⟨⟩

(3) Various schema products ( Thalg 12.1.2 )

Let X = [X_{i}|i ∈ I] be a schema. We define

(a) the cartesian product or expanded record class of X

⊗X := {[ξ_{i}|i ∈ I] | ξ_{i} ∈ X_{i} for each i ∈ I}

(b) the coproduct or disjunct union or singular record class of X

⊕X := {[ i ↦ x] | i ∈ I, x ∈ X_{i}}

(c) the star product or general record class of X.

⊛X := {[ξ_{i}|i ∈ J] | J ⊆ I and ξ_{i} ∈ X_{i} for each i ∈ J}

\underline{(4) Example} (a) A completely finite schema is given by

X = [\begin{matrix}a ↦ & \{1, 2\} \\ b ↦ & \{3\} \end{matrix}]

and we obtain

(i) ⊗X = \{[\begin{matrix}a ↦ & 1 \\ b ↦ & 3 \end{matrix}] , [\begin{matrix}a ↦ & 2 \\ b ↦ & 3 \end{matrix}]\}

(ii) ⊕X = {[ a ↦ 1 ], [ a ↦ 2 ], [ b ↦ 3 ]}

(iii) ⊛X = \{ \begin{matrix}⟨⟩, [ a ↦ 1 ], [ a ↦ 2 ], [ b ↦ 3 ], \\ [\begin{matrix}a ↦ & 1 \\ b ↦ & 3 \end{matrix}] , [\begin{matrix}a ↦ & 2 \\ b ↦ & 3 \end{matrix}] \end{matrix} \}

(b) For the empty schema these various products are

⊗⟨⟩ = {⟨⟩} ⊕ ⟨⟩ = ∅ ⊛ ⟨⟩ = {⟨⟩}

\underline{(5) Remark} The “⊗” and “⊕” are very much the standard and fundamental concepts in modern mathematics. The association with “product” and “sum” is intentional. If X is completely finite, say

X = [ \begin{matrix}i_{1} & ↦ & X_{1} \\ ⋮ & & ⋮ \\ i_{m} & ↦ & X_{m} \end{matrix} ] with  card (X_{1}) = n_{1} ⋮ card (X_{m}) = n_{m}

then

card (⊗X) = n_{1} · . . . · n_{m}
card (⊕X) = n_{1} + … + n_{m}

The star “⊛” is probably our own invention, however it is no standard, but it it fits in nicely.

Figure 11: Schematic relations and their various representations

(1) Relations A (schematic) relation R is made of

(a) I an attribute or index class

(b) X = [X_{i}|i ∈ I] a schema on the index class I

(c) ⊗X the domain, the cartesian product of the schema X

(d) Γ ⊆ ⊗X the graph, a subclass of the domain For these components we also write

\begin{matrix}@ (R) := I x (R) := X \\ dom (R) := ⊗X gr (R) := Γ \end{matrix}

Because the attribute class and the domain can be derived from the schema via

@ (R) = dom (X) and dom (R) = ⊗X

the relation is well–defined by X and Γ only, and we use

[X, Γ] or [\begin{matrix}X \\ Γ \end{matrix}]  as the default form for R

For each ξ ∈ ⊗X we write

R (ξ) or ξ ∈ R iff ξ ∈ Γ and ξ ∉ R iff ξ ∉ Γ

(2) Relation class

(a) Rel (X) denotes the class of all relations R = [X, Γ] with schema X.

(b) R : Rel (X) accordingly is the type expression saying that R is a relation with schema X.

(c) X_{1} ↭ … ↭ X_{n} is equal to Rel (⟨X_{1}, …, X_{n}⟩), the type

expression for the special case of an ordinary schema.

(3) Example relation

S = [ \begin{matrix}[ & one ↦ ℤ two ↦ ℤ sum ↦ ℤ & ] \\ \{ & [\begin{matrix}one ↦ & a \\ two ↦ & b \\ sum ↦ & c \end{matrix}] ∈ ⊗ [\begin{matrix}one ↦ & ℤ \\ two ↦ & ℤ \\ sum ↦ & ℤ \end{matrix}] a + b = c & \} \end{matrix} ]

is an example of a (schematic) relation, with e.g.

[\begin{matrix}one ↦ & 24 \\ two ↦ & 7 \\ sum ↦ & 31 \end{matrix}] ∈ S  but  [\begin{matrix}one ↦ & 20 \\ two ↦ & 30 \\ sum ↦ & 70 \end{matrix}] ∉ S

(4) Each ordinary relation is a (schematic) relation Similar to S, but with index class {1, 2, 3} instead of {one, two, sum} is the relation

S′ = [ \begin{matrix}[ & \begin{matrix}1 ↦ & ℤ \\ 2 ↦ & ℤ \\ 3 ↦ & ℤ \end{matrix} & ] \\ \{ & [\begin{matrix}1 ↦ & a \\ 2 ↦ & b \\ 3 ↦ & c \end{matrix}] ∈ ⊗ [\begin{matrix}1 ↦ & ℤ \\ 2 ↦ & ℤ \\ 3 ↦ & ℤ \end{matrix}] a + b = c & \} \end{matrix} ]

Writing ordinary records as tuples, that is

S′ = [ \begin{matrix}⟨ℤ, ℤ, ℤ⟩ \\ \{⟨a, b, c⟩ ∈ ℤ × ℤ × ℤ | a + b = c\} \end{matrix} ]

and if we vary the notation and write

S′ = [ \begin{matrix}type \\ predicator \end{matrix} ] instead of S′ = [ \begin{matrix}schema \\ graph \end{matrix} ]

we obtain an equally precise notation for S′,

S′ = [ \begin{matrix}ℤ ↭ ℤ ↭ ℤ \\ ⟨a, b, c⟩ ↝ a + b = c \end{matrix} ]

which is in fact the default form for ordinary relations (8).

(5) Various versions of the general form

Recall ( ???? ), that our general notation for operators has the form

symbol = [ \begin{matrix}syntax \\ semantics \end{matrix} ]

For (schematic) relations we already have a variety of equivalent ways to express the syntax and semantics and often, one is more convenient than the other. We therefore use

[ \begin{matrix}schema or domain or type \\ graph or predicator \end{matrix} ]

as the general form for (schematic) relations, where

[ \begin{matrix}schema \\ graph \end{matrix} ] is the default form, but
[ \begin{matrix}type \\ predicator \end{matrix} ] is the default form for ordinary relations.

(6) Diagram representations Next to the general forms for relations, we also have a variety of diagrams to represent relations with more or less finiteness properties; see figure 12.

(7) Properties of relations Recall Thalg 17.7.3 and Thalg 17.5.2 , that a relation R = [X, Γ] with schema X = [X_{i}|i ∈ I] is called

(a) empty, if Γ = ∅

(b) full, if Γ = ⊗X

(c) singular, if I is a singleton (Thus each unary relation R ∈ Pty (D) is singular with index class I = {1}.)

(d) elementary, if Γ is a singleton

(e) literal, if both I and Γ are singletons

(f) a table, if both I is finite and Γ is finite (i.e. if it can be represented by a table diagram; see 12)

(g) completely finite, if X is completely finite, i.e. I is finite and X_{i} is finite, for all i ∈ I

(In our framework, the notion of a “finite relation” would be rather ambiguous and we avoid its use. In the literature, a “relation” is usually defined as what we call a graph Γ ⊆ D_{1}×…×D_{n} of an ordinary relation. Accordingly, this Γ is a “finite relation” if it is finite; we would call that (the graph of) an ordinary table.)

Figure 12: Various table diagrams

(1) Various diagram representations

If R = [X, Γ] is a relation with schema X = [X_{i}|i ∈ I], we may also use different forms to represent it.

(a) If I = {i_{1}, …, i_{k}} and Γ = {ξ^{1}, …, ξ^{n}} are both finite, R is called a table ( Thalg 17.3.5 ) and is often represented by a table (diagram)

R = \begin{matrix}i_{1} : X_{i1} & … & i_{k} : X_{ik} \\ ξ_{i1}^{1} & … & ξ_{ik}^{1} \\ ξ_{i1}^{2} & … & ξ_{ik}^{2} \\ ⋮ & & ⋮ \\ ξ_{i1}^{n} & … & ξ_{ik}^{n} \end{matrix}

(b) If I = {i_{1}, …, i_{n}} is finite and R is given by

[\begin{matrix}X \\ [\begin{matrix}i_{1} & ↦ & x_{1} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & x_{n} \end{matrix} ] ↝ φ \end{matrix}]

we may prefer a generalized table (diagram)

R = \begin{aligned}i_{1} : X_{1} & … & i_{n} : X_{n} \\ x_{1} & … & x_{n} \\ & φ \end{aligned}

(c) If R is even completely finite, with say

X = [ \begin{matrix}i_{1} & ↦ & X_{1} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & X_{n} \end{matrix} ] = [\begin{matrix}i_{1} & ↦ & \{c_{1,1}, …, c_{1,k1} \} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & \{c_{n,1}, …, c_{n,kn} \} \end{matrix}]

we can also use a boolean table (diagram)

R = \begin{matrix}i_{1} & … & i_{n} \\ c_{1,1} & … & c_{n,1} & β_{1} \\ c_{1,2} & … & c_{n,1} & β_{2} \\ ⋮ & & ⋮ & ⋮ \\ c_{1,k1−1} & … & c_{n,kn} & β_{m−1} \\ c_{1,k1} & … & c_{n,kn} & β_{m} \end{matrix}

where the β_{1}, …, β_{m} ∈ 𝔹 is set to 1 if the record in the given row is a member of R, and 0 if it is not.

(d) Suppose, we take the previous R with completely finite schema X. If we split the index class I = {i_{1}, …, i_{n}} into two disjunct classes, say I′ = {i_{1}, …, i_{h}} and I′′ = {i_{h+1}, …, i_{n}}, we also have an often more compact layout with a I′ block on the left and a I′′ as the top part, called a double table (diagram)

R = \begin{aligned}& & & ch+1,1 & … & ch+1,kh+1 & ih+1 \\ & & & ⋮ & & ⋮ & ⋮ \\ & & & cn,1 & … & cn,kn & in \\ c1,1 & … & ch,1 & β1 & … & βm′′ \\ ⋮ & & ⋮ & ⋮ & & ⋮ \\ c1,k1 & … & ch,hn & βm′ & … & βm \\ i1 & … & in \end{aligned}

\underline{(2) Example}

Let D = {5, 7, 9} and R be the ternary relation on D with

⟨a, b, c⟩ ∈ R iff a ≤ b ≤ c

In our default (type–predicator) form for ordinary relation, that is

R = [ \begin{matrix}D ↭ D ↭ D \\ ⟨a, b, c⟩ ↝ a ≤ b ≤ c \end{matrix} ]

In schema–predicator form with tuples written as finite records, that is

R = [ \begin{matrix}[ & \begin{matrix}1 ↦ & D \\ 2 ↦ & D \\ 3 ↦ & D \end{matrix} & ] \\ [\begin{matrix}1 ↦ & a \\ 2 ↦ & b \\ 3 ↦ & c \end{matrix}] ↝ a ≤ b ≤ c \end{matrix} ]

That can be rewritten as a generalized table

R = \begin{matrix}1 : D & 2 : D & 3 : D \\ a & b & c \\ a ≤ b ≤ c \end{matrix}

R is also a table with

R = \begin{matrix}1 : D & 2 : D & 3 : D \\ 5 & 5 & 5 \\ 5 & 7 & 7 \\ 7 & 7 & 7 \\ 5 & 5 & 9 \\ 5 & 7 & 9 \\ 7 & 7 & 9 \\ 5 & 9 & 9 \\ 7 & 9 & 9 \\ 9 & 9 & 9 \end{matrix}

And it even is completely finite and can thus also be displayed as

boolean table:

R = 1 2 3 5 5 5 1 7 5 5 0 9 5 5 0 5 7 5 0 7 7 5 0 9 7 5 0 5 9 5 0 7 9 5 0 9 9 5 0 5 5 7 0 7 5 7 0 9 5 7 0 5 7 7 1 7 7 7 1 9 7 7 0 5 9 7 0 7 9 7 0 9 9 7 0 5 5 9 1 7 5 9 0 9 5 9 0 5 7 9 1 7 7 9 1 9 7 9 0 5 9 9 1 7 9 9 1 9 9 9 1

double table with {1} at the left and {2, 3} at the top:

R = 5 7 9 5 7 9 5 7 9 2 5 5 5 7 7 7 9 9 9 3 5 1 0 0 1 1 0 1 1 1 7 0 0 0 0 1 0 0 1 1 9 0 0 0 0 0 0 0 0 1 1

double table with {1, 3} at the left and {2} at the top:

R = 5 7 9 2 5 5 1 0 0 7 5 0 0 0 9 5 0 0 0 5 7 1 1 0 7 7 0 1 0 9 7 0 0 0 5 9 1 1 1 7 9 0 1 1 9 9 0 0 1 1 3

etc.

Figure 13: Operations and algebras on relations, part I/III

(1) Comparison of two relations For two relations R = [X, Γ] and S = [Y, Σ] with X = [X_{i}|i ∈ I] and Y = [Y_{j}|j ∈ J] we defined ( Thalg 19.1.2 )

(a) R is sub–schematic to S,

R ⊴ S iff X ≤ Y

(b) R and S are equi–schematic,

R ≜ S iff X = Y

(c) R and S are (schema) compatible,

R ⌣ S iff X ⌣ Y

(d) R and S are (schema or attribute) distinct,

R ≬ S iff X ≬ Y

\underline{(2) Example} Let R and S be two relations, where

R = \begin{matrix}i : ℤ & j : ℕ \\ -2 & 4 \\ 2 & 4 \end{matrix}  and  S = \begin{matrix}i : ℤ & j : ℕ & k : ℕ \\ -3 & 9 & 27 \\ 2 & 4 & 16 \end{matrix}

Their schemas are

x (R) = [\begin{matrix}i ↦ & ℤ \\ j ↦ & ℕ \end{matrix}]  and  x (S) = [\begin{matrix}i ↦ & ℤ \\ j ↦ & ℕ \\ k ↦ & ℕ \end{matrix}]

Then R ≤ S, because x (R) ≤ x (S). Both relations are compatible, i.e. R ⌣ S, because x (R) ⌣ x (S). But they are not distinct, because they do have common attributes, namely i and j.

(3) Identity, empty and full relations

(a) The identity relation of a given schema X = [X_{i}|i ∈ I] is ( Thalg 19.2.1 )

Id_{X} := [\begin{matrix}X \\ ξ ↝ ξ_{i} = ξ_{j} for all i, j ∈ I \end{matrix}]

(b) The empty relation of a given schema X is ( Thalg 19.3.1 )

⊥_{X} := [\begin{matrix}X \\ ∅ \end{matrix}]

(c) The full relation of a given schema X is ( Thalg 19.3.1 )

⊤_{X} := [\begin{matrix}X \\ ⊗X \end{matrix}]

(d) The empty relation is ( Thalg 19.3.1 )

⊥ := ⊥_{⟨⟩} = [\begin{matrix}⟨⟩ \\ ∅ \end{matrix}]

(e) The full relation is ( Thalg 19.3.1 )

⊤ := ⊤_{⟨⟩} = [\begin{matrix}⟨⟩ \\ \{⟨⟩\} \end{matrix}]

\underline{(4) Example} Given the schema

X = [\begin{matrix}i ↦ & \{a, b\} \\ j ↦ & \{a, b\} \\ k ↦ & \{a, b\} \end{matrix}]

then

    ⊥_{X} = i  j  k a  a  a 0 b  a  a 0 a  b  a 0 b  b  a 0 a  a  b 0 b  a  b 0 a  b  b 0 b  b  b 0 ⊤_{X} = i  j  k a  a  a 1 b  a  a 1 a  b  a 1 b  b  a 1 a  a  b 1 b  a  b 1 a  b  b 1 b  b  b 1 Id_{X} = i  j  k a  a  a 1 b  a  a 0 a  b  a 0 b  b  a 0 a  a  b 0 b  a  b 0 a  b  b 0 b  b  b 1

\underline{(5) Negation} If R = [Y, Γ] is a relation, then the negation of R is

¬R := [\begin{matrix}Y \\ ξ ↝ ξ ∉ R \end{matrix}] = [\begin{matrix}Y \\ ⊗Y \ Γ \end{matrix}]

When the relation is represented by a boolean table, the negation is the negation of the boolean values β_{i}. For example,

if R = i j a a β1 b a β2 a b β3 b b β4 then ¬R = i j a a -β1 b a -β2 a b -β3 b b -β4

(6) Operations on relations with equal schemas Let R = [Y, Γ] and S = [Y, Σ] be two relations with the same schema Y, i.e. R ≜ S. We define ( ; 𝅝 ; ) R ⊆ S iff Γ ⊆ Σ (inclusion)

( ; 𝅝 ; ) R ∩ S := [\begin{matrix}Y \\ Γ ∩ Σ \end{matrix}] (intersection)

( ; 𝅝 ; ) R ∪ S := [\begin{matrix}Y \\ Γ ∪ Σ \end{matrix}] (union)

(7) The same operations with boolean table diagrams Given a schema

Y = [\begin{matrix}i ↦ & \{a, b\} \\ j ↦ & \{a, b\} \end{matrix}]

Let R, S ∈ Rel (Y) be given by

R = i  j a  a β1 b  a β2 a  b β3 b  b β4  and  S = i  j a  a γ1 b  a γ2 a  b γ3 b  b γ4

where the β’s and γ’s are boolean values 0 or 1, each. Then

R ⊆ S iff (β_{1} ≤ γ_{1} and … and β_{4} ≤ γ_{4})

and

R ∩ S = i j a a β1 ∧ γ1 b a β2 ∧ γ2 a b β3 ∧ γ3 b b β4 ∧ γ4 R ∪ S = i j a a β1 ∨ γ1 b a β2 ∨ γ2 a b β3 ∨ γ3 b b β4 ∨ γ4

(8) The complete boolean algebra of equi–schematic relations

For every schema Y, the class Rel (Y) of all relations with schema Y, together with the inclusion ⊆, makes a boolean algebra, written ℜ𝔢𝔩 (Y) , with least element ⊥_{Y} , greatest element ⊤_{Y} , meet ∩, join ∪ and complement ¬. This boolean algebra is a complete one, and we write ⋃ R for the supremum and

⋂ R for the infimum of each R ⊆ Rel (X).

Figure 14: Operations and algebras on relations, part II/III

(1) Distinct product

Let R = [X, Γ] and S = [Y, Σ] be two distinct relations, i.e. R ≬ S. Their distinct (cartesian) product is defined as

R ⊙ S := [ \begin{matrix}X ˙∨ Y \\ \{ξ ˙∨ υ | ξ ∈ Γ, υ ∈ Σ\} \end{matrix} ]

(2) Expansion

Let R = [X, Γ] be a relation and Y a schema. The expansion of R by Y is

R ∥ Y := R ⊙ ⊤_{Y \X} ∈ Rel (X ∨ Y)

(3) Example expansion with double tables Given

\begin{matrix}X = [\begin{matrix}i ↦ & \{a, b\} \\ j ↦ & \{a, b, c\} \end{matrix}] \\ Y = [\begin{matrix}j ↦ & \{a, b, c\} \\ k ↦ & \{a, b, c\} \\ l ↦ & \{b\} \end{matrix}] \end{matrix} R = \begin{matrix}i & j \\ a & a & β1 \\ b & a & β2 \\ a & b & β3 \\ b & b & β4 \\ a & c & β5 \\ b & c & β6 \end{matrix} ∈ Rel (X)

so that

Y \ X = [\begin{matrix}k ↦ & \{a, b, c\} \\ l ↦ & \{b\} \end{matrix}] and ⊤_{Y \X} = \begin{matrix}k & l \\ a & b & 1 \\ b & b & 1 \\ c & b & 1 \end{matrix}

An intuitive method for the construction of the expansion is the double table with schema X on the left and Y \ X at the top and a repetition of the β’s throughout each row, as follows

\begin{aligned}R ∥ Y & = & R ⊙ ⊤_{Y \X} \\ & = & \begin{matrix}i & j \\ a & a & β1 \\ b & a & β2 \\ a & b & β3 \\ b & b & β4 \\ a & c & β5 \\ b & c & β6 \end{matrix} ⊙ \begin{matrix}k & l \\ a & b & 1 \\ b & b & 1 \\ c & b & 1 \end{matrix} = \begin{aligned}& & a & b & c & k \\ & & b & b & b & l \\ a & a & β1 & β1 & β1 \\ b & a & β2 & β2 & β2 \\ a & b & β3 & β3 & β3 \\ b & b & β4 & β4 & β4 \\ a & c & β5 & β5 & β5 \\ b & c & β6 & β6 & β6 \\ i & j \end{aligned} \end{aligned}

(4) Operations on compatible relations

Given two compatible relations R = [X, Γ] and S = [Y, Σ], i.e. R ⌣ S. We put

R′ := R ∥ Y  and  S′ := S ∥ X

Note, that R′, S′ ∈ Rel (X ∨ Y), so that R′ ≜ S′ and we can define

(a) R ⊑ S iff R′ ⊆ S′ (subvalence)

(b) R ≡ S iff R′ = S′ (equivalence)

(c) R ⊓ S := R′ ∩ S′ (conjunction)

(d) R ⊔ S := R′ ∪ S′ (disjunction)

\underline{(5) Example}

Given two relations R = [X, Γ] and S = [Y, Σ], given by

R = i j a a β1 b a β2 a b β3 b b β4 and S = j k a a γ1 b a γ2 a b γ3 b b γ4

where again the β’s and γ’s are boolean values 0 or 1, each. Note, that

X = [\begin{matrix}i ↦ & \{a, b\} \\ j ↦ & \{a, b\} \end{matrix}]  and  Y = [\begin{matrix}j ↦ & \{a, b\} \\ k ↦ & \{a, b\} \end{matrix}]

so that R ⌣ S. Then

          R ∥ Y = a   b  k a  a β_{1} β_{1} b  a β_{2} β_{2} a  b β_{3} β_{3} b  b β_{4} β_{4} i  j = i  j  k a  a  a β1 b  a  a β2 a  b  a β3 b  b  a β4 a  a  b β1 b  a  b β2 a  b  b β3 b  b  b β4

           S ∥ X = a   b  i a  a γ_{1} γ_{1} b  a γ_{2} γ_{2} a  b γ_{3} γ_{3} b  b γ_{4} γ_{4} j  k = i  j  k a  a  a γ1 b  a  a γ1 a  b  a γ2 b  b  a γ2 a  a  b γ3 b  a  b γ3 a  b  b γ4 b  b  b γ4

and we obtain

R ⊓ S = i j k a a a β1 ∧ γ1 b a a β2 ∧ γ1 a b a β3 ∧ γ2 b b a β4 ∧ γ2 a a b β1 ∧ γ3 b a b β2 ∧ γ3 a b b β3 ∧ γ4 b b b β4 ∧ γ4 R ⊔ S = i j k a a a β1 ∨ γ1 b a a β2 ∨ γ1 a b a β3 ∨ γ2 b b a β4 ∨ γ2 a a b β1 ∨ γ3 b a b β2 ∨ γ3 a b b β3 ∨ γ4 b b b β4 ∨ γ4

R ⊑ S iff ( \begin{matrix}β1 ≤ γ1 and \\ β2 ≤ γ1 and \\ β3 ≤ γ2 and \\ β4 ≤ γ2 and \\ β1 ≤ γ3 and \\ β2 ≤ γ3 and \\ β3 ≤ γ4 and \\ β4 ≤ γ4 \end{matrix} ) R ≡ S iff ( \begin{matrix}β1 = γ1 and \\ β2 = γ1 and \\ β3 = γ2 and \\ β4 = γ2 and \\ β1 = γ3 and \\ β2 = γ3 and \\ β3 = γ4 and \\ β4 = γ4 \end{matrix} )

(6) Projection relation class and its semantic algebra

For every schema X we defined ( Thalg 17.8.1 ) the projection relation class of X

Prel (X) := ⋃{Rel (Y) | Y ∈ Proj (X)}

All members of Prel (X) are (pairwise) compatible. The subvalence ⊑ is a quasi–order relation on Prel (X). In fact, this quasi–ordered structure satisfies all the properties of a (complete) quasi–boolean lattice, as we called this generalization from partially ordered to quasi–ordered structures ( Thalg III ). ⊥ is a least, ⊤ a greatest element, ¬ is a complement, ⊓ is a meet, ⊔ a join operator. Similarly defined, we have an infimum ∏R and a supremum ∐R , for every R ⊆ Prel (X). This whole structure alltogether is called the semantic algebra

( Thalg 23.1.1 ), written 𝔓𝔯𝔢𝔩^{⊑}(X) . For each Y ≤ X, the com-

plete boolean algebra ℜ𝔢𝔩 (Y) is a substructure of 𝔓𝔯𝔢𝔩^{⊑}(X).

Figure 15: Operations and algebras on relations, part III/III

(1) Theory algebras

Next to the semantic algebra 𝔓𝔯𝔢𝔩^{⊑}(X) there is also a syntac-

tic algebra 𝔓𝔯𝔢𝔩^{⊴}(X) , which is Prel (X), quasi–ordered by the subschema relation ⊴. That turns out to be a complete quasi–boolean lattice as well. The specific combination of the syntactic and semantic algebra to a single structure 𝔓𝔯𝔢𝔩 (X) is what we call a theory algebra.

(2) Syntactic operations

However ⟨Prel (X) , ⊴⟩ is a quasi–boolean lattice, the standard boolean operators are not that useful for our purposes. For example, we won’t need a binary operator “o” that takes two relations R and S and returns another one “RoS”. We rather need the possibility to take a relation R, to specify a schema Y or attribute class J, and to obtain a resulting relation “RoY ” or “RoJ” with a modified schema. Suppose R = [X, Γ] is a relation and Y a compatible schema, Y ⌣ X.

(a) If X ≤ Y then it is quite easy to define an “equivalent” relation R′ with schema Y: the solution is R′ = R ∥ Y. In other words, the expansion ◯ 1 ∥ Y : Rel (X) ⟶ Rel (Y) is an embedding of ℜ𝔢𝔩 (X) into ℜ𝔢𝔩 (Y).

(b) On the other hand, if Y ≤ X then it usually is not possible to embed the bigger structure ℜ𝔢𝔩 (X) into the smaller one ℜ𝔢𝔩 (Y). However, we can always defined two distinguished members of Rel (Y) for each given R ∈ Rel (X): one greatest lower bound R ⇑ Y and one least upper bound R ⇓ Y.

This is the basic idea of the schema modificators we defined in Thalg 21 . Next, let us recall various versions of the modificator pairs we actually introduced.

(3) The actual pairs of schema modificators

The actual operators were the following three pairs ( Thalg 21 ). Let X = [X_{i}|i ∈ I] be the given schema and R ∈ Prel (X) with attribute class K = @ (R) ⊆ I.

(a) For each Y ∈ Proj (X) we define (i) the supremum reduction of R onto Y

R ⇓ Y := ⋂{S ∈ Rel (Y) | R ⊑ S}

(ii) the infimum reduction of R onto Y

R ⇑ Y := ⋃{S ∈ Rel (Y) | S ⊑ R}

(b) For each J ⊆ @ (R), there is

(i) the projection pr (R, J) := R ⇓ pr (X, J)

(ii) the coprojection cpj (R, J) := R ⇑ pr (X, J)

(c) And for each J ⊆ I and every j ∈ I we have (i) the supremum elimination

R⇂ J := pr (R, (K \ J))  and  R⇂ j := R⇂ {j}

(ii) the infimum elimination

R↾ J := cpj (R, (K \ J))  and  R↾ j := R↾ {j}

(4) Examples and the use of double tables Given a completely finite schema X and a relation R, say

X = [\begin{matrix}i ↦ & \{a, b\} \\ j ↦ & \{a, b\} \\ k ↦ & \{a, b\} \end{matrix}] and R = i j k a a a β1 b a a β2 a b a β3 b b a β4 a a b β5 b a b β6 a b b β7 b b b β8 ∈ Rel (X)

Suppose we want to eliminate one attribute from R, say j. Recall figure 12(1)(d), that R can be represented as a double table. We need the version, where the obsolete attributes (thus j in this case) is at the top, and the remaining attributes (i and k) are on the left.

R = a    b   j a  a β1 β3 b  a β2 β4 a  b β5 β7 b  b β6 β8 i  k

We obtain the infimum elimination R ↾ j of j from R by the meet of the bit values β in each row of the double table. For the supremum elimination we perform the join accordingly:

R↾ j = i k a a β1 ∧ β3 b a β2 ∧ β4 a b β5 ∧ β7 b b β6 ∧ β8 and R⇂ j = i k a a β1 ∨ β3 b a β2 ∨ β4 a b β5 ∨ β7 b b β6 ∨ β8

(“↾” and “⇂” refer to “∧” and “∨”, accordingly.)

(5) The first–order theory algebra

A smaller part of the entire complete theory algebra 𝔓𝔯𝔢𝔩 (X) for a given schema X = [X_{i}|i ∈ I] is the first–order theory algebra (of relations) on X

𝔗ℜ1 (X) := ⟨Prel (X) , I, ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂, Id⟩

where ↾ and ⇂ are the singular eliminators

\begin{matrix}◯ 1 ↾ ◯ 2 \\ ◯ 1 ⇂ ◯ 2 \end{matrix} \} : Prel (X) × I ⟶ Prel (X)

and where Id is the binary version

Id_{◯ 1 , ◯ 2} : I × I ⟶ Prel (X)

of the identity operator from 13(3)(a) . The adjective “first–order” for this structure is stipulated by the fact that 𝔗ℜ1 (X) is the space for the “natural semantics” of first–order predicate logical theory. The attributes I are the variables defined in the theory syntax (see 46.2.11).

(6) Attribute translation

If X = [X_{i}|i ∈ I] is a schema, R ∈ Prel (X) and τ a record in

I, then tr (R, τ) is the attribute translation of R by τ. For example, if

   R = one : A two : B three : C ⋮  ⋮  ⋮ and τ = [\begin{matrix}one ↦ & une \\ two ↦ & deux \\ three ↦ & trois \end{matrix}]

then  tr (R, τ) = une : A deux : B trois : C ⋮  ⋮  ⋮

There are some rules to make sure all this is well–defined (see Thalg 22 ), but that is the essential idea.

17 Schematic functions, coapplications and parametrizations

*** change labels funapps- to parametrics- ***

17.1 Introduction

17.1.1 the problem of parametrization

We define:

parametrization is adding variables to structures.

Given an arbitrary structure, say

𝔄 = ⟨ \underbrace{A, B}_{carriers}, \underbrace{c, d}_{constants}, \underbrace{f, g}_{functions}, \underbrace{R, S}_{relations}⟩

Suppose we want to add a couple of variables x, y, z. We allow structures to have more than one carrier class, in this example 𝔄 we have two. We therefore need to type the variables and we do that by defining a variable schema, say

X := [\begin{matrix}x ↦ & A \\ y ↦ & B \\ z ↦ & A \end{matrix} ]

This given structure 𝔄 and variable schema X is our starting point. Our problem now is the question, how a parametrization of 𝔄 over X, denoted by

𝔄^{•}[X]

would have to be defined. ^{15}

17.1.2 adding variables to a structure

Suppose the operators in our given structure 𝔄 have the following types

\begin{matrix}c : A  d : B  f : A × B ⟶ A \\ g : A × A ⟶ B  R : A ↭ A  S : B ↭ A ↭ B \end{matrix}

This means that

g(f(c, d), c)

is a well–defined element of A and that

S(g(f(c, d), c), c, d)

is a well–defined statement which must be either true or false. Now let us replace c by the variable x, and d by y. We obtain

g(f(x, y), x)  and  S(g(f(x, y), x), x, y)

This is, what we mean by “adding variables to the structure 𝔄”, something we do very commonly in mathematics. But what are we actually doing? What do

“g(f(x, y), x)”  and  “S(g(f(x, y), x), x, y)”

actually denote?

17.1.3

First, let us consider “g(f(x, y), x)”. We know that g(f(c, d), c) is an element of B, because B is the codomain of g : A × A ⟶ B. We may therefore expect g(f(x, y), x) to be an element of B as well. But that is not entirely correct, because the actual value of g(f(x, y), x) depends on the valuations of the variables x and y. Thus, g(f(x, y), x) is in fact a function, that takes valuations of its variables x and y and returns an element of B. Formally speaking in our notation, g(f(x, y), x) is a function of type

⊗ [\begin{matrix}x ↦ & A \\ y ↦ & B \end{matrix} ] ⟶ B

which is what we call a schematic function. It takes valuations or records

[\begin{matrix}x ↦ & α \\ y ↦ & β \end{matrix}] ∈ ⊗ [\begin{matrix}x ↦ & A \\ y ↦ & B \end{matrix} ]

as arguments, and depending on these arguments it returns a member of its codomain B. We write B^{•}[X] or simply B^{•} for all those schematic functions with codomain B. So, this is what happened when we replaced the constants c, d by variables x and y: the constant

g(f(c, d), c) ∈ B

turned into the schematic function

g(x, y), x) ∈ B^{•}[X]

17.1.4

The change from B to B^{•}[X] is the recipe for our whole transformation of 𝔄 into the parametrization 𝔄^{•}[X]:

1. Replace the old carrier classes A, B by their parametrizations A^{•}[X] and B^{•}[X].

2. Add the variables so that the variable x, being of type A, now is a member of A^{•}[X]. We write x^{•} for this modification of x and call it the parameterization or parameter of x.

3. Transform every operator o of 𝔄 into an according operator on the new carrier classes, i.e.

(a) A constant such as c : A now becomes a constant c^{•} : A^{•}[X].

(b) A function such as f : A × B ⟶ A now becomes a function f^{•} : A^{•} × B^{•} ⟶ A^{•}.

(c) For a relation such as R : A ↭ A the parametrization R^{•} is a bit more complicated.

*** CONTINUE HERE ***

*** CONTINUE HERE ***

*** OLD VERSION ***

17.2 Introduction

15In algebra, if ℜ is a ring, one often writes ℜ[x, y, z] for the ring of polynomials on the variables x, y, z. This would be a “parametrization of ℜ over x, y, z”. This is one influence for our “𝔄^{•}[X]” notation (the bullet • is motivated later on). Note, that we cannot simply write “𝔄[x, y, z]” because we allow structures to have more than one carrier class, so the variables have to be typed.

17.2.1 overview

In this section, we introduce schematic functions as a generalization of the ordinary function concept.

An ordinary function is a function of type D_{1} × … × D_{n} ⟶ C, whereas a schematic function may be of type ⊗X ⟶ C with X being an arbitrary schema.

A familiar version of a schematic function is the polynomial.

If g, f_{1}, …, f_{n} are schematic functions we are sometimes able to construct a new schematic function, called the coapplication and written g • ⟨f_{1}, …, f_{n}⟩.

Given any schema X = [X_{v}|v ∈ V], we can think of X as a typed variable set, the indentifiers v are the variables and each one has its own supply X_{v} of possible values. A “parametrization on X” then means making things dependend of concrete valuations of the variables v. That way ( ; 𝅗𝅥 ; ) Classes C turn into classes C^{•}[X] of schematic functions. ( ; 𝅗𝅥 ; ) Ordinary functions f and relations R now turn into their

parametrizations f_{[X]}^{•} and R_{[X]}^{•}.

( ; 𝅗𝅥 ; ) Consequently, whole ordinary structures 𝔄 now become parameterized structures 𝔄^{•}[X].

16 One well–known example of a parameterized structure is the ring of integers ℨ (more often written ℤ), which turns into the ring of polynomials ℨ[x_{1}, …, x_{n}] (or ℤ[x_{1}, …, y_{n}]) when adding variables x_{1}, …, x_{n} of type ℤ.

17.2.2 Example parametrizations

Suppose we have a function f : D×C ×D ⟶ C and two constants c : C and d : D. Consider the iterated application

f(d, f(d, c, d), d)

Obviously, it is well–defined and the result is a member of the codomain C of f. Now suppose, we use v and w as variables of type D in

“f(d, f(v, c, d), w)”

Of course, this is not a well–defined application anymore, v and w are no decent members of D. Let us call it a “parameterized application” for now, v and w being the parameters. In daily life, these parameterized applications are common and useful (e.g. in polynomials). But what are they, anyway? In the sequel, we introduce a formalism that provides a systematic answer for these kind of questions. The basic idea is that all elements turn into schematic functions on the given variable schema. All variables, constants, functions, relations and even whole structures are now replaced by their parameterized versions, indicated by the bullet superscript “◯ 1 ^{•}”. Accordingly, the actual “meaning” for our example parameterized application is the iterated coapplication

f^{•} (d^{•}, f^{•} (v^{•}, c^{•}, d^{•}) , w^{•})

which is in fact the schematic function

[ \begin{matrix}⊗ [\begin{matrix}v ↦ & D \\ w ↦ & D \end{matrix}] ⟶ C \\ ξ ↦ f(d, f(ξv, c, d), ξw) \end{matrix} ]

This function takes variable valuations, i.e. records

ξ = [\begin{matrix}v ↦ & ξv \\ w ↦ & ξw \end{matrix} ]  with  ξv, ξw ∈ D

as arguments and returns a member of C as result, namely

f(d, f(ξv, c, d), ξw)

And that makes sense.

We can also apply the same principles to relations. Suppose R : C ↭ C is a binary relation on C. Then

R(f(d, c, d), c)

is either true or false. But what about

“R(f(v, c, w), c)”

In our design, this turns into

R^{•}(f^{•}(v^{•}, c^{•}, w^{•}), c^{•}) = [ \begin{matrix}[ & \begin{matrix}v ↦ & D \\ w ↦ & D \end{matrix} & ] \\ ξ ↝ R(f(ξv, c, ξw), c) \end{matrix} ]

and that is a (schematic) relations with records

ξ = [\begin{matrix}v ↦ & ξv \\ w ↦ & ξw \end{matrix} ]

as arguments. Depending on the actual choice of ξv, ξw ∈ D,

R^{•}(f^{•}(v^{•}, c^{•}, w^{•}), c^{•})(ξ)

is either true or false.

17.3 Schematic functions

17.3.1 Definition

A partial schematic function is a partial function

f : ⊗X −−→ C

where X = [X_{i}|i ∈ I] is a schema.

As usual for partial functions ( Thalg 5.7.15 ),

(1) dom (f) = ⊗X is the domain of f (2) def (f) ⊆ dom (f) is the defined domain of f (3) cod (f) = C is the codomain of f and we say that

(4) f is a total schematic function, written

f : ⊗X ⟶ C

iff dom (f) = def (f). In addition to these standard notions we also define

(5) x (f) := X the (domain) schema of f

(6) @ (f) := I the attribute class of f

and we say that

(7) f is proper iff X is a proper schema, i.e. ( Thalg 9.3.3(1) ) X_{i} ≠ ∅ for each i ∈ I.

17.3.2 Remark

Note, that

( ; 𝅝 ; ) We use the specifications “schematic/ordinary” and “partial/- total” for functions in arbitrary combinations, i.e. we sometimes say “schematic partial function” for “partial schematic function”

16*** update this last remark on the polynomial structure ***

etc. ( ; 𝅝 ; ) Note, that each total schematic function is a partial schematic

function. So, when we talk about “schematic functions” in general, we usually mean partial schematic functions. This is different to the default function concept, where “function” means “total function”.

( ; 𝅝 ; ) Every ordinary partial function

f : D_{1} × … × D_{n} −−→ C

is a schematic partial function with

x (f) = ⟨D_{1}, …, D_{n}⟩ and @ (f) = {1, …, n}

17.3.3 Example

An example of a partial schematic function is

f = [ \begin{matrix}⊗ [\begin{matrix}x ↦ & ℚ \\ z ↦ & ℚ \end{matrix}] −−→ ℚ \\ ξ ↦ (2 · ξx^{2} + ξx)/(3 · ξz) \end{matrix} ]

(Recall, that ℚ is the class of rational numbers.) The schema of f is

x (f) = [\begin{matrix}x ↦ & ℚ \\ z ↦ & ℚ \end{matrix}]

which means that its domain

dom (f) = ⊗ [\begin{matrix}x ↦ & ℚ \\ z ↦ & ℚ \end{matrix}]

is made of all the records

ξ = [\begin{matrix}x ↦ & ξx \\ z ↦ & ξz \end{matrix} ] with ξx, ξz ∈ ℚ

For an example argument such as

ξ = [\begin{matrix}x ↦ & 3 \\ z ↦ & 2 \end{matrix}]

the application of f returns

f (ξ) = \frac{2·3+3}{3·2} = \frac{3}{2}

This f is proper, because the rational number class ℚ is not empty. But f is not total, because it is undefined for some arguments, such as

ξ = [\begin{matrix}x ↦ & 3 \\ z ↦ & 0 \end{matrix}]

Actually, the whole defined domain is

def (f) = \{ ξ ∈ ⊗ [\begin{matrix}x ↦ & ℚ \\ z ↦ & ℚ \end{matrix}] ξz ≠ ∅ \}

17.3.4 Example constants

Recall fig. 10(4)(b), that the empty schema ⟨⟩ has a well–defined cartesian product

⊗⟨⟩ = {⟨⟩}

Each function c with this domain is an ordinary and thus schematic functions

c : {⟨⟩} ⟶ C which is also called a constant (fig. 8(2)(a)). And it is custom to simply write c again for the application c() of c on its one and only argument ⟨⟩.

17.4 Compatible schematic function classes

17.4.1 Definition

For each class C and every schema X we define

C^{∘}[X] := {f : ⊗Y −−→ C | Y ∈ Proj (X)}

the partial parametrization of C on X, or the partial schematic function class

C^{•}[X] := {f : ⊗Y ⟶ C | Y ∈ Proj (X)}

the total parametrization of C on X, or the (total) schematic function class

For every schema X and family C we define

Xf^{∘}(X, C) := {f : ⊗Y −−→ C | Y ∈ Proj (X) , C ∈ C}

the partial schematic function class of C and X

Xf^{•}(X, C) := {f : ⊗Y ⟶ C | Y ∈ Proj (X) , C ∈ C}

the total schematic function class of C and X

17.4.2 Example

If we consider the schema

X = [\begin{matrix}x ↦ & ℚ \\ y ↦ & ℚ \\ z ↦ & ℚ \end{matrix}]

and the example 17.3.3

f : ⊗ [\begin{matrix}x ↦ & ℚ \\ z ↦ & ℚ \end{matrix}] −−→ ℚ

then

f ∈ ℚ^{∘}[X]  and  f ∈ Xf^{∘}(X, {ℚ})

But f is not total, and so

f ∉ ℚ^{•}[X]  and  f ∉ Xf^{•}(X, {ℚ})

If c is the constant rational number 5, i.e.

c = [\begin{matrix}\{⟨⟩\} ⟶ ℚ \\ ⟨⟩ ↦ 5 \end{matrix}]

then

c ∈ ℚ^{•}[X]  and  c ∈ Xf^{•}(X, {ℚ})

17.4.3 Repetition

Recall Thalg xxx , that two schemas Y, Z are said to be compati-

ble, written Y ⌣ Z , if Y_{i} = Z_{i} for all i ∈ dom (Y) ∩ dom (Z). And that is exactly the case, when there is a schema X with Y, Z ∈ Proj (X). A class of schemas is (pairwise) compatible, if each two of its members are compatible, which again is the case, if there is a X with Y ∈ Proj (X) for each member Y of the schema class. Two relations R, S are compatible, R ⌣ S, if their schemas are compatible.

17.4.4 Definition

(1) Two schematic functions f, g are called compatible, written f ⌣ g , iff their schemas are compatible, i.e. x (f) ⌣ x (g).

(2) A class {f_{k} | k ∈ K} or record [f_{k}|k ∈ K] or schematic functions is said to be (pairwise) compatible, iff f_{i} ⌣ f_{j} for all i, j ∈ K.

17.4.5 Lemma

If X is a schema, C a family and C a class, then each of the schematic function classes

Xf^{∘}(X, C)  Xf^{•}(X, C)  C^{∘}[X]  C^{•}[X]

is (pairwise) compatible.

17.4.6 Proof of 17.4.5

If f, g ∈ Xf^{∘}(X, C), say

f : ⊗Y −−→ A  and  g : ⊗Z −−→ B

then Y, Z ∈ Proj (X) according to definition 17.4.1, so Y = pr (X, @ (f)) and Z = pr (X, @ (g)), i.e. Y_{i} = X_{i} = Z_{i} for all i ∈ @ (f) ∩ @ (g), so that Y ⌣ X ⌣ Z. In other words, f ⌣ g and that makes Xf^{∘}(X, C) (pairwise) compatible. The other three classes Xf^{•}(X, C), C^{∘}[X] and C^{•}[X] are subclasses of Xf^{∘}(X, C), and so each one must be (pairwise) compatible as well.

17.4.7 Definition

If F is a class {f_{k} | k ∈ K} or record [f_{k}|k ∈ K] of schematic functions, we define

@ (F) := ⋃{@ (f_{k}) | k ∈ K}

the attribute class of F

x (F) := ⋁{x (f_{k}) | k ∈ K}

the schema of F

17.4.8 Lemma

If F is a class {f_{k} | k ∈ K} or record [f_{k}|k ∈ K] of schematic functions, then the following statements are equivalent:

( ; 𝅝 ; ) F is (pairwise) compatible. ( ; 𝅝 ; ) There is a schema X and a family C such that f_{k} ∈ Xf^{∘}(X, C)

for all k ∈ K. ( ; 𝅝 ; ) f_{k} ∈ Xf^{∘}(x (F) , {cod (f_{k}) | k ∈ K}), for every k ∈ K.

17.4.9 Proof of 17.4.8

See Thalg 11.7.6 (3).

17.5 Predicates and characteristic functions

17.5.1 Introduction

The characteristic function ( Thalg 5.7.14 (2) and Thalg 14.2.4 ) is a common standard method to turn relations into functions, and it is completely reversible. We use yet another name for these characteristic functions and call them “predicates”. Thus “predicate” and “relation” will just be two different representations of the same thing.

17.5.2 Definition

A partial schematic functions with codomain 𝔹

p : ⊗Y −−→ 𝔹

is a partial predicate. And it is a total predicate, if it is a total schematic function

p : ⊗Y ⟶ 𝔹

Accordingly, for every schema X,

( ; 𝅝 ; ) 𝔹^{∘}[X] is the partial predicate class over X, and ( ; 𝅝 ; ) 𝔹^{•}[X] is the total predicate class over X.

17.5.3 Definition

For every relation R we define

χ_{R} := [ \begin{matrix}dom (R) ⟶ 𝔹 \\ ξ ↦ \begin{cases}1 & if ξ ∈ R \\ 0 & if ξ ∉ R \end{cases} \end{matrix} ]

the characteristic function or (total) predicate of R.

17.5.4 Remark

If R : D_{1} ↭ … ↭ D_{n} is an ordinal relations, its characteristic function is

χ_{R} = [ \begin{matrix}D_{1} × … × D_{n} ⟶ 𝔹 \\ ⟨a_{1}, …, a_{n}⟩ ↦ \begin{cases}1 & if ⟨a_{1}, …, a_{n}⟩ ∈ R \\ 0 & if ⟨a_{1}, …, a_{n}⟩ ∉ R \end{cases} \end{matrix} ]

For example, for the usual linear order relation ≤ on the integers this is

χ_{≤} = [ \begin{matrix}ℤ × ℤ ⟶ 𝔹 \\ ⟨a, b⟩ ↦ \begin{cases}1 & if a ≤ b \\ 0 & else \end{cases} \end{matrix} ]

If R = [X, Γ] is a (schematic) relation in general, then

χ_{R} = [ \begin{matrix}⊗X ⟶ 𝔹 \\ ξ ↦ \begin{cases}1 & if ξ ∈ Γ \\ 0 & if ξ ∉ Γ \end{cases} \end{matrix} ]

17.5.5 Lemma

For every proper schema X, the characteristic function operator

χ_{◯ 1} : Prel (X) ⟶ 𝔹^{•}[X]

is a well–defined bijection.

17.5.6 Proof of 17.5.5

Given X, then

Prel (X) = {[Y, Γ] | Y ∈ Proj (X) , Γ ∈ ⊗Y }
𝔹^{•}[X] = {f : ⊗Y ⟶ 𝔹 | Y ∈ Proj (X)}

χ_{◯ 1} is injective, because for all R = [Y, Γ] and S = [Z, Σ] in Prel (X) holds: R ≠ S iff either Y ≠ Z or (Y = Z and Γ ≠ Σ). In the first case, Y ≠ Z, we have dom (χ_{R}) = ⊗Y ≠ ⊗Z = dom (χ_{S}) and so χ_{R} ≠ χ_{S}. In the second case, Y = Z and Γ ≠ Σ, there must be some ξ ∈ ⊗Y with ξ ∈ Γ and ξ ∉ Σ, or vice versa. And that implies χ_{R}(ξ) ≠ χ_{S}(ξ) and again χ_{R} ≠ χ_{S}. Alltogether, R ≠ S implies χ_{R} ≠ χ_{S} and χ_{◯ 1} is injective. χ_{◯ 1} is surjective, because for each f : ⊗Y ⟶ 𝔹 in 𝔹^{•}[X], we can put R := [Y, Γ] with Γ := {f(ξ) | ξ ∈ ⊗Y }. Then χ_{R} = f. Being both injective and surjective, χ_{◯ 1} is bijective.

17.6 Multifunctions and coapplications

17.6.1 Definition

Let X and Y be two schemas.

(1) A partial function

f : ⊗X −−→ ⊗Y

is called a partial multi–function.

(2) A (total) function

f : ⊗X ⟶ ⊗Y

is called a total multi–function.

17.6.2 Remark

According to definition 17.6.1 and the fact that ordinary cartesian products A_{1} × … × A_{n} are cartesian products of ordinary schemas ⊗⟨A_{1}, …, A_{n}⟩,

(1) each n × m–ary partial function

f : D_{1} × … × D_{n} −−→ C_{1} × … × C_{m}

is an ordinary partial multi–function, and

(2) each n × m–ary (total) function

f : D_{1} × … × D_{n} −−→ C_{1} × … × C_{m}

is an ordinary total multi–function.

17.6.3 Definition

Let f = [f_{k}|k ∈ K] be a record of (pairwise) compatible schematic functions with Z := [cod (f_{k}) |k ∈ K].

(1) We define

f^{⊗} := [ \begin{matrix}⊗x (f) −−→ ⊗Z \\ ξ ↦ [ f_{k} (pr (ξ, @ (f_{k}))) k ∈ K ] \end{matrix} ]

the multi–function of f

(2) For every partial schematic function g : ⊗Z −−→ C we define

g ⊚ f := [ \begin{matrix}⊗x (f) −−→ C \\ ξ ↦ g (f^{⊗}(ξ)) \end{matrix} ]

the coapplication of g and f.

(3) For every relation R ∈ Rel (Z) we define

R ⊚ f := [ \begin{matrix}⊗x (f) −−→ 𝔹 \\ ξ ↦ \begin{cases}1 & if f^{⊗}(ξ) ∈ R \\ 0 & if f^{⊗}(ξ) ∉ R \end{cases} \end{matrix} ]

the coapplication of R and f.

17.6.4 Remark

Definition 17.6.3 is kept very general, but in most practical cases below, K = {1, …, n} for some n ∈ ℕ. And then, the function record f = [f_{k}|k ∈ K] is a tuple f = ⟨f_{1}, …, f_{n}⟩ with multi– function

f^{⊗} : ⊗x (f) −−→ Z_{1} × … × Z_{n}

g and R are ordinary operators

g : Z_{1} × … × Z_{n} −−→ C  and  R : Z_{1} ↭ … ↭ Z_{n}

The coapplications are

g ⊚ f : ⊗x (f) −−→ C  and  R ⊚ f : ⊗x (f) −−→ 𝔹

Let us illustrate all that with the following example 17.6.7, where K := {1, 2}.

*** THE FOLLOWING TWO EXAMPLES ARE PROBABLY OBSOLETE ***

17.6.5 Example

Let f be a record of (pairwise) compatible schematic functions, say

f = [\begin{matrix}l ↦ & fl \\ m ↦ & fm \\ n ↦ & fn \end{matrix}]  where  fl : ⊗ [\begin{matrix}a ↦ & A \\ b ↦ & B \\ d ↦ & D \end{matrix}] −−→ L fm : ⊗ [\begin{matrix}a ↦ & A \\ c ↦ & C \end{matrix}] −−→ M fn : ⊗ [\begin{matrix}b ↦ & B \\ d ↦ & D \end{matrix}] −−→ N

The multi–function of f has then the general form

f^{⊗} : ⊗ [\begin{matrix}a ↦ & A \\ b ↦ & B \\ c ↦ & C \\ d ↦ & D \end{matrix}] −−→ ⊗ [\begin{matrix}l ↦ & L \\ m ↦ & M \\ n ↦ & N \end{matrix} ]

If there is a schematic function

g : ⊗ [\begin{matrix}l ↦ & L \\ m ↦ & M \\ n ↦ & N \end{matrix} ] −−→ C

then the coapplication of g and f is

g ⊚ f : ⊗ [\begin{matrix}a ↦ & A \\ b ↦ & B \\ c ↦ & C \\ d ↦ & D \end{matrix}] −−→ C

If there is a relation

R : Rel ([\begin{matrix}l ↦ & L \\ m ↦ & M \\ n ↦ & N \end{matrix} ])

then the coapplication of R and f is

R ⊚ f : ⊗ [\begin{matrix}a ↦ & A \\ b ↦ & B \\ c ↦ & C \\ d ↦ & D \end{matrix}] −−→ 𝔹

If the indices l, m, n are 1, 2, 3, respectively, f, g and R become ordinary, and this special situation will often be the case in the sequel. We obtain

f = ⟨f_{1}, f_{2}, f_{3}⟩  where  \begin{aligned}f_{1} & : & ⊗ [\begin{matrix}a ↦ & A \\ b ↦ & B \\ d ↦ & D \end{matrix}] −−→ L \\ f_{2} & : & ⊗ [\begin{matrix}a ↦ & A \\ c ↦ & C \end{matrix}] −−→ M \\ f_{3} & : & ⊗ [\begin{matrix}b ↦ & B \\ d ↦ & D \end{matrix}] −−→ N \end{aligned}

The multi–function of f now becomes

f^{⊗} : ⊗ [\begin{matrix}a ↦ & A \\ b ↦ & B \\ c ↦ & C \\ d ↦ & D \end{matrix}] −−→ L × M × N

g and the coapplication of g and f are

g : L × M × N −−→ C and g ⊚ f : ⊗ [\begin{matrix}a ↦ & A \\ b ↦ & B \\ c ↦ & C \\ d ↦ & D \end{matrix}] −−→ C

And R and the the coapplication of R and f become

R : L ↭ M ↭ N and R ⊚ f : ⊗ [\begin{matrix}a ↦ & A \\ b ↦ & B \\ c ↦ & C \\ d ↦ & D \end{matrix}] −−→ 𝔹

17.6.7 Example

Let f_{1}, f_{2} be two schematic functions, given by

f_{1} = [ \begin{matrix}⊗ [\begin{matrix}a ↦ & ℤ \\ b ↦ & ℤ \end{matrix}] −−→ ℤ \\ ξ ↦ ξa/ξb \end{matrix} ] f_{2} = [ \begin{matrix}⊗ [\begin{matrix}b ↦ & ℤ \\ c ↦ & ℤ \end{matrix}] \\ ξ ↦ min \{ξb, ξc\} \end{matrix} ]

f_{1} and f_{2} are compatible, because

x (f_{1}) = [\begin{matrix}a ↦ & ℤ \\ b ↦ & ℤ \end{matrix}] ⌣ [\begin{matrix}b ↦ & ℤ \\ c ↦ & ℤ \end{matrix}] = x (f_{2})

The tuple ⟨f_{1}, f_{2}⟩ is an (ordinary) record of compatible schematic functions. Its schema is

X := x (⟨f_{1}, f_{2}⟩) = [\begin{matrix}a ↦ & ℤ \\ b ↦ & ℤ \\ c ↦ & ℤ \end{matrix}]

Its multifunction is well–defined and given by

⟨f_{1}, f_{2}⟩^{⊗} = [ \begin{matrix}⊗X −−→ ℤ × ℤ \\ ξ ↦ ⟨f_{1} (pr (ξ, \{a, b\})) , f_{2} (pr (ξ, \{b, c\}))⟩ \end{matrix} ]

= [ \begin{matrix}⊗X −−→ ℤ × ℤ \\ ξ ↦ ⟨f_{1} ([\begin{matrix}a ↦ & ξa \\ b ↦ & ξb \end{matrix} ]) , f_{2} ([\begin{matrix}b ↦ & ξb \\ c ↦ & ξc \end{matrix} ])⟩ \end{matrix} ]

= [ \begin{matrix}⊗X −−→ ℤ × ℤ \\ ξ ↦ ⟨ξa/ξb, min \{ξb, ξc\}⟩ \end{matrix} ]

If we take an ordinary partial function

g = [ \begin{matrix}ℤ × ℤ ⟶ ℕ \\ ⟨m, n⟩ ↦ \begin{cases}0 & if m ≤ 0 or n ≤ 0 \\ m + n & else \end{cases} \end{matrix} ]

the coapplication of g and ⟨f_{1}, f_{2}⟩ is

g ⊚ ⟨f_{1}, f_{2}⟩

= [ \begin{matrix}⊗X −−→ ℕ \\ ξ ↦ \{ \begin{matrix}0 if ξa/ξb ≤ 0 or min \{ξb, ξc\} ≤ 0 \\ (ξa/ξb) + min \{ξb, ξc\} else \end{matrix} \end{matrix} ]

with e.g.

g ⊚ ⟨f_{1}, f_{2}⟩ ([\begin{matrix}a ↦ & 5 \\ b ↦ & 5 \\ c ↦ & 5 \end{matrix}]) = 6

and

g ⊚ ⟨f_{1}, f_{2}⟩ ([\begin{matrix}a ↦ & -5 \\ b ↦ & -5 \\ c ↦ & -5 \end{matrix}]) = 0

Note, that g ⊚⟨f_{1}, f_{2}⟩ is only a partial function and there are some members of its domain ⊗X without a proper result. For example,

g ⊚ ⟨f_{1}, f_{2}⟩ ([\begin{matrix}a ↦ & 7 \\ b ↦ & 0 \\ c ↦ & 3 \end{matrix}]) is undefined

because the condition

“7/0 ≤ 0 or min {0, 3} ≤ 0”

is not a proper statement, since “7/0” is undefined. (See also ??xxx?? below, where we discuss this example in more detail.)

If R is the standard linear order on integers

R = [ \begin{matrix}ℤ ↭ ℤ \\ ⟨m, n⟩ ↝ m ≤ n \end{matrix} ]

then the coapplication of R and ⟨f_{1}, f_{2}⟩ is the partial predicate

R ⊚ ⟨f_{1}, f_{2}⟩ = [ \begin{matrix}⊗X −−→ 𝔹 \\ ξ ↦ \begin{cases}1 & if ξa/ξb ≤ min \{ξb, ξc\} \\ 0 & if ξa/ξb ≰ min \{ξb, ξc\} \end{cases} \end{matrix} ]

with e.g.

R ⊚ ⟨f_{1}, f_{2}⟩ ([\begin{matrix}a ↦ & 5 \\ b ↦ & 5 \\ c ↦ & 5 \end{matrix}]) = 1 because 5/5 ≤ min \{5, 5\}

and

R ⊚ ⟨f_{1}, f_{2}⟩ ([\begin{matrix}a ↦ & -5 \\ b ↦ & -5 \\ c ↦ & -5 \end{matrix}]) = 0 because -5/-5 ≰ min \{-5, -5\}

There are also members of its domain ⊗X without a proper result, e.g.

R ⊚ ⟨f_{1}, f_{2}⟩ ([\begin{matrix}a ↦ & 7 \\ b ↦ & 0 \\ c ↦ & 3 \end{matrix}]) is undefined

again because “7/0” is undefined.

17.6.8 Repetition

Recall ??xxx?? , that for any two partial functions

f : A −−→ B and g : B −−→ C

thus cod (f) = B = dom (g), their composition is defined as

g ∘ f = [\begin{matrix}A −−→ C \\ a ↦ g (f (a)) \end{matrix}]

where

def (g ∘ f) = { a ∈ def (g) g (a) ∈ def (f) }

17.6.9 Lemma

Let f = [f_{k}|k ∈ K] be a record of (pairwise) compatible schematic functions with Z := [cod (f_{k}) |k ∈ K].

(1) For the multifunction f^{⊗} of f holds

(a) def (f^{⊗}) = \{ \frac{ξ ∈ ⊗x (f)}{∀k ∈ K . pr (ξ, @ (f_{k})) ∈ def (f_{k})} \}

(b) f^{⊗} is total iff each f_{k} is total, for k ∈ K

(2) For every g : ⊗Z −−→ C holds:

(a) g ⊚ f = g ∘ f^{⊗}

(b) def (g ⊚ f) = {ξ ∈ def (f^{⊗}) | f^{⊗}(ξ) ∈ def (g)}

(3) For every R : Rel (Z) holds:

(a) R ⊚ f = χ_{R} ⊚ f

(b) def (R ⊚ f) = def (f^{⊗})

17.6.10 Proof of 17.6.9

All these statements are quite immediate consequences of definition 17.6.3.

17.7 Partial and total parametrizations

17.7.1 Definition

Let X = [X_{v}|v ∈ V] be a schema. In this context X is also called the parameter schema and each v ∈ V is a variable of type X_{v}.

(1) For each variable v ∈ V we define

v_{[X]}^{•} := [ \begin{matrix}⊗[ v ↦ X_{v} ] ⟶ X_{v} \\ ξ ↦ ξ_{v} \end{matrix} ]

the parameter v or

parametrization of v on X.

(2) For every partial function f : D_{1} × … × D_{n} −−→ C we define

f_{[X]}^{∘} := [ \begin{matrix}D_{1}^{∘}[X] × … × D_{n}^{∘}[X] ⟶ C^{∘}[X] \\ ⟨f_{1}, …, f_{n}⟩ ↦ f ⊚ ⟨f_{1}, …, f_{n}⟩ \end{matrix} ]

the partial parametrization of f over X.

For every function f : D_{1} × … × D_{n} ⟶ C we define

f_{[X]}^{•} := [ \begin{matrix}D_{1}^{•}[X] × … × D_{n}^{•}[X] ⟶ C^{•}[X] \\ ⟨f_{1}, …, f_{n}⟩ ↦ f ⊚ ⟨f_{1}, …, f_{n}⟩ \end{matrix} ]

the total parametrization of f over X.

(3) For every relation R : D_{1} ↭ … ↭ D_{n} we define

R_{[X]}^{∘} := [ \begin{matrix}D_{1}^{∘}[X] × … × D_{n}^{∘}[X] ⟶ 𝔹^{∘}[X] \\ ⟨f_{1}, …, f_{n}⟩ ↦ R ⊚ ⟨f_{1}, …, f_{n}⟩ \end{matrix} ]

the parital parametrization of R over X.

R_{[X]}^{•} := [ \begin{matrix}D_{1}^{•}[X] × … × D_{n}^{•}[X] ⟶ 𝔹^{•}[X] \\ ⟨f_{1}, …, f_{n}⟩ ↦ R ⊚ ⟨f_{1}, …, f_{n}⟩ \end{matrix} ]

the total parametrization of R over X.

(4) For every ordinary structure 𝔄 = ⟨Car, Op⟩ with X_{v} ∈ Car for each v ∈ V, we define

𝔄^{∘}[X] := ⟨Car^{∘}, Op^{∘}⟩

the partial parametrization of 𝔄 over X, where

\begin{aligned}Car^{∘} & := & \{C^{∘}[X] | C ∈ Car\} ∪ \{𝔹^{∘}[X]\} \\ Op^{∘} & := & \{o_{[X]}^{∘} | o ∈ Op\} ∪ \{v_{[X]}^{•} | v ∈ V \} \end{aligned}

𝔄^{•}[X] := ⟨Car^{•}, Op^{•}⟩

the total parametrization of 𝔄 over X, where

\begin{aligned}Car^{•} & := & \{C^{•}[X] | C ∈ Car\} ∪ \{𝔹^{•}[X]\} \\ Op^{•} & := & \{o_{[X]}^{•} | o ∈ Op\} ∪ \{v_{[X]}^{•} | v ∈ V \} \end{aligned}

17.7.2 Definition abbreviations

(1) In case the given structure 𝔄 has exactly one carrier C, its parametrizations are defined only if X_{v} = C for each v ∈ V. In that case, we may simply write

𝔄^{∘}[V] for 𝔄^{∘}[X] and 𝔄^{∘}[V] for 𝔄^{∘}[X]

And if this variable set V = {v_{1}, …, v_{n}} is even finite, we may write that as

𝔄^{∘}[v_{1}, …, v_{n}]  and  𝔄^{•}[v_{1}, …, v_{n}]

(2) Usually, the parameter schema X is uniquely identifiable in a given context and there is no ambiguity in omitting the “[X]” for carriers, variables and operators. We may therefore simply write

D^{∘}  D^{•}  v^{•}  o^{∘}  o^{•}

instead of

D_{[X]}^{∘}  D_{[X]}^{•}  v_{[X]}^{•}  o_{[X]}^{∘}  o_{[X]}^{•}

accordingly, for carriers D, variables v and operators o.

(3) For special cases of the given structure 𝔄, the parametrizations sometimes contain superfluous carrier classes, that don’t actually occur in the new operators and may be omitted. We therefore refine definition 17.7.1(4) as follows:

(a) If 𝔄 is a functional structure (15.6.1(2)), i.e. Op only contains constants and functions, but no relations, then

\begin{matrix}Car^{∘} := \{C^{∘}[X] | C ∈ Car\} \\ Car^{•} := \{C^{•}[X] | C ∈ Car\} \end{matrix}

(b) If 𝔄 is a relational structure (??(3)), i.e. Op is only made of relations, then

Car^{∘} := {𝔹^{∘}[X]} and Car^{•} := {𝔹^{•}[X]}

17.7.3 Remark

This is a lot of notation and new conventions, it is time to justify all that with relevant examples.

*** CONTINUE HERE ***

17.7.4 Example

(1) Polynomials (see case study ???? ) If the usual ring of integers

ℨ = ⟨ℤ, 0, 1, +, ·⟩

is parameterized with three variables x, y, z, then

ℨ^{•}[x, y, z] = ⟨ℤ^{•}, x^{•}, y^{•}, z^{•}, 0^{•}, 1^{•}, +^{•}, ·^{•}⟩

It turns out that this is a very natural representation for the integer ring ℨ[x, y, z] of polynomials on the three variables.

(2) Propositional logic (see ???? ) If we take the bit value algebra, i.e. the complete boolean algebra on the two values 𝔹 = {0, 1},

𝔅 = ⟨𝔹, 0, 1, ∧, ∨, -⟩

and parameterize it with a set of variables A = {a_{1}, a_{2}, …}, then it turns out that

𝔅^{•}[A] = ⟨𝔹^{•}, a_{1}^{•}, a_{2}^{•}, …, 0^{•}, 1^{•}, ∧^{•}, ∨^{•}, -^{•}⟩

is somehow “the natural algebra of propositional logic on the atoms 𝔄”.

(3) Pure predicate logic (see ???? )

*** update this *** In the parameter schema of 𝔅^{•}[A], every variable a_{i} is of type 𝔹. If we let go this restriction and take a schema X = [X_{a}|a ∈ A], where each type X_{a} for a given variable a is an arbitrary class. In this parametrization 𝔅^{•}[X], the carrier class 𝔹^{•}[X] is in fact the relation class Prel (X), and 𝔅^{•}[X] itself is very much the theory algebra on Prel (X). And this will be shown to be “the natural algebra of pure first– order predicate logic”, where “pure” is the restricted version of the predicate calculus without constants and functions. ***

CONTINUE HERE ***

𝔅^{•}[X] = ⟨{𝔹^{•}[X]} , {a^{•} | a ∈ A} ∪ {0^{•}, 1^{•}, ∧^{•}, ∨^{•}, -^{•}}⟩
⟨𝔅^{•}[X], 0^{•}, 1^{•}, ∧^{•}, ∨^{•}, -^{•}⟩ ≅ ⟨Prel (X) , ⊥, ⊤, ⊓, ⊔, ¬⟩

A combination of these ideas will us later lead to “interpretation structures” and the re–definition of the interpretation concept for predicate logic.

17.7.5 Lemma

(1) v^{•} ∈ X_{v}^{•}[X] ⊆ X_{v}^{∘}[X], for every schema X = [X_{v}|v ∈ V]

and each v ∈ V.

( ; 𝅝 ; ) For every constant c : C holds:

c_{[X]}^{∘} = [ \begin{matrix}\{⟨⟩\} ⟶ C^{∘}[X] \\ ⟨⟩ ↦ c \end{matrix} ]

c_{[X]}^{•} = [ \begin{matrix}\{⟨⟩\} ⟶ C^{•}[X] \\ ⟨⟩ ↦ c \end{matrix} ]

i.e. they are members of the parameterized carriers, ***

CONTINUE HERE ***

( ; 𝅝 ; ) f_{[X]}^{∘} is a total function, even if f is a partial function.

( ; 𝅝 ; )

( ; 𝅗𝅥 ; ) 𝔄^{∘}[X] is a well–defined ordinary structure ( ; 𝅗𝅥 ; ) 𝔄^{•}[X] is a well–defined ordinary structure

*** remark: why no v^{∘} ; the difference between parameters and constants ***

*** Lemma: everything is well–defined and the parameterized structures are actually well–defined structures ***

17.7.6 Proof of 17.7.5

(1) Follows from definition 17.4.1 and ??.

( ; 𝅝 ; ) *** CONTINUE HERE ***

17.7.7 Lemma

Let X = [X_{v}|v ∈ V] be a given parameter schema. Then

(1) v^{•} ∈ X_{v}^{•}[X] for all v ∈ V (2) c^{•} = c for every constant c : C (3) If 𝔄 = ⟨Car, Op⟩ is an ordinary structure with {X_{v} | v ∈

V } ⊆ Car then

(a) 𝔄^{•}[X] is a well–defined ordinary structure, too.

(b) The function

[ \begin{matrix}C ⟶ C^{•}[X] \\ c ↦ [\begin{matrix}\{⟨⟩\} ⟶ C \\ ⟨⟩ ↦ c \end{matrix}] \end{matrix} ]

is an embedding of 𝔄 into 𝔄^{•}[X].

17.7.8 Proof of 17.7.7

(1) v^{•} : ⊗[ v ↦ X_{v} ] ⟶ X_{v} according to definition ??(2), so that v^{•} ∈ X_{v}^{•}[X] according to definition ??(1).

(2) c^{•} = [\begin{matrix}\{⟨⟩\} ⟶ C \\ ⟨⟩ ↦ c \end{matrix}]^{•}

= [\begin{matrix}\{⟨⟩\} ⟶ C^{•}[X] \\ ⟨⟩ ↦ c • ⟨⟩ \end{matrix}]

due to the convention to consider constants as nullary functions

due to definition ??(3)

= [\begin{matrix}\{⟨⟩\} ⟶ C^{•}[X] \\ ⟨⟩ ↦ [ \begin{matrix}\{⟨⟩\} ⟶ C \\ ⟨⟩ ↦ c \end{matrix} ] \end{matrix}]

due to def. ??(1)

= 0

due to the convention again,

to consider nullary functions as constants.

(3) (a) The new carrier classes C^{•}[X] with C ∈ Car are well– defined. For each o ∈ Car the new operator o^{•} is a well–defined ordinary operator on these carrier classes. And according to (1), each v^{•} is a well–defined constant, for v ∈ V. (b) Proof is left as an exercise.

17.7.9 Remark

We introduced two different notations to denote classes of schematic functions: “Xfun (X, Car)”.and “C^{•}[X]”. The latter is following the common bracket notation for rings of polynomials, such as “ℤ[x_{1}, …, x_{n}]”. The first one is useful later on as an important class in our development of interpretations for terms. The following lemma points out the close relation of the two notations.

17.7.10 Lemma

Given a schema X. Then

(1) C^{•}[X] = Xfun (X, {C}) for every class C.

(2) Xfun (X, Car) = ⋃_{C∈Car}C^{•}[X] for each family Car.

17.7.11 Proof of 17.7.10

Immediate consequences of definitions ??(1) for “C^{•}[X]” ?? for “Xfun (X, Car)”.

17.7.12 Theorem embedding theorem for structure

parametrization

Let 𝔄 = ⟨Car, Op⟩ be an ordinary structure.

(1) 𝔄 ≅ A^{•}[⟨⟩]

(2) Let X = [X_{v}|v ∈ V] be a schema with X_{v} ∈ Car for all v ∈ V. If Y ≤ X, then 𝔄^{•}[Y] is embedded in 𝔄^{•}[X] in the sense that

(a) C^{•}[Y] ⊆ C^{•}[X] for each carrier C ∈ Car

(b) *** CONTINUE HERE ***

(3) 𝔄^{•}[X] is embedded in 𝔄^{∘}[X] in the sense that (a) C^{•}[X] ⊆ C^{∘}[X], for each carrier C ∈ Car

(b) *** CONTINUE HERE ***

17.7.13 Proof of 17.7.12

*** CONTINUE HERE ***

17.8 Generalized and particularized parametrizations

17.8.1 Definition

Let X = [X_{v}|v ∈ V] be a schema.

For each R : D_{1} ↭ … ↭ D_{n} we define

R_{[X]}^{∀} := [ D_{1}^{•}[X] ↭ … ↭ D_{n}^{•}[X] ; ⟨f_{1}, …, f_{n}⟩ ↝ ; \begin{matrix}∀ξ ∈ ⊗x \{f_{1}, …, f_{n}\} . \\ R ⊚ ⟨f_{1}, …, f_{n}⟩(ξ) = 1 \end{matrix} ]

the generalized parametrization of R over X.

R_{[X]}^{∃} := [ D_{1}^{•}[X] ↭ … ↭ D_{n}^{•}[X] ; ⟨f_{1}, …, f_{n}⟩ ↝ ; \begin{matrix}∃ξ ∈ ⊗x \{f_{1}, …, f_{n}\} . \\ R ⊚ ⟨f_{1}, …, f_{n}⟩(ξ) = 1 \end{matrix} ]

the particularized parametrization of R over X.

For every ordinary structure 𝔄 = ⟨Car, Op⟩ with X_{v} ∈ Car for each v ∈ V, we define

𝔄^{∀}[X] := ⟨Car′, Par (X) ∪ F ∪ R^{∀}⟩

the generalized parametrization of 𝔄 over X, and

𝔄^{∃}[X] := ⟨Car′, Par (X) ∪ F ∪ R^{∃}⟩

the existentialized parametrization of 𝔄 over X, where

Car′ := {C^{•}[X] | C ∈ Car}
F := {f_{[X]}^{•} | f ∈ Op is a constant or function }
R^{∀} := {R_{[X]}^{∀} | R ∈ Op is a relation }
R^{∃} := {R_{[X]}^{∃} | R ∈ Op is a relation }

17.8.2 notational convention

Similar to ??, we often write

R^{∀} instead of R_{[X]}^{∀} and R^{∃} instead of R_{[X]}^{∀}

and

𝔄^{∀}[v_{1}, v_{2}, …] for 𝔄^{∀}[X] and 𝔄^{∃}[v_{1}, v_{2}, …] for 𝔄^{∃}[X]

in case 𝔄 has just one carrier A and

X = [\begin{matrix}v_{1} & ↦ & A \\ v_{2} & ↦ & A \\ ⋮ & & ⋮ \end{matrix}]

Part IX

(Multi–carrier) (first–order) predicate logic (with identity and descriptions)

18 Syntax

18.1 Introduction

18.1.1 Remark

Let us picture the concept of an interpretation or symbolized structure ℑ again.

𝔖 ℑ 𝔄_{signature} _{interpretation} _{structure}

So far, the signature 𝔖 was a way to attach handles to the components of the structure 𝔄. Next we show, how 𝔖 also defines an entire language, made of terms and formulas. In turn, the interpretation is not only a semantics for the symbols in 𝔖, but also induces a meaning to each of the terms and formulas. In the next section V we will show how all this is defined in detail. In this section, we concentrate on the syntax induced by 𝔖 and we introduce terms, formulas and theories. Again, we try to stay close to the usual standard terminology in our definitions, as far as there seems to be one. One exception is the emphasis we put on the variables. In our design, variables are no awkward auxiliaries that should be abstracted away as much as possible. Instead we treat them as an essential part of the syntax. For us it is not only the signature 𝔖 that constitutes the world we live in, but the parameterized signature 𝔖 † 𝔙, which is 𝔖 with an additional and suitable variable set 𝔙.

18.2 Variable sets

18.2.1 Definition

A (prototyped) variable set is given by

𝔙 = ⟨V ar, Csy, csy⟩

where ( ; 𝅝 ; ) V ar is a class of identifiers, called variables ( ; 𝅝 ; ) Csy is a class of identifiers, called carrier symbols ( ; 𝅝 ; ) csy : V ar ⟶ Csy is the carrier symbol or prototype func-

tion

If a variable set 𝔙 = ⟨V ar, Csy, csy⟩ has a finite variable class V ar = {v_{1}, …, v_{m}}, then 𝔙 itself is called finite and is often represented more conveniently by its compact form

𝔙 = ( v_{1} : csy(v_{1}) ; ⋮ ; v_{m} : csy(v_{m}) )

If 𝔙 = ⟨V ar, Csy, csy⟩ is a variable set, we write

Var (𝔙) := V ar Csy (𝔙) := Csy csy_{𝔙} := csy

to recover the components from “𝔙”.

We also use the usual convention to write multiple variables with the same prototype in one row, separated by commas, i.e. we sometimes write

( v_{1,1}, …, v_{1,m1} : V_{1} ; ⋮ ; v_{n,1}, …, v_{n,mn} : V_{n} ) for ( v_{1,1} : V_{1} ⋮ v_{1,m1} : V_{1} ⋮ v_{n,1} : V_{n} ⋮ v_{n,mn} : V_{n} )

18.2.3 Example

A finite sorted variable set with six variables and two carrier symbols is given by

                                                                                    𝔙 = ( \begin{matrix}a : R \\ b : R \\ c : R \\ x : M \\ y : M \\ z : M \end{matrix} ) = ( \begin{matrix}a, b, c : R \\ x, y, z : M \end{matrix} )

In this case we have

Var (𝔙) = {a, b, c, x, y, z} Csy (𝔙) = {R, V}

sort_{𝔙} = [\begin{matrix}\{a, b, c, x, y, z\} ⟶ \{R, V\} \\ v ↦ \begin{cases}R & if v ∈ \{a, b, c\} \\ V & if v ∈ \{x, y, z\} \end{cases} \end{matrix}]

18.2.4 Remark

The compact form for the 𝔙 from the previous example is much more intuitive than the cumbersome triple ⟨V ar, Csy, sort⟩. Occasionally, we may therefore use a similar form for infinite variable sets as well. For example

𝔙 = ( a_{0} : R a_{1} : R ⋮ x_{0} : M x_{1} : M ⋮ ) or 𝔙 = ( \begin{matrix}a_{0}, a_{1}, …: R \\ x_{0}, x_{1}, …: M \end{matrix} )

18.3 Parameterized signatures

18.3.1 Definition

A parameterized signature or para–signature is given by

𝔔 = ⟨Csy, Osy, V ar, sig, csy⟩

where

( ; 𝅝 ; ) 𝔰𝔦𝔤𝔫 (𝔔) := ⟨Csy, Osy, sig⟩ is a signature and

( ; 𝅝 ; ) 𝔳𝔞𝔯𝔰 (𝔔) := ⟨V ar, Csy, csy⟩ is a variable set.

Given a signature 𝔖 and a variable set 𝔙, where

𝔖 = ⟨Csy, Osy, sig⟩  and  𝔙 = ⟨V ar, Csy′, csy⟩

We say that 𝔙 is (a) (suitable) (variable set) for 𝔖, if

Osy ∩ V ar = ∅  and  Csy′ ⊆ Csy

And in that case, we define a parameterized signature by putting

𝔖 † 𝔙 := ⟨Csy, Osy, V ar, sig, csy⟩

In fact, we can write every parameterized signature 𝔔 as the combination 𝔖 † 𝔙 of its signature 𝔖 and (always suitable) variable set 𝔙.

If 𝔔 = 𝔖 † 𝔙 is a parameterized signature, we let 𝔔 inherit all the notations from 𝔖 and 𝔙. More precisely,

Csy (𝔔) := Csy (𝔖) Osy (𝔔) := Osy (𝔖)

Var (𝔔) := Var (𝔙) sig_{𝔔} := sig_{𝔖} csy_{𝔔} := csy_{𝔖}

dosys_{𝔔} := dosys_{𝔖} cosy_{𝔔} := cosy_{𝔖} ar_{𝔔} := ar_{𝔖}

If 𝔔 = 𝔖 † 𝔙 is an parameterized signature and both 𝔖 and 𝔙 are finite, say

𝔖 = ( S_{1}, …, S_{k} ; o_{1} : τ_{1} ; ⋮ ; o_{n} : τ_{n} ) and 𝔙 = ( v_{1} : V_{1} ; ⋮ ; v_{m} : V_{m} )

then 𝔔 itself is called finite and written in a compact form

𝔔 = ( S_{1}, …, S_{k} o_{1} : τ_{1} ⋮ o_{n} : τ_{n} v_{1} : V_{1} ⋮ v_{m} : V_{m} )

18.3.2 Example parameterized signature for collections

Let us take the signature for collections from 15.4.9

𝔖col = ( \begin{matrix}Item, Coll \\ emp : Coll \\ ins : Item × Coll ⟶ Coll \\ del : Item × Coll ⟶ Coll \\ Mem : Item ↭ Coll \\ Emp : Pty(Coll) \\ Incl : Coll ↭ Coll \end{matrix} )

A suitable variable set for 𝔖col is given by

𝔙col = ( \begin{matrix}a, b, c : Item \\ s, t, u : Coll \end{matrix} )

So the combination

𝔔col := 𝔖col † 𝔙 col

is a well–defined parameterized signature

           𝔔col = ( \begin{matrix}Item, Coll \\ emp : Coll \\ ins : Item × Coll ⟶ Coll \\ del : Item × Coll ⟶ Coll \\ Mem : Item ↭ Coll \\ Emp : Pty(Coll) \\ Incl : Coll ↭ Coll \\ a, b, c : Item \\ s, t, u : Coll \end{matrix} )

We call it the parameterized signature for collections.

18.3.3 Example parameterized signature for polynomials

For each m ∈ ℕ, we defined a (finite) parameterized signature

𝔖rg † 𝔙_{m}

where 𝔖rg is the signature for rings from 15.4.8 and 𝔙_{m} comprises m variables of prototype S, i.e.

     𝔖rg = ( \begin{matrix}S \\ zero : S \\ unit : S \\ add : S × S ⟶ S \\ mult : S × S ⟶ S \\ neg : S ⟶ S \end{matrix} ) and 𝔙_{m} = ( x_{1} : S ; x_{2} : S ; ⋮ ; x_{m} : S )

In most examples, m will be 3 at most, and in these cases we improve the readability of the variables by using some abbreviations. We put

x := x_{1}  y := x_{2}  z := x_{3}

This prototyped signature is an important one in the mathematical tradition, because it essentially forms the syntax of the polynomials in m variables (see 19.4.7).

18.3.4 Definition

If 𝔖 † 𝔙 is a parameterized signature such that for each carrier symbol S in 𝔖 there is an countable infinite supply of variables s_{0}, s_{1}, s_{2}, … in 𝔙, then 𝔙 is called a standard (infinite) variable set for 𝔖 and 𝔖 † 𝔙 is a standard (infinite) (parameterized) signature.

18.3.5 Example

A standard infinite variable set for the ring signature 𝔖rg from 19.3.3 is given by

( x_{0} : R x_{1} : R x_{2} : R ⋮ ) i.e. ( x_{0}, x_{1}, x_{2}, …: R )

A standard infinite variable set for 𝔖col (19.3.2) is

a_{0}, a_{1}, a_{2}, …: Item
s_{0}, s_{1}, s_{2}, …: Coll

18.3.6 Remark

We introduce the terminology of “standard (infinite)” variable sets and signatures to distinguish from and to comply with the tradition. In most text books, there is no other than this kind of standard infinite variable set and our notion of an “parameterized signature 𝔖 † 𝔙” doesn’t exist, there is only the signature 𝔖 and 𝔙 is never mentioned explicitely.

18.4 Terms and formulas

18.4.1 Remark

We now define the terms and formulas that can be built from a given parameterized signature. In our design, formulas can be used in building new terms (see conditional expressions and descriptions below), and terms again are parts of formulas. Therefore, we need to define both classes simultaneously. For the time being, it is helpful to use the traditional semantic principle and to think of terms as expressions standing for values, and formulas as expressions standing for statements. By values we mean typed values, i.e. each one points to a carrier or codomain, whose member it is. But since our language has no meaning yet, this codomain is not defined, but is only given as a codomain symbol. Together with the introduction of terms and formulas, we also need a function cosy that assigns this codomain symbol cosy (θ) to each term θ. This way, we make sure that our expressions will be well–typed. Given a parameterized signature 𝔔 = 𝔖 † 𝔙, we already have a partial codomain symbol function (see def. ??)

cosy_{𝔔} = cosy_{𝔖} : Osy (𝔔) −−→ Csy (𝔔)

that returns a codomain symbol for each constant and function symbol. We now add a function with the same name

cosy_{𝔔} : Term (𝔔) ⟶ Csy (𝔔)

but acting on all the given terms.

18.4.2 Definition

For each parameterized signature 𝔔 = 𝔖 † 𝔙 we simultaneously define

(1) Term (𝔔) its term class

(2) Form (𝔔) its formula class

(3) cosy_{𝔔} : Term (𝔔) ⟶ Csy(𝔔)

its codomain symbol function

as follows:

(1) Term (𝔔) comprises the following expressions:

v  for every variable v ∈ Var(𝔔)

(variable)

c  for every constant c ∈ Osy(𝔔)

(constant)

f(θ_{1}, …, θ_{n})  for f : D_{1} × … × D_{n} ⟶ C

is a function symbol in 𝔔 and all θ_{1}, … θ_{n} ∈ Term (𝔔) with cosy (θ_{1}) = D_{1}, …, cosy (θ_{n}) = D_{n}

(application)

[if φ then θ_{1} else θ_{2}] for each φ ∈ Form (𝔔)
and all θ_{1}, θ_{2} ∈ Term (𝔔)
with cosy_{𝔔}(θ_{1}) = cosy_{𝔔}(θ_{2})

(conditional)

[the v with φ]  for all v ∈ Var(𝔔)
and φ ∈ Form (𝔔)

(description)

(2) Form (𝔔) comprises the following expressions:

R(θ_{1}, …, θ_{n}) for R : D_{1} ↭ … ↭ D_{n}

is a relation symbol in 𝔔 and all θ_{1}, …, θ_{n} ∈ Term (𝔔) with cosy (θ_{1}) = D_{1}, …, cosy (θ_{n}) = D_{n}

(relation form)

[θ_{1} = θ_{2}]  for all θ_{1}, θ_{2} ∈ Term (𝔔)

(equation)

¬φ  for each φ ∈ Form (𝔔)

(negation)

[φ_{1} ∧ … ∧ φ_{n}] for all φ_{1}, …, φ_{n} ∈ Form (𝔔)

(conjunction)

[φ_{1} ∨ … ∨ φ_{n}] for all φ_{1}, …, φ_{n} ∈ Form (𝔔)

(disjunction)

∃v . φ  for all v ∈ Var(𝔔) and φ ∈ Form (𝔔)

(existentialization)

∀v . φ  for all v ∈ Var(𝔔) and φ ∈ Form (𝔔)

(generalization)

(3) For every θ ∈ Term (𝔔) we define

cosy_{𝔔}(θ) := \begin{cases}csy_{𝔔}(v) & if θ = v ∈ Var (𝔔) \\ & is a variable \\ cosy_{𝔔}(c) & if θ = c ∈ Osy (𝔔) \\ & is a constant \\ cosy_{𝔔}(f) & if θ = f(θ_{1}, …, θ_{n}) \\ & is an application \\ cosy_{𝔔}(θ_{1}) & if θ = [if φ then θ_{1} else θ_{2}] \\ & is a conditional \\ csy_{𝔔}(v) & if θ = [the v with φ] \\ & is a description \end{cases}

18.4.3 Remark

(1) We use the square brackets “[◯ 1 ]” around conditionals, descriptions, equations, conjunctions and disjunctions as part of the syntax, we never omit them.

(2) We allow conjunctions and disjunctions to have any finite amount of arguments, including none at all, in which case we write

[ ∧ ]  and  [ ∨ ]

If necessary, we write the unary cases as

[ ∧ φ_{1}]  and  [ ∨ φ_{1}]

(But of course, we will hardly use them, because both will turn out to be equivalent to φ_{1} itself.)

18.4.4 Definition

Based on definition 19.4.2, we additionally introduce a couple of abbreviations (see Thalg 8 ):

( ; 𝅝 ; ) the difference of two formulasφ_{1}, φ_{2}

[φ_{1} ≠ φ_{2}] := ¬[φ_{1} = φ_{2}]

( ; 𝅝 ; ) the false statement

false := [ ∨ ]

( ; 𝅝 ; ) the true statement

true := [ ∧ ]

( ; 𝅝 ; ) the subjunction of formulas φ_{1}, …, φ_{n}

\begin{matrix}[φ_{1} → … → φ_{n}] \\ := [[¬φ_{1} ∨ φ_{2}] ∧ … ∧ [¬φ_{n−1} ∨ φ_{n}]] \end{matrix}

( ; 𝅝 ; ) the equijunction of formulas φ_{1}, …, φ_{n}

\begin{matrix}[φ_{1} ↔ … ↔ φ_{n}] \\ := [[¬φ_{1} ∧ … ∧ ¬φ_{n}] ∨ [φ_{1} ∧ … ∧ φ_{n}]] \end{matrix}

18.4.5 Example

Let 𝔔col be the parameterized signature for collections from example 19.3.2,

𝔔col = 𝔖col † 𝔙col = ( \begin{matrix}Item, Coll \\ emp : Coll \\ ins : Item × Coll ⟶ Coll \\ del : Item × Coll ⟶ Coll \\ Mem : Item ↭ Coll \\ Emp : Pty(Coll) \\ Incl : Coll ↭ Coll \\ a, b, c : Item \\ s, t, u : Coll \end{matrix} )

(1) Examples of terms θ ∈ Term (𝔔col) and their codomain symbol cosy_{𝔔} (θ) are given by

(a) s

This s, like every other variables, is a term. The codomain symbol of a variable is determined by its prototype in 𝔙col, in this case cosy_{𝔔}(s) = csy_{𝔔}(s) = Coll.

(b) emp

A constant like emp is a term with the codomain symbol determined by the signature, in this case cosy_{𝔔} (emp) = Coll.

(c) ins(a, emp)

is a well–defined term, because ins : Item × Coll ⟶ Coll, cosy_{𝔔} (a) = Item and cosy_{𝔔} (emp) = Coll. The codomain symbol of such an application is the codomain symbol of the function symbol, thus cosy_{𝔔} (ins(a, emp)) = cosy_{𝔔} (ins) =

Coll.
(d) del(a, ins(a, emp))

is also an application with codomain symbol Coll.

(e) [if Emp(s) then ins(a, s) else del(b, s)]

For the construction of a conditional term like this we have to make sure that both main argument terms, here ins(a, s) and del(b, s), have the same codomain symbol, in this case Coll, which is then the codomain symbol of the whole term.

(f) [the s with [del(a, s) = emp]]

is a well–defined description and its codomain symbol is Coll, because that is the codomain symbol csy_{𝔔}(s) of the variable

s.

(2) Examples of formulas φ ∈ Form (𝔔col) are:

(a) Emp(emp)

is a well–defined relation form. Emp is a property (i.e. an unary relation) on Coll and the codomain symbol of the argument

emp in Emp(emp) is also Coll.
(b) [a = emp]

is an equation and a well–defined formula. Note, that there were no type constraints defined for equations, the left and right terms in an equation may have different codomain symbols, and in this example they have indeed.

(c) [Emp(emp) ∧ ¬[a = emp] ∧ [a = a] ∧ ¬false]

is an example of a more complex formula, a conjunction to be precise.

(d) ¬∃s . [ins(a, s) = emp] is another well–defined formula, this time a negated existentialization.

18.4.6 Example

Let us take the parameterized signature 𝔖rg † 𝔙_{m} from 19.3.3 again. We consider m = 3, so

 𝔖rg = ( \begin{matrix}S \\ zero : S \\ unit : S \\ add : S × S ⟶ S \\ mult : S × S ⟶ S \\ neg : S ⟶ S \end{matrix} ) and 𝔙_{3} = ( \begin{matrix}x : S \\ y : S \\ z : S \end{matrix} )

Example terms of 𝔖rg † 𝔙_{3} are:

(1) mult(x, mult(x, add(unit, y)))
(2) add(mult(add(unit, unit), mult(x, x)), add(unit, unit))

( ; 𝅝 ; ) [the y with [add(x, y) = zero]]

which can be paraphrased by “the y that makes d(x, y) equal zero” and the codomain symbol of this term is cosy (y) which is

  S.

There is only one carrier symbol S and obviously, each of the previous terms θ has cosy (θ) = S. Example formulas of 𝔖rg † 𝔙_{3} are:

( ; 𝅝 ; ) [att(unit, neg(unit)) = zero]
( ; 𝅝 ; ) ∀x . ∃y . [add(x, y) = zero]

etc.

18.4.7 Remark polynomials

When we introduced the parameterized signature 𝔖rg † 𝔙_{m} in 19.3.3, we mentioned that this would induce the syntax for polynomials in m variables. This might not seem very obvious, one more likely associates “polynomials” with expressions like

α_{d}x^{d} + α_{d−1}x^{d−1} + … + α_{2}x^{2} + α_{1}x+ α_{0}

But we get there, when we make a couple of adjustments. Let us take an example term, say

  add(mult(add(neg(unit), neg(unit)), mult(x, x)), add(unit, unit))

When we use the following abbreviations and write

0 for zero 1 for unit -◯ 1 for neg(◯ 1 )

(◯ 1 +◯ 2 ) for add(◯ 1 , ◯ 2 ) and (◯ 1 *◯ 2 ) for mult(◯ 1 , ◯ 2 )

the example term already turns into

                   ((-1+-1) * (x*x)) + (1+1)

And with the additional convention to write

◯ 1 + … + ◯ n for (◯ 1 + (◯ 2 + …))
◯ 1 * … * ◯ n or even ◯ 1 … ◯ n for (◯ 1 * (◯ 2 * …))
n for \underbrace{1+ … +1}_{n–times}  and  -n for \underbrace{-1+ … +-1}_{n–times}

we obtain

                 -2*x^{2} +2 or simply -2x^{2} +2

and that looks more like it. With these abbreviations in mind, the common polynomial expressions

Poly[ x_{1}, …, x_{m} ] ⊆ Term (𝔖rg † 𝔙_{m})

are just the terms on 𝔖rg † 𝔙_{m} that include variables, constants and applications (thus no conditional or description). (See ???? for a more detailed reconstruction.)

18.5 Special expressions and syntactical operations

18.5.1 Definition

For every parameterized signature 𝔔

Expr (𝔔) := Term (𝔔) ⊎ Form (𝔔)

is the (well–formed) expression class of 𝔔.

18.5.2 Remark

Note the “⊎” in definition 19.5.1, which emphasized that the union of terms and formulas is disjunct. Given 𝔔 and an arbitrary expression ξ ∈ Expr (𝔔), we are always able to tell if it is a term or a formula.

18.5.3 Definition

An atomic formula or atom (form) is either a relation form or an equation.

Atf (φ) denotes the atom (form) class of a given φ ∈

Form (𝔔). A precise definition is given in figure 16.

18.5.4 Example

Let us consider the formulas φ ∈ Form (𝔔col) from example 19.4.5(2).

(1) We find that (a) Emp(emp) is an atom form,

(b) [a = emp] is an atom form, too, whereas

                                                                         (c) [Emp(emp) ∧ ¬[a = emp] ∧ [a = a] ∧ ¬false]  is not and

(d) ¬∃s . [ins(a, s) = emp] is also not an atom form.

(2) The atom classes for each of these four examples are as follows:

(a) Atf (Emp(emp)) = {Emp(emp)}

(b) Atf ([a = emp]) = {[a = emp]}

                                                                         (c) If φ is [Emp(emp) ∧ ¬[a = emp] ∧ [a = a] ∧ ¬false] then
                                                                           Atf (φ) = {Emp(emp), [a = emp], [a = a]}

(d) Atf (¬∃s . [ins(a, s) = emp]) = {[ins(a, s) = emp]}

Note in case (c), that false, i.e. [ ∨ ], is a pretty primitive formula, however it is not an atom form according to the definition.

18.5.5 Definition

If ξ is an expression on a given parameterized signature 𝔔, then

( ; 𝅝 ; ) Var (ξ) is the variable class of ξ, i.e. all members of

Var (𝔙) that occur in ξ, and

( ; 𝅝 ; ) Fvar (ξ) is the free variable class of ξ.

For precise definitions see Figure 16.

18.5.6 Remark

If ξ is either a term or a formula on a given parameterized signature 𝔔, then

Fvar (ξ) ⊆ Var (ξ) ⊆ Var (𝔔)

A variable v in a formula φ is bound, i.e. no longer free, in the description the v with φ, the existentiation ∃v . φ and the generalization ∀v . φ. It is then consumed in the expression and does no longer serve as a free parameter.

PredLogInTheoAlgRel 114

Figure 16: Syntactical operators

Given an parameterized signature 𝔔. We define

Atf := [ \begin{matrix}Form (𝔔) ⟶ Fin (Form(𝔔)) \\ φ ↦ \begin{cases}\{R (θ_{1}, …, θ_{n})\} & if φ = R (θ_{1}, …, θ_{n}) is a relation form \\ \{[θ_{1} = θ_{2}]\} & if φ = [θ_{1} = θ_{2}] \\ Atf (ψ) & if φ = ¬ψ is a negation \\ Atf (φ_{1}) ∪ … ∪ Atf (φ_{n}) & if φ = [φ_{1} ∧ … ∧ φ_{n}] is a conjunction \\ Atf (φ_{1}) ∪ … ∪ Atf (φ_{n}) & if φ = [φ_{1} ∨ … ∨ φ_{n}] is a disjunction \\ Atf (ψ) & if φ = ∃v . ψ is an existentiation \\ Atf (ψ) & if φ = ∀v . ψ is a generalization \end{cases} \end{matrix} ]

the atom (form) class function (of 𝔔)

Var := [ \begin{matrix}Expr (𝔔) ⟶ Fin (Var (𝔙)) \\ ξ ↦ \begin{cases}\{v\} & if ξ = v is a variable \\ ∅ & if ξ = c is a constant \\ Var (θ_{1}) ∪ … ∪ Var (θ_{n}) & if ξ = f (θ_{1}, …, θ_{n}) is an application \\ Var (φ) ∪ Var (θ_{1}) ∪ Var (θ_{2}) & if ξ = [if φ then θ_{1} else θ_{2}] is a conditional \\ Var (φ) ∪ \{v\} & if ξ = [the v with φ] is a description \\ Var (θ_{1}) ∪ … ∪ Var (θ_{n}) & if ξ = R (θ_{1}, …, θ_{n}) is a relation form \\ Var (θ_{1}) ∪ … ∪ Var (θ_{2}) & if ξ = [θ_{1} = θ_{2}] \\ Var (φ) & if ξ = ¬φ is a negation \\ Var (φ_{1}) ∪ … ∪ Var (φ_{n}) & if ξ = [φ_{1} ∧ … ∧ φ_{n}] is a conjunction \\ Var (φ_{1}) ∪ … ∪ Var (φ_{n}) & if ξ = [φ_{1} ∨ … ∨ φ_{n}] is a disjunction \\ Var (φ) ∪ \{v\} & if ξ = ∃v . φ is an existentiation \\ Var (φ) ∪ \{v\} & if ξ = ∀v . φ is a generalization \end{cases} \end{matrix} ]

the variable class function (of 𝔔)

Fvar := [ \begin{matrix}Term (𝔔) ⟶ Fin (Var (𝔙)) \\ ξ ↦ \begin{cases}\{v\} & if ξ = v is a variable \\ ∅ & if ξ = c is a constant \\ Fvar (θ_{1}) ∪ … ∪ Fvar (θ_{n}) & if ξ = f (θ_{1}, …, θ_{n}) is an application \\ Fvar (φ) ∪ Fvar (θ_{1}) ∪ Fvar (θ_{2}) & if ξ = [if φ then θ_{1} else θ_{2}] is a conditional \\ Fvar (φ) \ \{v\} & if ξ = [the v with φ] is a description \\ Fvar (θ_{1}) ∪ … ∪ Fvar (θ_{n}) & if ξ = R (θ_{1}, …, θ_{n}) is a relation form \\ Fvar (θ_{1}) ∪ … ∪ Fvar (θ_{2}) & if ξ = [θ_{1} = θ_{2}] \\ Fvar (φ) & if ξ = ¬φ is a negation \\ Fvar (φ_{1}) ∪ … ∪ Fvar (φ_{n}) & if ξ = [φ_{1} ∧ … ∧ φ_{n}] is a conjunction \\ Fvar (φ_{1}) ∪ … ∪ Fvar (φ_{n}) & if ξ = [φ_{1} ∨ … ∨ φ_{n}] is a disjunction \\ Fvar (φ) \ \{v\} & if ξ = ∃v . φ is an existentiation \\ Fvar (φ) \ \{v\} & if ξ = ∀v . φ is a generalization \end{cases} \end{matrix} ] the free variable class function (of 𝔔)

Again, let us take the expressions from example 19.4.5 and let us determine their variables and free variables. (1)(a) Var (s) = Fvar (s) = {s} (1)(b) Var (emp) = Fvar (emp) = ∅ (1)(c) Var (ins(a, emp)) = Fvar (ins(a, emp)) = {a} (1)(d) If θ is del(a, ins(a, emp)) then Var (θ) = Fvar (θ) = {a} (1)(e) If θ is [if Emp(s) then ins(a, s) else del(b, s)] then Var (θ) =

Fvar (θ) = {a, b, s} (1)(f) If θ is [the s with [del(a, s) = emp]] then Var (θ) = {a, b, s}

and Fvar (θ) = {a, b} (2)(a) Var (Emp(emp)) = Fvar (Emp(emp)) = ∅ (2)(b) Var ([a = emp]) = Fvar ([a = emp]) = {a} (2)(c) If φ is [Emp(emp) ∧ ¬[a = emp] ∧ [a = a] ∧ ¬false] then

Var (φ) = Fvar (φ) = {a} (2)(d) If φ is ¬∃s . [ins(a, s) = emp] then Var (φ) = {a, s} and

Fvar (φ) = {a} 18.5.8 Definition For every parameterized signature 𝔔 we define

Cterm (𝔔) := {θ ∈ Term (𝔔) | Fvar (θ) = ∅}

the closed term class of 𝔔

Cform (𝔔) := {φ ∈ Form (𝔔) | Fvar (φ) = ∅}

the closed formula (or sentence) class of 𝔔

18.5.9 Example

In example 19.5.7 (i.e. 19.4.5),

(1) the term in (b) is closed, while the terms in (a),(c),(d),(e),(f) are not,

(2) the formula in (a) is closed, and the formulas in (b),(c),(d) are not.

18.6 Theories

18.6.1 Introduction

A (formal) theory is made of ( ; 𝅝 ; ) the syntax, i.e. a formal language, that provides us with the

means to make sentences about certain things, and ( ; 𝅝 ; ) its semantics, given by the class of all the theorems, i.e. all the

sentences that are defined to hold.

Our formal representation of a theory is a pair, made of ( ; 𝅝 ; ) A parameterized signature 𝔔, that generates all expressions, i.e.

all terms and formulas. ( ; 𝅝 ; ) A selection Ax of sentences (i.e. closed formulas), called axioms,

which explain the conditions that have to hold. The theorems are all the consequences of these axioms.

18.6.2 Definition

An (ordinary) theory is given by

𝔗 = ⟨𝔔, Ax⟩

where

( ; 𝅝 ; ) 𝔭𝔰𝔦𝔤𝔫 (𝔗) := 𝔔 is a parameterized signature

( ; 𝅝 ; ) Ax (𝔗) := Ax ⊆ Cform (𝔔) is the axiom class

A theory 𝔗 = ⟨𝔔, Ax⟩ is called finite, if both 𝔔 and Ax are finite.

18.6.3 Example

The theory of groups is the finite theory

𝔗gr = ⟨𝔔gr, Axgr⟩

where

𝔔gr := ( \begin{matrix}G \\ neu : G \\ op : G × G ⟶ G \\ inv : G ⟶ G \\ x, y, z : G \end{matrix} ) and Axgr := \{ \begin{matrix}φass, \\ φneu, \\ φinv \end{matrix} \}

and where

(1) φass is the associativity law

   ∀x . ∀y . ∀z . [op(op(x, y), z) = op(x, op(y, z))]

(2) φneu is the neutral element law

   ∀x . [[op(neu, x) = x] ∧ [op(x, neu) = x]]

(3) φinv is the inversion law

   ∀x . [[op(x, inv(x)) = neu] ∧ [op(inv(x), x) = neu]]

18.6.4 Example

The theory of poclasses is the finite theory

𝔗po := ⟨𝔔po, Axpo⟩

where

𝔔po := ( \begin{matrix}P \\ R : P ↭ P \\ x, y, z : P \end{matrix} ) and Axpo := \{ \begin{matrix}φtr, \\ φrefl, \\ φantisym \end{matrix} \}

and where

(1) φtr is the transitivity law

∀x . ∀y . ∀z . [[R(x, y) ∧ R(y, z)] → R(x, z)]

(2) φrefl is the reflexivity law

∀x . R(x, x)

(3) φantisym is the anti–symmetry law

                                                                          ∀x . ∀y . [[R(x, y) ∧ R(y, x)] → [x = y]]

18.6.5 Example

Two examples of finite theories based on a signature that is made of nothing but two carrier symbols A and B.

(1) A theory saying “A is a subset/subclass of B” is given by 𝔗 = ⟨𝔔, Ax⟩ where ^{17}

𝔔 := ( \begin{matrix}A, B \\ (* no operator symbols *) \\ x : A \\ y : B \end{matrix} )

and

Ax := {∀x . ∃y . [x = y]}

(2) A theory saying “A and B are disjunct sets/classes” is given by 𝔗 = ⟨𝔔, Ax⟩ where

𝔖 := ( \begin{matrix}A, B \\ (* no operator symbols *) \\ x : A \\ y : B \end{matrix} )

and

Ax := {∀x . ∀y . ¬[x = y]}

18.6.6 Example

The theory of collections is the finite theory

𝔗col := ⟨𝔔col, Axcol⟩

with the parameterized signature for collections from 19.3.2

                                                                                    𝔔col = ( \begin{matrix}Item, Coll \\ emp : Coll \\ ins : Item × Coll ⟶ Coll \\ del : Item × Coll ⟶ Coll \\ Mem : Item ↭ Coll \\ Emp : Pty(Coll) \\ Incl : Coll ↭ Coll \\ a, b, c : Item \\ s, t, u : Coll \end{matrix} )

17We occasionally use (* … *) to put a comment “…” inside a formal expression, similar to the convention in programming languages like ML. and where the axioms in Axcol are the following:

(1) one extensionality or Mem axiom

∀s . ∀t . [[s = t] ↔ ∀a . [Mem(a, s) ↔ Mem(a, t)]]

(2) one Emp axiom

∀s . [Emp(s) ↔ ∀a . ¬Mem(a, s)]

(3) one emp axiom

∀s . [Emp(s) ↔ ∀a . ¬Mem(a, s)]

(4) one Incl axiom

∀s . ∀t . [Incl(s, t) ↔ ∀a . [Mem(a, s) → Mem(a, t)]]

(5) two ins axioms

∀a . ∀s . Mem(a, ins(a, s))
∀a . ∀b . ∀s . [[b ≠ a] → [Mem(b, s) ↔ Mem(b, ins(a, s))]]

(6) two del axioms

∀a . ∀s . ¬Mem(a, del(a, s))
∀a . ∀b . ∀s . [[b ≠ a] → [Mem(b, s) ↔ Mem(b, del(a, s))]]

(7) three axioms saying that Incl is a partial order relation (see 19.6.4)

∀s . ∀t . ∀u . [[Incl(s, t) ∧ Incl(t, u)] → Incl(s, u)]
∀s . Incl(s, s)
∀s . ∀t . [[Incl(s, t) ∧ Incl(t, s)] → [s = t]]

Exercises

*** remaining examples maybe obsolete ***

18.6.7 Exercise

Consider the often used alternative theory of a group with a smaller signature.

𝔗gr^{′} = ⟨𝔖gr^{′}, 𝔙gr^{′}, Axgr^{′}⟩

where

𝔖gr^{′} := ( \frac{G}{op : G × G ⟶ G} ) 𝔙gr^{′} := ( \begin{matrix}x : G \\ y : G \\ z : G \\ neu : G \\ inv : G \end{matrix} )

Axgr^{′} = {φass^{′}, φneu^{′}, φinv^{′}}

This time we use the following abbreviations: ( ; 𝅝 ; ) neu is the following term

                                                                       neu := [the neu with ∀x . [[op(neu, x) = x] ∧ [op(x, neu) = x]]]

( ; 𝅝 ; ) For every term θ with inv ∉ Fvar (θ), inv(θ) is the following term

                                                                       inv(θ) := [the inv with [op(θ, inv) = neu] ∧ [op(inv, θ) = neu]]

*** the axioms ***

*** CONTINUE HERE ***

18.6.8 Exercise

*** Two equivalent theories: boolean lattice (as poclass) / boolean algebra ***

18.6.9 Example

*** CONTINUE HERE ***

( ; 𝅝 ; ) The theory of modules

( ; 𝅝 ; ) The theory of vector spaces ( ; 𝅝 ; ) The theory of Euclidean spaces

where

                                                                     𝔖euc := ( \begin{matrix}Scal, Vec \\ zero : Scal \\ unit : Scal \\ add : Scal × Scal ⟶ Scal \\ mult : Scal × Scal ⟶ Scal \\ Smeq : Scal ↭ Scal \\ vadd : Vec × Vec ⟶ Vec \\ times : Scal × Vec ⟶ Vec \\ dist : Vec × Vec ⟶ Scal \\ norm : Vec ⟶ Scal \end{matrix} )  𝔙 := ( \begin{matrix}a : Scal \\ b : Scal \\ c : Scal \\ x : Vec \\ y : Vec \\ z : Vec \end{matrix} )

18.6.10 Example

𝔗thalg the theory of theory algebras is given by

𝔗thalg = ⟨𝔖thalg, 𝔙, Ax⟩

where *** CONTINUE HERE ***

18.6.11 Exercise

*** topology as theory ***

19 Interpretation of terms and formulas

19.1 Introduction

19.1.1 the goal

Supppose we have a signature 𝔖, an interpretation ℑ for 𝔖 and a suitable variable set 𝔙. Let us take the additive group of integers and the three variable set from the previous examples to illustrate the situation.

𝔖 = ( \begin{matrix}G \\ neu : G \\ op : G × G ⟶ G \\ inv : G ⟶ G \end{matrix} ) ℑ = [ \begin{matrix}G ↦ & ℤ \\ neu ↦ & 0 \\ op ↦ & ◯ 1 + ◯ 2 \\ inv ↦ & -◯ 1 \end{matrix} ]

𝔙 = ( x, y, z : G )

𝔖 and 𝔙 combined in the parameterized signature 𝔖 † 𝔙 provides us with terms and formulas

Term (𝔖 † 𝔙)  and  Form (𝔖 † 𝔙)

ℑ provides us with a structure, i.e. carriers and operators for the symbols in 𝔖. But it also defines a semantics for each term and each formula. In this section we show exactly how this works.

19.1.2 parameterized interpretations

To begin with, we combine the three ingredients 𝔖, 𝔙, ℑ into a single unit 𝔍. Since 𝔖 is implied in ℑ, we can reduce the three to two ingredients ℑ and 𝔙 and we call their combination 𝔍 = ℑ † 𝔙 a parameterized interpretation. We also have an intuitive and compact form, for our example that is

𝔍 = ℑ † 𝔙 = [ \begin{matrix}G & ↦ & ℤ \\ neu & ↦ & 0 \\ op & ↦ & ◯ 1 + ◯ 2 \\ inv & ↦ & -◯ 1 \\ & x, y, z : G \end{matrix} ]

In 𝔍, the variable x has type symbol G, and G maps to ℤ. Thus x now has a proper carrier class ℤ assigned to it. We write X^{𝔍} for this variable schema, i.e.

X^{𝔍} = [ \begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \\ z ↦ & ℤ \end{matrix} ]

19.1.3 first attempt to define te^{𝔍} and fe^{𝔍} So, given a parameterized interpretation 𝔍, how does it define a semantics for the terms and formulas? We approach the question with the common idea — we call it the evaluative principle — that the meaning of an expression should be a value: ( ; 𝅝 ; ) Terms stand for members of the given carrier classes.

E.g. op(neu, inv(neu)) means (0 + -0), which is 0 and a member of ℤ.

( ; 𝅝 ; ) Formulas stand for either false or true statements, i.e. they denote truth values. E.g. ∀x . ∃y . [op(x, y) = neu] is true in 𝔍 because for each x ∈ ℤ there is a y ∈ ℤ with x + y = 0.

Mathematically speaking, the evaluative principle understands an interpretation as two functions:

( ; 𝅝 ; ) te^{𝔍} : Term (𝔍) ⟶ C

the term evaluator induced by 𝔍, where C is the union of all the carriers

( ; 𝅝 ; ) fe^{𝔍} : Form (𝔍) ⟶ 𝔹

the formula evaluator, where 𝔹 = {0, 1} is the truth value class.

19.1.4 the need for a definition of ti^{𝔍} and fi^{𝔍}

But that doesn’t work in general, because not every expression is well–determined. For example, the formula [op(x, y) = z] is neither true nor false in 𝔍. It does become a proper statement or sentence, when we replace the free variables by concrete integers. This is commonly called a (variable) assignment. In our terminology an assignment is a member of ⊛X^{𝔍}, which is the class of all the records such as

[\begin{matrix}x ↦ & 5 \\ y ↦ & 7 \\ z ↦ & 9 \end{matrix}]  [\begin{matrix}x ↦ & -27 \\ z ↦ & 0 \end{matrix}]  [\begin{matrix}x ↦ & 1 \\ y ↦ & 1 \\ z ↦ & 1 \end{matrix}]

Thus the actual interpretation act is given by two more complex functions functions:

( ; 𝅝 ; ) ti^{𝔍} : Term (𝔍) ⟶ ⊛X^{𝔍} −−→ C

the term interpreter, where for each term θ, the interpretation ti^{𝔍}(θ) is a partial function, that takes assignments ω ∈ ⊛X^{𝔍} and returns a member of one of the carriers. But it might also fail and ti^{𝔍}(θ)(ω) might be undefined still, especially in case ω is too small and does not have a value for each of the free variables in θ.

( ; 𝅝 ; ) fi^{𝔍} : Form (𝔍) ⟶ ⊛X^{𝔍} −−→ 𝔹

the formula interpreter, where similarly fi^{𝔍}(φ)(ω) now is a well– defined truth value, at least for most practical cases.

In our actual case of 𝔍 we obtain, say

ti^{𝔍} (op(x, z)) ([\begin{matrix}x ↦ & 3 \\ y ↦ & 5 \\ z ↦ & 7 \end{matrix}]) = 3 + 7 = 10

18while

ti^{𝔍} (op(x, z)) ([\begin{matrix}x ↦ & 3 \\ y ↦ & 5 \end{matrix}]) is undefined

18 Note, that we can not define ti^{𝔍}(θ)(ω) by saying “first, replace the free variables in θ by the according values in ω, and second, evaluate new closed term”. The first step applied to this example would give us “op(3,7)”. But this thing is neither a term nor an integer value. Of course, we would understand what to do with it (namely evaluate it to 3 + 7 and thus 10 in the second step), but nevertheless, such a “two–step method” is not well–defined. ti^{𝔍} needs to be defined in an integrated recursive fashion and all text books use complex constructions such as our version of ti^{ℑ} in 20.4.2 to get this done. This restriction will vanish once we have the new theory–operational version of xf^{ℑ} available (see below). Then it is possible to interpret the components of a term first, and then do the operations in a second step.

And a formula interpretation is

fi^{𝔍} ([op(x, z) = y]) ([\begin{matrix}x ↦ & 3 \\ y ↦ & 5 \\ z ↦ & 2 \end{matrix}]) = 1 i.e. is true

because 3 + 2 = 5.

19.1.5 second attempt to define te^{𝔍} and fe^{𝔍}

Now that we have ti^{𝔍} and fi^{𝔍} available, we can even define the two more primitive evaluation functions, which must be reduced to closed expressions, each. ^{19} ( ; 𝅝 ; ) te^{𝔍} : Cterm (𝔍) ⟶ C is defined by te^{𝔍}(θ) := ti^{𝔍}(θ)(⟨⟩), for

each closed term θ, and ( ; 𝅝 ; ) fe^{𝔍} : Cform (𝔍) ⟶ 𝔹 is similarly defined by fe^{𝔍}(φ) :=

fi^{𝔍}(φ)(⟨⟩).

In fact, we really need ti^{𝔍} and fi^{𝔍} to define te^{𝔍} and fe^{𝔍} at all. And although the notation may differ a lot from author to author, this order of development is common in all classic texts, more or less explicitely.

19.1.6 the definition of xf^{𝔍} and xr^{𝔍}

Having achieved all this so far, it takes us just one more little step to our new theory–operational interpretation concept. In 20.6.1 we are going to define

( ; 𝅝 ; ) xf^{𝔍}(θ) : ⊗Y ⟶ C

the schematic function of a term θ, which is the restriction of ti^{𝔍}(θ) : ⊛X^{𝔍} −−→ C to the domain ⊗Y, where Y is X^{𝔍}, but only with the free variables of θ, i.e. Y := pr(X^{𝔍}, Fvar (θ)), and C ⊆ C is the actual codomain of θ

( ; 𝅝 ; ) xr^{𝔍}(φ) : Rel (Y)

the schematic relation of a formula φ, which is also just the restriction of fi^{𝔍}(φ) : ⊛X^{𝔍} −−→ 𝔹 to the domain ⊗Y, with Y := pr(X^{𝔍}, Fvar (φ)).

19.1.7 the power of xf^{𝔍} and xr^{𝔍}

Compare to the basic interpretation functions ti^{𝔍} and fi^{𝔍}, these new operators xf^{𝔍} and xr^{𝔍} are indeed merely restricted and slightly modified version. But their real potential and power lies in the fact that they together define a very natural semantics for predicate logic at all. They not only map expressions into mathematical entities. Instead, they form a homomorphism from an entire syntactical structure into a semantical structure in the sense that the syntactical constructions turn into corresponding operations of the semantical space. And this space, this “natural semantics” for the given terms and formulas of 𝔍 is the (extended) interpretation space ℑ𝔫𝔱𝔢𝔯^{+} (𝔍).

19.2 Parameterized interpretations

19.2.1 Definition

A parameterized interpretation or para–interpretation is given by

𝔍 = ⟨𝔖, 𝔄, car, op, 𝔙⟩

where

( ; 𝅝 ; ) 𝔦𝔫𝔱𝔢𝔯 (𝔍) := ⟨𝔖, 𝔄, car, op⟩ is an interpretation

( ; 𝅝 ; ) 𝔳𝔞𝔯𝔰 (𝔍) := 𝔙 is a suitable variable set for 𝔖

On the other hand, if ℑ = ⟨𝔖, 𝔄, car, op⟩ is an interpretation and 𝔙 is a variable set, we say that 𝔙 is (a) (suitable) (variable set) for ℑ, if 𝔙 is suitable for 𝔖. And in that case,

ℑ † 𝔙 := ⟨𝔖, 𝔄, car, op, 𝔙⟩

is a well–defined parameterized interpretation.

If 𝔍 = ℑ † 𝔙 is a parameterized interpretation, we let 𝔍 inherit all the notations from ℑ and 𝔙. More precisely,

𝔰𝔦𝔤𝔫 (𝔍) := 𝔰𝔦𝔤𝔫 (ℑ) 𝔰𝔱𝔯𝔲𝔠 (𝔍) := 𝔰𝔱𝔯𝔲𝔠 (ℑ)

Csy (𝔍) := Csy (ℑ) Osy (𝔍) := Osy (ℑ)

Car (𝔍) := Car (ℑ) Op (𝔍) := Op (ℑ)

car_{𝔍} := car_{ℑ} op_{𝔍} := op_{ℑ}

Var (𝔍) := Var (𝔙) csy_{𝔍} := csy_{𝔙}

Term (𝔍) := Term (𝔰𝔦𝔤𝔫 (ℑ) † 𝔙)
Form (𝔍) := Form (𝔰𝔦𝔤𝔫 (ℑ) † 𝔙)

If 𝔍 = ℑ † 𝔙 is a parameterized intepretation, where both the signature of ℑ and the variable set 𝔙 is finite, so that we have two compact representations

ℑ = [ \begin{matrix}S_{1} & ↦ & S_{1}^{ℑ} \\ ⋮ & & ⋮ \\ S_{k} & ↦ & S_{k}^{ℑ} \\ o_{1} & ↦ & o_{1}^{ℑ} \\ ⋮ & & ⋮ \\ o_{n} & ↦ & o_{n}^{ℑ} \end{matrix} ] and 𝔙 = ( v_{1} : V_{1} ; ⋮ ; v_{m} : V_{m} )

then we often use a compact representation for 𝔍 itself:

𝔍 = [ \begin{matrix}S_{1} & ↦ & S_{1}^{ℑ} \\ ⋮ & & ⋮ \\ S_{k} & ↦ & S_{k}^{ℑ} \\ o_{1} & ↦ & o_{1}^{ℑ} \\ ⋮ & & ⋮ \\ o_{n} & ↦ & o_{n}^{ℑ} \\ v_{1} & : & V_{1} \\ ⋮ & & ⋮ \\ v_{m} & : & V_{m} \end{matrix} ]

19.2.2 Example

Let us consider example 15.5.6 again, where the signature 𝔖org of ordered rings and its usual integer interpretation ℑ where given by

19 In fact, in the actual definition 20.5.1, te^{𝔍} : Cterm (𝔍) −−→ C and fe^{𝔍} : Cform (𝔍) −−→ 𝔹 will still be partial functions. But that is only due to our syntax, which is richer than the one in standard text books, because it also allows to express descriptions like [the x with φ]. And such a description often has not a value, but for very different reasons than the ones discussed here.

𝔖org = ( \begin{matrix}S \\ zero : S \\ unit : S \\ add : S × S ⟶ S \\ mult : S × S ⟶ S \\ neg : S ⟶ S \\ Smeq : S ↭ S \end{matrix} ) and ℑ = [ \begin{matrix}S ↦ & ℤ \\ zero ↦ & 0 \\ unit ↦ & 1 \\ add ↦ & ◯ 1 + ◯ 2 \\ mult ↦ & ◯ 1 · ◯ 2 \\ neg ↦ & -◯ 1 \\ Smeq ↦ & ◯ 1 ≤ ◯ 2 \end{matrix} ]

A suitable variable set for 𝔖org is 𝔙_{m} (19.3.3) with say m = 3

𝔙_{3} = ( x, y, z : S )

𝔙_{3} is suitable for ℑ, so we have a well–defined parameterized interpretation

𝔍 := ℑ † 𝔙_{3} = [ \begin{matrix}S & ↦ & ℤ \\ zero & ↦ & 0 \\ unit & ↦ & 1 \\ add & ↦ & ◯ 1 + ◯ 2 \\ mult & ↦ & ◯ 1 · ◯ 2 \\ neg & ↦ & -◯ 1 \\ Smeq & ↦ & ◯ 1 ≤ ◯ 2 \\ x, y, z : S \end{matrix} ]

19.2.3 Example

Let us take the interpretation from example 15.5.5 again,

ℑ := [ \begin{matrix}C ↦ & \{1, 2\} \\ D ↦ & \{1, 2, 3, 4\} \\ c ↦ & 1 \\ d ↦ & 4 \\ f ↦ & [\begin{matrix}\{1, 2\} ⟶ \{1, 2\} \\ x ↦ 3 − x \end{matrix}] \\ g ↦ & [\begin{matrix}\{1, 2\} × \{1, 2\} ⟶ \{1, 2, 3, 4\} \\ ⟨x, y⟩ ↦ x + y \end{matrix}] \\ R ↦ & [\begin{matrix}\{1, 2\} ↭ \{1, 2, 3, 4\} \\ ⟨x, y⟩ ↝ x ≤ y \end{matrix}] \\ S ↦ & [\begin{matrix}\{1, 2\} ↭ \{1, 2\} ↭ \{1, 2, 3, 4\} \\ ⟨x, y, z⟩ ↝ x + y = z \end{matrix}] \end{matrix} ]

A variable set is

𝔙 = ( \begin{matrix}x1, x2 : C \\ y1, y2 : D \end{matrix} )

𝔙 is suitable for ℑ, because

Osy (ℑ) ∩ Var (𝔙) = {c, d, , f, g, R, S} ∩ {x1, x2, y1, y2} = ∅

and

Csy (𝔙) = {C, D} ⊆ {C, D} = Csy (ℑ)

Therefore, ℑ † 𝔙 is a well–defined parameterized interpretation.

19.2.4 Example

Let us take our previous signature for collections again

             𝔖col = ( \begin{matrix}Item, Coll \\ emp : Coll \\ ins : Item × Coll ⟶ Coll \\ del : Item × Coll ⟶ Coll \\ Mem : Item ↭ Coll \\ Emp : Pty(Coll) \\ Incl : Coll ↭ Coll \end{matrix} )

and the variable set

                    𝔙col = ( \begin{matrix}a, b, c : Item \\ s, t, u : Coll \end{matrix} )

We know, that this is a suitable variable set for the given signature, so that

𝔔col = 𝔖col † 𝔙col

is a well–defined parameterized signature. We also fix an non–empty class I and take the tuple collection structure

𝔗𝔠𝔬𝔩 (I) := ⟨I, I^{∗}, emp, ins, del, Emp, Mem, Incl⟩

We also know, that

ℑTcol := [ \begin{matrix}Item ↦ & I \\ Coll ↦ & I^{∗} \\ emp ↦ & emp \\ ins ↦ & ins \\ del ↦ & del \\ Mem ↦ & Mem \\ Emp ↦ & Emp \\ Incl ↦ & Incl \end{matrix} ]

is a well–defined interpretation. We can now combine this with the variable set to a well–defined parameterized interpretation

𝔍Tcol := ℑTcol † 𝔙col = [ \begin{matrix}Item ↦ & I \\ Coll ↦ & I^{∗} \\ emp ↦ & emp \\ ins ↦ & ins \\ del ↦ & del \\ Mem ↦ & Mem \\ Emp ↦ & Emp \\ Incl ↦ & Incl \\ a, b, c : Item \\ s, t, u : Coll \end{matrix} ]

19.3 The schema and the assignment class of a parameterized interpretation

19.3.1 Definition

If 𝔍 is a parameterized interpretation, then

X^{𝔍} := [car_{𝔍}(csy_{𝔍}(v))|v ∈ Var (𝔍)]

is the (variable) schema of 𝔍

19.3.2 Remark

Given a parameterized interpretation 𝔍 = ℑ†𝔙. While the variable set 𝔙 assigns a carrier symbol to each variable, the variable schema X^{𝔍} now assigns a class to each variable, namely the carrier which is defined by ℑ for that given carrier symbol.

19.3.3 Remark

If 𝔍 is a parameterized interpretation with only finitely many variables Var (𝔍) = {v_{1}, …, v_{m}}, then X^{𝔍} is a finite schema with a compact form

X^{𝔍} = [ \begin{matrix}v_{1} & ↦ & car_{𝔍}(csy_{𝔍}(v_{1})) \\ ⋮ & & ⋮ \\ v_{m} & ↦ & car_{𝔍}(csy_{𝔍}(v_{m})) \end{matrix} ]

according to 9(2) and Thalg 9.1.5 . If 𝔍 has the compact form

𝔍 = [ \begin{matrix}S_{1} & ↦ & S_{1}^{ℑ} \\ ⋮ & & ⋮ \\ S_{k} & ↦ & S_{k}^{ℑ} \\ o_{1} & ↦ & o_{1}^{ℑ} \\ ⋮ & & ⋮ \\ o_{n} & ↦ & o_{n}^{ℑ} \\ v_{1} & : & V_{1} \\ ⋮ & & ⋮ \\ v_{m} & : & V_{m} \end{matrix} ]

then its schema is

X^{𝔍} = [ \begin{matrix}v_{1} & ↦ & V_{1}^{𝔍} \\ ⋮ & & ⋮ \\ v_{m} & ↦ & V_{m}^{𝔍} \end{matrix} ]

Note that X^{𝔍} is a indeed a schema and thus can be applied to its arguments. Using our notational conventions (fig. 9(1)(b)), we have e.g.

X_{v1}^{𝔍} = X^{𝔍}(v_{1}) = V_{1}^{𝔍}

19.3.4 Example

For the parameterized interpretation 𝔍 from example 20.2.2 we obtain

X^{𝔍} = [ \begin{matrix}x ↦ & car_{𝔍}(csy_{𝔍}(x)) \\ y ↦ & car_{𝔍}(csy_{𝔍}(y)) \\ z ↦ & car_{𝔍}(csy_{𝔍}(z)) \end{matrix} ] = [ \begin{matrix}x ↦ & car_{𝔍}(S) \\ y ↦ & car_{𝔍}(S) \\ z ↦ & car_{𝔍}(S) \end{matrix} ] = [ \begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \\ z ↦ & ℤ \end{matrix} ]

19.3.5 Example

Let us pick up the parameterized interpretation 𝔍 = ℑ † 𝔙 from example 20.2.3 again, where

𝔙 = ( \begin{matrix}x1, x2 : C \\ y1, y2 : D \end{matrix} )  then  X^{𝔍} = [ \begin{matrix}x1 ↦ & \{1, 2\} \\ x2 ↦ & \{1, 2\} \\ y1 ↦ & \{1, 2, 3, 4\} \\ y2 ↦ & \{1, 2, 3, 4\} \end{matrix} ]

19.3.6 Repetition

Recall (fig. 10(4)(c)), that for every schema X = [X_{i}|i ∈ I] the star product ⊛X is the class of all the records ξ = [ξ_{j}|j ∈ J] with J ⊆ I and ξ_{j} ∈ X_{j} for all j ∈ J.

19.3.7 Definition

If 𝔍 is a parameterized interpretation, then

⊛X^{𝔍}

is the (variable) assignment class of 𝔍.

19.3.8 Remark

For the parameterized interpretation 𝔍 from example 20.3.5 with variable schema

X^{𝔍} = [ \begin{matrix}x1 ↦ & \{1, 2\} \\ x2 ↦ & \{1, 2\} \\ y1 ↦ & \{1, 2, 3, 4\} \\ y2 ↦ & \{1, 2, 3, 4\} \end{matrix} ]

the assignment class ⊛X^{𝔍} comprises records such as the following four

[\begin{matrix}x1 ↦ & 2 \\ x2 ↦ & 1 \\ y1 ↦ & 3 \\ y2 ↦ & 1 \end{matrix}]  [\begin{matrix}x2 ↦ & 1 \\ y2 ↦ & 1 \end{matrix}]  [\begin{matrix}x1 ↦ & 1 \\ y1 ↦ & 1 \\ y2 ↦ & 1 \end{matrix}]  ⟨⟩

19.4 Interpretations of terms and formulas

19.4.1 Repetition

(1) Recall fig. ??(6)(f), that for any two records ξ = [ξ_{i}|i ∈ I] and υ = [υ_{j}|j ∈ J],

ξ√ υ := [ζ_{k}|k ∈ (I ∪ J)] where ζ_{k} := \begin{cases}υ_{k} & if k ∈ J \\ ξ_{k} & if k ∈ (I \ K) \end{cases}

is the update of ξ by υ. For example

[\begin{matrix}x ↦ & 5 \\ y ↦ & 7 \\ z ↦ & 9 \end{matrix}] √ [\begin{matrix}w ↦ & 2 \\ x ↦ & 8 \\ z ↦ & 12 \end{matrix}] = [\begin{matrix}w ↦ & 2 \\ x ↦ & 8 \\ y ↦ & 7 \\ z ↦ & 12 \end{matrix}]

Note, that for every two records ω and [ x ↦ n] holds

(ω√ [ x ↦ n])(x) = n

i.e. if ω′ := ω√ [ x ↦ n] is the update of ω by [ x ↦ n], then the value ω′(x) of ω′ at x is n.

(2) Be also aware of the difference between the syntactic formula constructors

¬◯ 1 [◯ 1 ∧ … ∧ ◯ n ] [◯ 1 ∨ … ∨ ◯ n ]

and the operators

-◯ 1  ◯ 1 ∧ ◯ 2  ◯ 1 ∨ ◯ 2  ⋀ ◯ 1  ⋁ ◯ 1

on the bit values 𝔹 = {0, 1}, where

⋀ B := \begin{cases}0 & if 0 ∈ B \\ 1 & else \end{cases} and ⋁ B := \begin{cases}1 & if 1 ∈ B \\ 0 & else \end{cases}

for each B ⊆ 𝔹, as usual.

19.4.2 Definition interpretation

For every parameterized interpretation 𝔍 we simultaneously define

(1) the term interpreter of 𝔍

ti^{𝔍} : Term (𝔍) ⟶ ⊛X^{J} −−→ ⋃ Car (𝔍)

(2) the formula interpreter of 𝔍

fi^{𝔍} : Form (𝔍) ⟶ ⊛X^{J} −−→ 𝔹

The precise definition of (1) and (2) is as follows:

(1) For every term θ ∈ Term (𝔍) and assignment ω = [ω_{w}|w ∈ W] ∈ ⊛X^{𝔍}

ti^{𝔍}(θ)(ω)

called the 𝔍–interpretation of θ and ω, is defined by structural induction on θ as follows:

(a) If θ = v ∈ Var (𝔍) is a variable then

ti^{𝔍}(θ)(ω) := ω_{v}

(b) If θ = c ∈ Osy (𝔍) is a constant then

ti^{𝔍}(θ)(ω) := op_{𝔍}(c)

(c) If θ = f(θ_{1}, …, θ_{n}) is an application, then

ti^{𝔍}(θ)(ω) := op_{𝔍}(f)(ti^{𝔍}(θ_{1})(ω), …, ti^{𝔍}(θ_{n})(ω))

(d) If θ = [if φ then θ_{1} else θ_{2}] is a conditional, then

ti^{𝔍}(θ)(ω) := \begin{cases}ti^{𝔍}(θ_{1})(ω) & if fi^{𝔍}(φ)(ω) = 1 \\ ti^{𝔍}(θ_{2})(ω) & if fi^{𝔍}(φ)(ω) = 0 \end{cases}

(e) If θ = [the v with φ], then

ti^{𝔍}(θ)(ω) := the x ∈ X_{v}^{𝔍} with fi^{𝔍}(φ)(ω√ [ v ↦ x]) = 1

(2) For every formula φ ∈ Form (𝔍) and assignment ω = [ω_{w}|w ∈ W] ∈ ⊛X^{𝔍}

fi^{𝔍}(φ)(ω)

called the 𝔍–interpretation of φ and ω, is define by structural induction on φ as follows:

(a) If φ = R(θ_{1}, …, θ_{n}) is a relation form, then

fi^{𝔍}(φ)(ω)

:= \begin{cases}1 & if ⟨ti^{𝔍}(θ_{1})(ω), …, ti^{𝔍}(θ_{n})(ω)⟩ ∈ op^{𝔍}(R) \\ 0 & if ⟨ti^{𝔍}(θ_{1})(ω), …, ti^{𝔍}(θ_{n})(ω)⟩ ∉ op^{𝔍}(R) \end{cases}

(b) If φ = [ θ_{1} = θ_{2} ] is an equation, then

fi^{𝔍}(φ)(ω) := \begin{cases}1 & if ti^{𝔍}(θ_{1})(ω) = ti^{𝔍}(θ_{2})(ω) \\ 0 & if ti^{𝔍}(θ_{1})(ω) ≠ ti^{𝔍}(θ_{2})(ω) \end{cases}

(c) If φ = ¬ψ is a negation, then

fi^{𝔍}(φ)(ω) := -fi^{𝔍}(ψ)(ω)

(d) If φ = [ φ_{1} ∧ … ∧ φ_{n} ] is a conjunction, then

fi^{𝔍}(φ)(ω) := fi^{𝔍}(φ_{1})(ω) ∧ … ∧ fi^{𝔍}(φ_{n})(ω)

(e) If φ = [ φ_{1} ∨ … ∨ φ_{n} ] is a disjunction, then

fi^{𝔍}(φ)(ω) := fi^{𝔍}(φ_{1})(ω) ∨ … ∨ fi^{𝔍}(φ_{n})(ω)

(f) If φ = ∃v . ψ is an existentialization, then

fi^{𝔍}(φ)(ω) := ⋁{fi^{𝔍}(ψ)(ω√ [ v ↦ x]) | x ∈ X_{v}^{𝔍}}

(g) If φ = ∀v . ψ is a generalization, then

fi^{𝔍}(φ)(ω) := ⋀{fi^{𝔍}(ψ)(ω√ [ v ↦ x]) | x ∈ X_{v}^{𝔍}}

19.4.3 Example

Let us consider the parameterized interpretation

𝔍 = [ \begin{matrix}G & ↦ & ℤ \\ neu & ↦ & 0 \\ op & ↦ & ◯ 1 + ◯ 2 \\ inv & ↦ & -◯ 1 \\ & x, y, z : G \end{matrix} ]

where the structure ⟨ℤ, 0, +, -⟩ of the integers with zero, addition and negation is assigned to the group signature 𝔊gr and the variable set 𝔙 of three variables. The according variable schema and assignment class of 𝔍 are

X^{𝔍} = [\begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \\ z ↦ & ℤ \end{matrix}] and ⊛ X^{𝔍} = ⊛ [\begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \\ z ↦ & ℤ \end{matrix}]

We now apply this case to the definition of ti^{𝔍} (see (1) below) and fi^{𝔍} (in (2)). And finally in (3), we look at example interpretations of conditional terms and descriptions.

(1) As defined in 20.4.2, the term interpreter has the general form

ti^{𝔍} : Term(𝔍) ⟶ ⊛X^{𝔍} −−→ ⋃ Car (𝔍)

In this example situation, we only have one carrier class ℤ, so ⋃ Car (𝔍) = ⋃ {ℤ} = ℤ and

ti^{𝔍} : Term(𝔍) ⟶ ⊛X^{𝔍} −−→ ℤ

So if θ is a term, its interpretation ti^{𝔍}(θ) : ⊛X^{𝔍} −−→ ℤ is a partial function, that returns an integer ti^{𝔍}(θ)(ω) ∈ ℤ for each variable assignment ω ∈ ⊛X^{𝔍}. However, ti^{𝔍}(θ) is only a partial function and ti^{𝔍}(θ)(ω) might not be defined. We will see that this happens only, if ω doesn’t assign a value to each free variable in θ, or if θ is an ambiguous description “[the v with ψ]”.

(a) If θ = y is a variable, then

ti^{𝔍}(θ)(ω) = ω(y) for all ω ∈ ⊛X^{𝔍}

In other words,

ti^{𝔍}(y) = [ \begin{matrix}⊛X^{𝔍} −−→ ℤ \\ ω ↦ ω(y) \end{matrix} ]

Note, that ti^{𝔍}(y)(ω) is well–defined iff y ∈ dom (ω). For example

(i) If ω = [\begin{matrix}x ↦ & 27 \\ y ↦ & 7 \end{matrix}] then ti^{𝔍}(y)(ω) = ω(y) = 7

(ii) If ω = [\begin{matrix}x ↦ & 27 \\ z ↦ & 23 \end{matrix}] then ti^{𝔍}(y)(ω) is undefined, because ω(y)

is undefined. (iii) If ω = ⟨⟩ is the empty assignment, then ti^{𝔍}(y)(ω) is un-

defined as well.

(b) If θ = neu is a constant, then

ti^{𝔍}(neu)(ω) = op_{𝔍}(neu) = 0 for all ω ∈ ⊛X^{𝔍}

In other words,

ti^{𝔍}(neu) = [ \begin{matrix}⊛X^{𝔍} −−→ ℤ \\ ω ↦ 0 \end{matrix} ] = [ \begin{matrix}⊛X^{𝔍} ⟶ ℤ \\ ω ↦ 0 \end{matrix} ]

The term interpretation ti^{𝔍}(neu) is a constant (total) function, that returns 0 for every assignment ω. For example

(i) If ω = [\begin{matrix}x ↦ & 27 \\ y ↦ & 7 \end{matrix}] then ti^{𝔍}(neu) (ω) = 0.

(ii) If ω = ⟨⟩ is the empty assignment, then ti^{𝔍}(neu)(ω) = 0, as well.

(c) θ = op(op(x, y), x) then

ti^{𝔍}(θ)(ω) = (ω(x) + ω(y)) + ω(x) for all ω ∈ ⊛X^{𝔍}

In other words,

ti^{𝔍}(θ) = [ \begin{matrix}⊛X^{𝔍} −−→ ℤ \\ ω ↦ ((ω(x) + ω(y)) + ω(x) \end{matrix} ]

Note, that ti^{𝔍}(θ)(ω) is well–defined iff all free variables of θ, i.e. if x and y are both in the domain of ω. For example:

(i) If ω = [\begin{matrix}x ↦ & 27 \\ y ↦ & 7 \end{matrix}] then ti^{𝔍}(θ) (ω) = (27 + 7) + 27 = 61.

(ii) If ω = [ y ↦ 7 ] then ti^{𝔍}(θ) (ω) is undefined, because ω(x)

is undefined. (iii) And if ω = ⟨⟩ then ti^{𝔍}(θ)(ω) is obviously undefined as

well.

(d) If θ = op(op(neu, neu), neu) is a term without (free) variables, the situation is similar to (b), because

ti^{𝔍}(θ)(ω) = (0 + 0) + 0 = 0 for all ω ∈ ⊛X^{𝔍}

and

ti^{𝔍}(θ) = [ \begin{matrix}⊛X^{𝔍} ⟶ ℤ \\ ω ↦ 0 \end{matrix} ]

is even the same constant (total) function.

(2) The formula interpreter defined in 20.4.2 has the form

fi^{𝔍} : Form (𝔍) ⟶ ⊛X^{𝔍} −−→ 𝔹

If φ is a formula, then fi^{𝔍}(φ) : ⊛X^{𝔍} −−→ 𝔹 is a partial function that takes variable assignments ω ∈ ⊛X^{𝔍} and returns a bit value fi^{𝔍}(φ)(ω) ∈ 𝔹, at least if ω is in the defined domain of fi^{𝔍}(φ). Our given signature here has no relation symbols, there are no relation forms, i.e. no formulas “R(θ_{1}, …, θ_{n})”. The most primitive formula we can built from 𝔍 is an equation:

(a) If φ is the equation [x = y] and ω ∈ ⊛X^{𝔍}, then

fi^{𝔍}(φ)(ω) = \begin{cases}1 & if ω(x) = ω(y) \\ 0 & else \end{cases}

For example,

(i) If ω = [\begin{matrix}x ↦ & 5 \\ y ↦ & 5 \\ z ↦ & 3 \end{matrix}] then ω(x) = 5 = ω(y) and so fi^{𝔍}(φ)(ω) =

1.

(ii) If ω = [\begin{matrix}x ↦ & 3 \\ y ↦ & 4 \\ z ↦ & 5 \end{matrix}] then ω(x) = 3 ≠ 4 = ω(y) and so

fi^{𝔍}(φ)(ω) = 0.

(iii) If ω = [\begin{matrix}x ↦ & 3 \\ z ↦ & 5 \end{matrix}] then ω(y) is undefined, so that fi^{𝔍}(φ)(ω)

is undefined.

(b) If φ = [x = inv(x)] then

fi^{𝔍}(φ)(ω) = \begin{cases}1 & if ω(x) = -ω(x) \\ 0 & else \end{cases}

For example,

(i) If ω = [\begin{matrix}x ↦ & 5 \\ y ↦ & 5 \\ z ↦ & 3 \end{matrix}] then ω(x) = 5 ≠ -5 = -ω(x) and so

fi^{𝔍}(φ)(ω) = 0.

(ii) If ω = [\begin{matrix}x ↦ & 0 \\ y ↦ & 5 \\ z ↦ & 3 \end{matrix}] then ω(x) = 0 = -0 = -ω(x) and so

fi^{𝔍}(φ)(ω) = 1.

(iii) If ω = [\begin{matrix}y ↦ & 5 \\ z ↦ & 3 \end{matrix}] then fi^{𝔍}(φ)(ω) is undefined.

The overall interpretation of φ = [x = inv(x)] is thus

fi^{𝔍}(φ) = [ \begin{matrix}⊛X^{𝔍} −−→ 𝔹 \\ ω ↦ \begin{cases}1 & if ω(x) = 0 \\ 0 & if ω(x) ≠ 0 \end{cases} \end{matrix} ]

(c) Now, let us keep the φ from (b) and let us put φ′ := ∃x . φ, i.e.

φ′ = ∃x . [x = inv(x)]

Then

fi^{𝔍}(φ′)(ω) = ⋁{fi^{𝔍}(φ)(ω√ [ x ↦ n] | n ∈ ℤ}

For every ω ∈ ⊛X^{𝔍} and ω′ := ω√ [ x ↦ n] holds ω′(x) = n and so

fi^{𝔍}(φ)(ω′) = \begin{cases}1 & if n = -n i.e. if n = 0 \\ 0 & if n ≠ -n i.e. if n ≠ 0 \end{cases}

Therefore, the interpretation of φ′ and ω itself is

fi^{𝔍}(φ′)(ω) = ⋁ {0, 1} = 1

and fi^{𝔍}(φ′) alltogether is a constant and total function

fi^{𝔍} (∃x . [x = inv(x)]) = [ \begin{matrix}⊛X^{𝔍} ⟶ 𝔹 \\ ω ↦ 1 \end{matrix} ]

(d) Again, let us take the φ from (b) and this time we built the generalization

φ′′ := ∀x . φ = ∀x . [x = inv(x)]

This time, if ω ∈ ⊛X^{𝔍}, then

fi^{𝔍}(φ′′)(ω) = ⋀{fi^{𝔍}(φ)(ω√ [ x ↦ n] | n ∈ ℤ}
= ⋀ {0, 1}
= 0

and this time,

fi^{𝔍} (∀x . [x = inv(x)]) = [ \begin{matrix}⊛X^{𝔍} ⟶ 𝔹 \\ ω ↦ 0 \end{matrix} ]

(e) Let φ be the formula [[x = y] → [y = x]]. The subjunction [◯ 1 → ◯ 2 ] was introduced in 19.4.4 as an abbreviation for [¬◯ 1 ∨ ◯ 2 ], so φ is in fact the formula [¬[x = y] ∨ [y = x]]. For each assignment ω ∈ ⊛X^{𝔍} we have

fi^{𝔍}(φ)(ω) = -fi^{𝔍}([x = y])(ω) ∨ fi^{𝔍}([y = x])(ω)
= \begin{cases}1 & if ω(x) ≠ ω(y) or ω(y) = ω(x) \\ 0 & if ω(x) = ω(y) and ω(y) ≠ ω(x) \end{cases}
= 1

So fi^{𝔍}(φ)(ω) is always 1, but only if x and y are both arguments in ω. Otherwise fi^{𝔍}(φ)(ω) is undefined. In other words,

fi^{𝔍}(φ) = [ \begin{matrix}⊛X^{𝔍} −−→ 𝔹 \\ ω ↦ \begin{cases}1 & if x, y ∈ dom (ω) \\ undefined & else \end{cases} \end{matrix} ]

(f) We now consider the formula ∀x.∀y.φ, where φ is the previous formula from (e) , i.e.

            φ′ = ∀x . ∀y . [[x = y] → [y = x]]

This time, taking an arbitrary assignment ω ∈ ⊛X^{𝔍} gives us

fi^{𝔍}(φ′)(ω)
= ⋀ { ⋀{fi^{𝔍}(φ)(ω√ [ y ↦ n]√ [ x ↦ m]) | n ∈ ℤ} m ∈ ℤ }
= ⋀ \{ fi^{𝔍}(φ) (ω√ [\begin{matrix}x ↦ & m \\ y ↦ & n \end{matrix}]) m, n ∈ ℕ \}
= ⋀ {1}
= 1

Different to fi^{𝔍}(φ)(ω), which was only defined in case x, y ∈ dom (ω), this fi^{𝔍}(φ′)(ω) is defined for every assignment ω ∈ ⊛X^{𝔍}. Because even if x or y are not defined in ω, the updated

assignment ω′ := ω√ [\begin{matrix}x ↦ & m \\ y ↦ & n \end{matrix}] does have x, y ∈ dom (ω′)

and so fi^{𝔍}(φ)(ω′) is always well–defined and 1. And that alltogether makes fi^{𝔍}(φ′)(ω) = ⋀ {1} = 1 for all assignments ω. In other words,

fi^{𝔍}(φ′) = [ \begin{matrix}⊛X^{𝔍} ⟶ 𝔹 \\ ω ↦ 1 \end{matrix} ]

which is a well–defined constant total function (with “⟶” instead of “−−→”).

(3) Finally, let us investigate the 𝔍–interpretation of some conditionals [if φ then θ_{1} else θ_{2}] and descriptions [the v with φ]. In most classic text books on predicate logic, these two kinds of terms do not exists at all, because they complicate the whole design a lot. But on a closer look, they are often introduced again through a back door. One problem with the description in particular is the danger of an undefined value ti^{𝔍}([the v with φ])(ω), even if ω contains all the occuring free variables.

(a) According to definition 20.4.2(1)(d), if θ = [if φ then θ_{1} else θ_{2}] is a conditional, then

ti^{𝔍}(θ)(ω) := \begin{cases}ti^{𝔍}(θ_{1})(ω) & if fi^{𝔍}(φ)(ω) = 1 \\ ti^{𝔍}(θ_{2})(ω) & if fi^{𝔍}(φ)(ω) = 0 \end{cases}

For example, let θ ∈ Term (𝔍) be the conditional expression

[if [x = neu] then neu else inv(x)].

(i) If ω = [\begin{matrix}x ↦ & -5 \\ z ↦ & 27 \end{matrix}] then

ti^{𝔍}(θ)(ω) = \begin{cases}ti^{𝔍}(neu)(ω) & if fi^{𝔍}([x = y])(ω) = 1 \\ ti^{𝔍}(inv(x))(ω) & if fi^{𝔍}([x = y])(ω) = 0 \end{cases}

Now fi^{𝔍}([x = y])(ω) = 0, because -5 ≠ 27, and so

ti^{𝔍}(θ)(ω) = ti^{𝔍}(inv(x))(ω) = -(-5) = 5

(ii) If ω = ⟨⟩ is the empty assignment, then fi^{𝔍}([x = y])(ω) is undefined and so is ti^{𝔍}(θ)(ω).

The overall function generated by this term θ is

ti^{𝔍}(θ) = [ \begin{matrix}⊛X^{𝔍} −−→ ℤ \\ ω ↦ \begin{cases}0 & if ω(x) = 0 \\ -ω(x) & if ω(x) ≠ 0 \\ undefined & if x ∉ dom (ω) \end{cases} \end{matrix} ]

Obviously, this example [if [x = neu] then neu else inv(x)] is

not a very inspiring example of a conditional term, because in the context of our integer structure this does the same as the term inv(x) on its own. We don’t really need a case distinction to get this result. In other words, we have

ti^{𝔍}(inv(x)) = [ \begin{matrix}⊛X^{𝔍} −−→ ℤ \\ ω ↦ -ω(x) \end{matrix} ]

which is actually the same partial function as ti^{𝔍}(θ).

(b) If θ is the description [the x with [x = inv(x)]] then, for each assignment ω ∈ ⊛X^{J},

ti^{𝔍}(θ)(ω)
= the n ∈ ℤ with fi^{𝔍}([x = inv(x)]) (ω√ [ x ↦ n])
= the n ∈ ℤ with (ω√ [ x ↦ n])(x) = -((ω√ [ x ↦ n])(x))
= the n ∈ ℤ with n = -n
= 0

since there is exactly one integer 0 that is equal to its negation.

(c) If θ is the description [the x with ¬[x = neu]], then

ti^{𝔍}(θ)(ω)

= (the n ∈ ℤ with fi^{𝔍}(¬[x = neu])(ω√ [ x ↦ n]) = 1)

Now

fi^{𝔍}(¬[x = neu])(ω√ [ x ↦ n]) = 1
⇔ fi^{𝔍}([x = neu])(ω√ [ x ↦ n]) = 0
⇔ (ω√ [ x ↦ n])(x) ≠ 0
⇔ n ≠ 0

which holds for all assignments ω, but if and only if n is not zero. But since there are infinitely many non–zero integers n, and not just exactly one, this whole description is undetermined and

ti^{𝔍}(ω) is undefined, for all ω ∈ ⊛X^{𝔍}

The interpretation function itself is thus the everywhere undefined function

ti^{𝔍} ([the x with ¬[x = neu]]) = [ \begin{matrix}⊛X^{𝔍} −−→ ℤ \\ ω ↦ undefined \end{matrix} ]

19.5 The evaluative interpretation

19.5.1 Definition evaluative interpretation

Let 𝔍 be a parameterized interpretation.

(1) The term evaluator of 𝔍 is defined as

te^{𝔍} := [ \begin{matrix}Cterm & (𝔍) & −−→ & ⋃ & Car & (𝔍) \\ θ ↦ ti^{𝔍}(θ)(⟨⟩) \end{matrix} ]

te^{𝔍}(θ) is called the value of θ in 𝔍.

(2) The formula evaluator of 𝔍 is defined as

fe^{𝔍} := [ \begin{matrix}Cform (𝔍) −−→ 𝔹 \\ φ ↦ fi^{𝔍}(φ)(⟨⟩) \end{matrix} ]

fe^{𝔍}(φ) is the truth value of φ in 𝔍. And

( ; 𝅗𝅥 ; ) φ is true in 𝔍 or that φ holds in 𝔍, if fe^{𝔍}(φ) = 1

( ; 𝅗𝅥 ; ) φ is false in 𝔍 or does not hold in 𝔍, if fe^{𝔍}(φ) = 0.

19.5.2 Example

Let us consider the situation of example 20.4.3 again with the additive group of integers in the parameterized interpretation

𝔍 = [ \begin{matrix}G & ↦ & ℤ \\ neu & ↦ & 0 \\ op & ↦ & ◯ 1 + ◯ 2 \\ inv & ↦ & -◯ 1 \\ & x, y, z : G \end{matrix} ]

(1) The term evaluator of 𝔍 is te^{𝔍} : Cterm (𝔍) −−→ ⋃ Car (𝔍). There is only one carrier and ⋃ Car (𝔍) = ⋃ {ℤ} = ℤ, so that te^{𝔍} : Cterm (𝔍) −−→ ℤ. Let us establish the integer value of the closed terms that occurred in example 20.4.3.

(a) The constant neu from 20.4.3(1)(b) is a closed term and

te^{𝔍}(neu) = ti^{𝔍}(neu)(⟨⟩)
= [\begin{matrix}⊛X^{𝔍} −−→ ℤ \\ ω ↦ 0 \end{matrix}](⟨⟩)

= 0

(b) For the application in 20.4.3(1)(d) the evaluation returns

te^{𝔍}(op(op(neu, neu), neu))
= ti^{𝔍}(op(op(neu, neu), neu))(⟨⟩)

= [\begin{matrix}⊛X^{𝔍} ⟶ ℤ \\ ω ↦ (0 + 0) + 0 \end{matrix}](⟨⟩)

= 0

(c) For the description in 20.4.3(3)(b) we obtain

te^{𝔍}([the x with x = inv(x)])
= ti^{𝔍}([the x with x = inv(x)])(⟨⟩)

= [\begin{matrix}⊛X^{𝔍} ⟶ ℤ \\ ω ↦ 0 \end{matrix}](⟨⟩)

= 0

(d) And for the description in 20.5.2(3)(c) ,

te^{𝔍}([the x with ¬[x = neu]]) is undefined

(2) The formula evaluator of 𝔍 is fe^{𝔍} : Cform (𝔍) −−→ 𝔹. (a) The closed formula φ′ from 20.4.3(2)(c)

φ′ = ∃x . [x = inv(x)]

has a well–defined truth value in 𝔍

fe^{𝔍}(φ′) = fi^{𝔍}(φ′)(⟨⟩)
= [\begin{matrix}X^{𝔍} ⟶ 𝔹 \\ ω ↦ 1 \end{matrix}](⟨⟩)

= 1

(b) On the other hand, for the closed formula example φ′′ from 20.5.2(2)(d)

φ′′ = ∀x . [x = inv(x)]

the truth value in 𝔍 is

fe^{𝔍}(φ′′) = fi^{𝔍}(φ′′)(⟨⟩)
= [\begin{matrix}X^{𝔍} ⟶ 𝔹 \\ ω ↦ 0 \end{matrix}](⟨⟩)

= 0

(c) And for the closed formula example from 20.4.3(2)(f)we obtain

fe^{𝔍} (∀x . ∀y . [[x = y] → [y = x]]) = 1

19.5.3 Exercise

All the example closed terms in the previous example 20.5.2 evaluated to 0, if they evaluated at all. Is there is closed term θ ∈ Cterm (𝔍) with te^{𝔍}(θ) = n ∈ ℤ and n ≠ 0?

19.6 The schema–operational interpretation

19.6.1 Definition schema–operational interpretation

Let 𝔍 be a parameterized signature.

(1) For every θ ∈ Term (𝔍) we define

x^{𝔍}(θ) := [X_{v}^{𝔍}|v ∈ Fvar (θ)]

the schema of θ (in 𝔍)

dom^{𝔍}(θ) := ⊗x^{𝔍}(θ)

the domain of θ (in 𝔍)

cod^{𝔍}(θ) := car^{𝔍}(cosy_{𝔍}(θ))

the codomain of θ (in 𝔍)

xf^{𝔍}(θ) := [ \begin{matrix}dom^{𝔍}(θ) ⟶ cod^{𝔍}(θ) \\ ω ↦ ti^{𝔍}(θ)(ω) \end{matrix} ]

the schematic function of θ (in 𝔍)

(2) For every φ ∈ Form (𝔍) we define

x^{𝔍}(φ) := [X_{v}^{𝔍}|v ∈ Fvar (φ)]

the schema of φ (in 𝔍)

dom^{𝔍}(φ) := ⊗x^{𝔍}(φ)

the domain of φ (in 𝔍)

xr^{𝔍}(φ) := [ \begin{matrix}x^{𝔍}(φ) \\ ω ↝ fi^{𝔍}(φ)(ω) \end{matrix} ]

the schematic relation of φ (in 𝔍)

19.6.2 Remark

Note that in definition 20.6.1,

(1) xf^{𝔍}(θ) is well–defined iff ti^{𝔍}(θ)(ω) is defined for each ω ∈ dom^{𝔍}(θ)

(2) xr^{𝔍}(φ) is well–defined iff fi^{𝔍}(φ)(ω) is defined for each ω ∈ dom^{𝔍}(φ)

There are cases, in which xf^{𝔍}(θ) or xr^{𝔍}(φ) do not exist at all (see e.g. 20.6.3(3)(c)). This is different to ti^{𝔍}(θ) and fi^{𝔍}(φ), that are always well–defined as such, but they are partial functions, which might not be defined for some of their arguments. We could have defined

xf^{𝔍}(θ) := [ \begin{matrix}dom^{𝔍}(θ) −−→ cod^{𝔍}(θ) \\ ω ↦ ti^{𝔍}(θ)(ω) \end{matrix} ]

i.e. xf^{𝔍}(θ) could be a partial function, too. But we defined it with a “⟶” instead of the “−−→” and thus forced it to be a total function.

19.6.3 Example

Let us take our standard example parameterized interpretation

𝔍 = [ \begin{matrix}G & ↦ & ℤ \\ neu & ↦ & 0 \\ op & ↦ & ◯ 1 + ◯ 2 \\ inv & ↦ & -◯ 1 \\ & x, y, z : G \end{matrix} ] with schema X^{𝔍} = [\begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \\ z ↦ & ℤ \end{matrix}]

again and let us apply the new definition to the example terms and formulas from example 20.4.3. (1)(a) If θ = y is a variable then

x^{𝔍}(θ) = [ y ↦ ℤ]
dom^{𝔍}(θ) = ⊗[ y ↦ ℤ]
cod^{𝔍}(θ) = ℤ
xf^{𝔍}(θ) = [\begin{matrix}⊗[ y ↦ ℤ] ⟶ ℤ \\ ω ↦ ω(y) \end{matrix}]

Example arguments of this schematic function xf^{𝔍}(y) are the singular records ω = [ y ↦ n] with n ∈ ℤ, the result of the application is then xf^{𝔍}(y)(ω) = n. You may have noticed, that this schematic function xf^{𝔍}(y) is precisely the prametrizatation y_{[X𝔍]}^{•} of y on X^{𝔍}. This is true in

general for variables, as we will see later on in ??main theorem?? . (1)(b) If θ = neu is a constant then

x^{𝔍}(θ) = ⟨⟩
dom^{𝔍}(θ) = {⟨⟩}
cod^{𝔍}(θ) = ℤ
xf^{𝔍}(θ) = [\begin{matrix}\{⟨⟩\} ⟶ ℤ \\ ⟨⟩ ↦ 0 \end{matrix}]

This function is a nullary function or constant, namely the constant 0 again. Again, this xf^{𝔍}(neu) is the same as the parametrization 0^{•} of 0 = op_{𝔍}(neu).

(1)(c) If θ = op(op(x, y), z) then

x^{𝔍}(θ) = X^{𝔍}
dom^{𝔍}(θ) = ⊗X^{𝔍}
cod^{𝔍}(θ) = ℤ
xf^{𝔍}(θ) = [\begin{matrix}⊗X^{𝔍} ⟶ ℤ \\ ξ ↦ ((ξx + ξy) + ξz \end{matrix}]

For example,

xf^{𝔍}(θ) ([\begin{matrix}x ↦ & 2 \\ y ↦ & 4 \\ z ↦ & 7 \end{matrix}]) = 2 + 4 + 7 = 13

(1)(d) If θ = op(op(neu, neu), neu) then

x^{𝔍}(θ) = ⟨⟩
dom^{𝔍}(θ) = {⟨⟩}
cod^{𝔍}(θ) = ℤ
xf^{𝔍}(θ) = [\begin{matrix}\{⟨⟩\} ⟶ ℤ \\ ⟨⟩ ↦ 0 \end{matrix}]

and that schematic function is the same constant as in (1)(b). (2)(a) If φ = [x = y] then

x^{𝔍}(θ) = [\begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \end{matrix}] dom^{𝔍}(θ) = ⊗ [\begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \end{matrix}]

xr^{𝔍}(θ) = [\begin{matrix}[ & \begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \end{matrix} & ] \\ ξ ↝ ξx = ξy \end{matrix}]

Arguments of this schematic relation are all the records

ξ = [\begin{matrix}x ↦ & n \\ y ↦ & m \end{matrix}] with n, m ∈ ℤ

For example

[\begin{matrix}x ↦ & -7 \\ y ↦ & -7 \end{matrix}] ∈ xr^{𝔍}(θ)  and  [\begin{matrix}x ↦ & 5 \\ y ↦ & -7 \end{matrix}] ∉ xr^{𝔍}(θ)

(2)(b) If φ = [x = inv(x)] then

x^{𝔍}(θ) = [ x ↦ ℤ] dom^{𝔍}(θ) = ⊗[ x ↦ ℤ]

xr^{𝔍}(θ) = [\begin{matrix}[ x ↦ ℤ] \\ ξ ↝ ξx = 0 \end{matrix}]

Arguments of this schematic relation are the singular records ξ = [ x ↦ n] with n ∈ ℤ and e.g.

[ x ↦ 124 ] ∉ xr^{𝔍}(θ)  and  [ x ↦ 0 ] ∈ xr^{𝔍}(θ)

(2)(c) If φ′ = ∃x . [x = inv(x)] then

x^{𝔍}(φ′) = ⟨⟩ dom^{𝔍}(φ′) = {⟨⟩}

xr^{𝔍}(φ′) = [\begin{matrix}⟨⟩ \\ ⟨⟩ ↝ true \end{matrix}] = ⊤

φ′ has not free variables, its schema x^{𝔍}(φ′) is empty and there are just two relations with and empty schema, namely ⊥ and ⊤ (fig. 13(3)). For φ′, this schematic relation xr^{𝔍}(φ′) is ⊤. Note, that φ′ is true in 𝔍 and we are going to proof in ???? what we may already suspect by now, namely

fe^{𝔍}(φ) = 1 iff xr^{𝔍}(φ) = ⊤
fe^{𝔍}(φ) = 0 iff xr^{𝔍}(φ) = ⊥

for all closed formulas φ. (2)(d) If φ′′ = ∀x . [x = inv(x)] then

x^{𝔍}(φ′′) = ⟨⟩ dom^{𝔍}(φ′′) = {⟨⟩}

xr^{𝔍}(φ′′) = [\begin{matrix}⟨⟩ \\ ⟨⟩ ↝ false \end{matrix}] = ⊥

This confirms the remarks we just made in (2)(c). The schematic function of φ′′ is ⊥ and φ′ doesn’t hold in 𝔍.

(2)(e) If φ = [[x = y] → [y = x]] then

x^{𝔍}(φ) = [\begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \end{matrix}] dom^{𝔍}(φ) = ⊗ [\begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \end{matrix}]

xr^{𝔍}(φ) = [\begin{matrix}[ & \begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \end{matrix} & ] \\ ξ ↝ true \end{matrix}]

The schematic relation of this φ is a full relation (fig. 13(7)(b)), i.e. a relation where each argument is a member. This phenomenon also occurs in general. A formula like this φ which is valid in the sense that adding a ∀ for each of its free variables (the result is the next formula in (2)(f)) turns it into a true closed formula in 𝔍, always has a full schematic relation.

(2)(f) If φ = ∀x . ∀y . [[x = y] → [y = x]] then

x^{𝔍}(φ) = ⟨⟩ dom^{𝔍}(φ) = {⟨⟩}

xr^{𝔍}(φ) = [\begin{matrix}⟨⟩ \\ ⟨⟩ ↝ true \end{matrix}] = ⊤

Again, φ holds in 𝔍 and its schematic relation is the empty– schema but otherwise full relation ⊤.

(3)(a) If θ = [if [x = neu] then neu else inv(x)] then

x^{𝔍}(θ) = [ x ↦ ℤ]
dom^{𝔍}(θ) = ⊗[ x ↦ ℤ]
cod^{𝔍}(θ) = ℤ

xf^{𝔍}(θ) = [\begin{matrix}[ x ↦ ℤ] \\ ξ ↦ \begin{cases}0 & if ξx = 0 \\ -ξx & else \end{cases} \end{matrix} ] = [\begin{matrix}[ x ↦ ℤ] \\ ξ ↦ -ξx \end{matrix}]

For example, xf^{𝔍}(θ)([ x ↦ 24 ]) = -24. In 20.4.3(2)(3)(a) we mentioned, that this example conditional expression is a little odd because it does the same as the subterm inv(x) on its own. We can confirm that in the schematic– functional sense, because

xf^{𝔍}(inv(x)) = [\begin{matrix}[ x ↦ ℤ] \\ ξ ↦ -ξx \end{matrix}] = xf^{𝔍}(θ)

(3)(b) If θ = [the x with [x = inv(x)]] then

x^{𝔍}(θ) = ⟨⟩
dom^{𝔍}(θ) = {⟨⟩}
cod^{𝔍}(θ) = ℤ
xf^{𝔍}(θ) = [\begin{matrix}⟨⟩ ⟶ ℤ \\ ⟨⟩ ↦ the n ∈ ℤ with n = -n \end{matrix}] = [\begin{matrix}⟨⟩ ⟶ ℤ \\ ⟨⟩ ↦ 0 \end{matrix}]

This schematic function is the constant integer 0 and that is what the term evaluation te^{𝔍}(θ) returned, too (20.5.2(1)(c)).

(3)(c) If θ = [the x with ¬[x = inv(x)]] then

x^{𝔍}(θ) = ⟨⟩  dom^{𝔍}(θ) = {⟨⟩}  cod^{𝔍}(θ) = ℤ

But xf^{𝔍}(θ) is undefined, because n ≠ -n is true for all non– zero integers n and so the description the n ∈ ℤ with n ≠ -n is undefined, which makes xf^{𝔍}(θ) undefined.

19.7 Exercises

19.7.1 Exercise

*** CONTINUE HERE ***

𝔖col = ( \begin{matrix}Item, Coll \\ emp : Coll \\ ins : Item × Coll ⟶ Coll \\ del : Item × Coll ⟶ Coll \\ Mem : Item ↭ Coll \\ Emp : Pty(Coll) \\ Incl : Coll ↭ Coll \end{matrix} )

*** CONTINUE HERE ***

Let us consider the parameterized interpretation 𝔍 from example 20.2.4, with tuples on a given nonempty I made the structure for dealing with collections of items from I. This 𝔍 and its variable schema X^{𝔍} were given by

𝔍 = [ \begin{matrix}Item ↦ & I \\ Coll ↦ & I^{∗} \\ emp ↦ & emp \\ ins ↦ & ins \\ del ↦ & del \\ Mem ↦ & Mem \\ Emp ↦ & Emp \\ Incl ↦ & Incl \\ a, b, c : Item \\ s, t, u : Coll \end{matrix} ]  and  X^{ℑ} = [\begin{matrix}a ↦ & I \\ b ↦ & I \\ c ↦ & I \\ s ↦ & I^{∗} \\ t ↦ & I^{∗} \\ u ↦ & I^{∗} \end{matrix} ]

*** CONTINUE HERE ***For the solution see ??. *** ***

We choose some non–empty class I and built two models for 𝔗col, both with I as carrier for the carrier symbol Item.

(1) In the first model for 𝔗col, collections are finite subsets of I. We define

ℑfin(I) := [ \begin{matrix}Item ↦ & I \\ Coll ↦ & Fin (I) \\ ins ↦ & ◯ 1 ∪ \{◯ 2 \} \\ del ↦ & ◯ 1 \ \{◯ 2 \} \\ Mem ↦ & ◯ 1 ∈ ◯ 2 \\ Emp ↦ & (◯ 1 = ∅) \\ Incl ↦ & ◯ 1 ⊆ ◯ 2 \end{matrix} ]

where

*** explain the operators ***

(2) In our second model, collections are tuples on I. Recall 15.3.2, that the tuple collection structure of I was given by

𝔗𝔠𝔬𝔩 (I) := ⟨I, I^{∗}, emp, ins, del, Emp, Mem, Incl⟩

This structure is obviously a model for 𝔗col. We define

ℑtup(I) := [ \begin{matrix}Item ↦ & I \\ Coll ↦ & I^{∗} \\ ins ↦ & ins \\ del ↦ & del \\ Mem ↦ & Mem \end{matrix} ]

where *** CONTINUE HERE ***

19.7.2 Solution of exercise 20.7.1

*** CONTINUE HERE ***

19.7.3 Example

*** tuples as example for a monoid ***

19.7.4 Example

*** UPDATE ***

Let 𝔖 † 𝔙 be the extended signature, given by

                                                                            𝔖 = ( \begin{matrix}S \\ zero : S \\ unit : S \\ add : S × S ⟶ S \\ mult : S × S ⟶ S \\ min : S ⟶ S \\ Smeq : S ↭ S \end{matrix} ) and 𝔙 = ( \begin{matrix}x : S \\ y : S \\ z : S \end{matrix} )

and the following interpretation ℑ for 𝔖, given by

ℑ = [ \begin{matrix}S ↦ & ℤ \\ zero ↦ & 0 : ℤ \\ unit ↦ & 1 : ℤ \\ add ↦ & [\begin{matrix}ℤ × ℤ ⟶ ℤ \\ ⟨a, b⟩ ↦ a + b \end{matrix}] \\ mult ↦ & [\begin{matrix}ℤ × ℤ ⟶ ℤ \\ ⟨a, b⟩ ↦ a · b \end{matrix}] \\ min ↦ & [\begin{matrix}ℤ ⟶ ℤ \\ a ↦ -a \end{matrix}] \\ Smeq ↦ & [\begin{matrix}ℤ ↭ ℤ \\ ⟨a, b⟩ ↝ a ≤ b \end{matrix}] \end{matrix} ]

*** CONTINUE HERE ***

( ; 𝅝 ; ) If θ = zero then

xrel_{𝔖†𝔙}^{ℑ}(θ) = \begin{matrix}zero : ℤ \\ 0 \end{matrix}

xfun_{𝔖†𝔙}^{ℑ}(θ) = [ \begin{matrix}⊗⟨⟩ ⟶ ⊗[ zero ↦ ℤ] \\ ⟨⟩ ↦ [ x ↦ 0 ] \end{matrix} ]

( ; 𝅝 ; ) If θ = x then

xrel_{𝔖†𝔙}^{ℑ}(θ) = \begin{matrix}x : ℤ \\ a \end{matrix}

xfun_{𝔖†𝔙}^{ℑ}(θ) = [ \begin{matrix}⊗[ x ↦ ℤ] ⟶ ⊗⟨⟩ \\ [ x ↦ a] ↦ ⟨⟩ \end{matrix} ] = ⊤_{[ x↦ℤ]}

( ; 𝅝 ; ) If θ = add(unit, unit) then

xrel_{𝔖†𝔙}^{ℑ}(θ) = \begin{matrix}add : ℤ \\ 2 \end{matrix}

xfun_{𝔖†𝔙}^{ℑ}(θ) = [ \begin{matrix}⊗⟨⟩ ⟶ ⊗[ add ↦ ℤ] \\ ⟨⟩ ↦ [ add ↦ 2 ] \end{matrix} ]

( ; 𝅝 ; ) If θ = add(unit, x) then

xrel_{𝔖†𝔙}^{ℑ}(θ) = \begin{matrix}x : ℤ & add : ℤ \\ a & c \\ 1 + a = c \end{matrix}

xfun_{𝔖†𝔙}^{ℑ}(θ) = [ \begin{matrix}⊗[ x ↦ ℤ] ⟶ ⊗[ add ↦ ℤ] \\ [ x ↦ a] ↦ [ add ↦ (1 + a) ] \end{matrix} ]

                                                                       ( ; 𝅝 ; ) If θ = mult(add(unit, uni), min(unit)) then

xrel_{𝔖†𝔙}^{ℑ}(θ) = \begin{matrix}add : ℤ \\ -2 \end{matrix}

xfun_{𝔖†𝔙}^{ℑ}(θ) = [ \begin{matrix}⊗⟨⟩ ⟶ ⊗[ add ↦ ℤ] \\ ⟨⟩ ↦ [ add ↦ -2 ] \end{matrix} ]

( ; 𝅝 ; ) If θ = mult(add(x, y), min(x)) then

xrel_{𝔖†𝔙}^{ℑ}(θ) = \begin{matrix}x : ℤ & y : ℤ & mult : ℤ \\ a & b & c \\ (a + b) · (-a) \end{matrix}

xfun_{𝔖†𝔙}^{ℑ}(θ) = [ \begin{matrix}⊗ [ \begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \end{matrix} ] ⟶ ⊗[ mult ↦ ℤ] \\ [ \begin{matrix}x ↦ & a \\ y ↦ & b \end{matrix} ] ↦ [ mult ↦ (a + b) · (-a) ] \end{matrix} ]

( ; 𝅝 ; ) *** CONTINUE HERE ***

19.8 Important properties

19.8.1 Repetition

Recall figure 9(5)(c), that for any two records ξ = [ξ_{i}|i ∈ I] and υ = [υ_{j}|j ∈ J],

ξ ≤ υ iff I ⊆ J and ξ_{i} = υ_{i} for all i ∈ I

19.8.2 Lemma the free variable lemma

Let 𝔍 be a parameterized interpretation.

(1) Let θ ∈ Term (𝔍) be a term and ω = [ω_{j}|j ∈ J] ∈ ⊛X^{𝔍} an assignment with Fvar (θ) = J. For every ω′ ∈ ⊛X^{𝔍} with ω ≤ ω′ holds:

(a) ti^{𝔍}(θ)(ω) is defined iff ti^{𝔍}(θ)(ω′) is defined

and in that case

(b) ti^{𝔍}(θ)(ω) = ti^{𝔍}(θ)(ω′)

(2) Let φ ∈ Form (𝔍) be a formula and ω = [ω_{j}|j ∈ J] ∈ ⊛X^{𝔍} an assignment with Fvar (θ) = J. For every ω′ ∈ ⊛X^{𝔍} with ω ≤ ω′ holds:

(a) fi^{𝔍}(φ)(ω) is defined iff fi^{𝔍}(φ)(ω′) is defined

and in that case

(b) fi^{𝔍}(φ)(ω) = fi^{𝔍}(φ)(ω′)

19.8.3 Proof of 20.8.2

*** CONTINUE HERE ***

19.8.4 Remark

The following lemma is the more precise version of the idea that the schema–operational interpretation is more general than the evaluative interpretation concept in the sense that it behaves pretty much the same for closed expressions.

19.8.5 Lemma

Let 𝔍 be a parameterized interpretation.

(1) For every term θ ∈ Term (𝔍) holds:

te^{𝔍}(θ) is defined iff xf^{𝔍}(θ) is defined

and in that case

te^{𝔍}(θ) = xf^{𝔍}(θ)(⟨⟩)

(2) For every formula φ ∈ Form (𝔍) holds:

fe^{𝔍}(φ) is defined iff xr^{𝔍}(φ) is defined

and in that case

fe^{𝔍}(φ) = 1 iff xr^{𝔍}(φ)(⟨⟩)

19.8.6 Proof of 20.8.5

*** CONTINUE HERE ***

19.9 Other conventional variations of interpretations

19.9.1 Definition

For every formula φ we define

∀ . φ := ∀x_{1} …. ∀x_{n} . φ where {x_{1}, …, x_{n}} = Fvar (φ)

the general closure of φ,

∃ . φ := ∃x_{1} …. ∃x_{n} . φ where {x_{1}, …, x_{n}} = Fvar (φ)

the existential closure of φ.

19.9.2 Remark

These definitions are not precise, because the order of the free variables is not determined and multiple occurences are not excluded. But this ambiguity is justified by the following lemma 20.9.3. In practice, we can assume that there is a default (say lexical) order < between the variables, and then we put ∀x_{1} …. ∀x_{n} . φ and ∃x_{1} …. ∃x_{n} . φ always such that x_{1} < … < x_{n}.

19.9.3 Lemma

Let 𝔍 be a parameterized interpretation and x_{1}, …, x_{n}, y_{1}, …, y_{m} ∈ Var (𝔍) such that {x_{1}, …, x_{n}} = {y_{1}, …, y_{m}}.

(1) For every θ ∈ Term (𝔍) holds:

ti^{𝔍}(∀x_{1} …. ∀x_{n} . θ) = ti^{𝔍}(∀y_{1} …. ∀y_{m} . θ)

(2) For every φ ∈ Form (𝔍) holds:

fi^{𝔍}(∀x_{1} …. ∀x_{n} . φ) = fi^{𝔍}(∀y_{1} …. ∀y_{m} . φ)

19.9.4 Proof of 20.9.3

*** CONTINUE HERE ***

19.9.5 Definition

Let 𝔍 be a parameterized interpretation.

(1) For every θ ∈ Term (𝔍) we define

𝔍(θ) := the x with (∀ω ∈ ⊗X^{𝔍} . ti^{𝔍}(θ)(ω) = x)

the 𝔍–value of θ

(2) For every formula φ ∈ Form (𝔍) we write

𝔍 ⊧ φ iff fi^{𝔍}(φ)(ω) = 1 for all ω ∈ ⊗X^{𝔍}
𝔍 |̸= φ iff fi^{𝔍}(φ)(ω) = 0 for some ω ∈ ⊗X^{𝔍}

In case 𝔍 ⊧ φ, we say that ( ; 𝅝 ; ) 𝔍 is a model for φ or ( ; 𝅝 ; ) 𝔍 entails φ or

( ; 𝅝 ; ) φ holds in 𝔍.

In case 𝔍 |̸= φ, we say that ( ; 𝅝 ; ) 𝔍 is a counter–model for φ or ( ; 𝅝 ; ) φ does not hold in 𝔍 19.9.6 Lemma

Let 𝔍 be a parameterized interpretation.

(1) For every closed term θ ∈ Cterm (𝔍) holds:

𝔍(θ) = te^{𝔍}(θ)

where 𝔍(θ) is defined iff te^{𝔍}(θ) is defined.

(2) For every closed formula φ ∈ Cform (𝔍) holds:

𝔍 ⊧ φ iff fe^{𝔍}(φ) = 1

and accordingly

𝔍 |̸= φ iff fe^{𝔍}(φ) = 0

19.9.7 Proof of 20.9.8

*** CONTINUE HERE ***

19.9.8 Lemma

Let 𝔍 be a parameterized interpretation and φ ∈ Form (𝔍). Then

𝔍 ⊧ φ iff fe^{𝔍}(∀ . φ) = 1 iff xr^{𝔍}(φ) ≡ ⊤

and accordingly

𝔍 |̸= φ iff fe^{𝔍}(∀ . φ) = 0 iff xr^{𝔍}(φ) ≢ ⊤

19.9.9 Proof of 20.9.8

*** CONTINUE HERE ***

19.9.10 Remark

*** update or even delete this ***

The concept of a parameterized interpretation 𝔍 = ℑ † 𝔙 is not a common standard in the literature, however the interpretation ℑ is. The previous conventions are usually with respect to the interpretation, i.e. one writes “ℑ(θ)” and “ℑ ⊧ φ” with respect to ℑ only, instead of our “𝔍(θ)” and “𝔍 ⊧ φ” that uses the parameterized interpretation 𝔍. But in fact, both versions are very compatible. The actual choice of the variable set 𝔙 is irrelevant, because we deal with closed terms and closed formulas.

For example, suppose we have an interpretation ℑ and two suitable variable sets for ℑ, say

𝔙 = ( \begin{matrix}x1 : S \\ x2 : S \\ x3 : S \end{matrix} )  and  𝔙′ = ( \begin{matrix}y1 : S \\ y2 : S \\ y3 : S \end{matrix} )

These variable sets are “translatable”, i.e. we can replace x1 by y1 etc. Let us take two terms

θ ∈ Term (ℑ † 𝔙)  and  θ′ ∈ Term (ℑ † 𝔙′)

say

θ := f(x1, g(c, x2), c, x2)  and  θ′ := f(y1, g(c, y2), c, y2)

Obviously θ and θ′ are mutually “translatable” and we always have

ℑ † 𝔙(θ) = ℑ † 𝔙′(θ′)

Similarly, for two mutually “translatable” formulas

φ ∈ Form (ℑ † 𝔙)  and  φ′ ∈ Form (ℑ † 𝔙′)

holds

ℑ † 𝔙 ⊧ φ iff ℑ † 𝔙′ ⊧ φ′

In this sense, the concrete choice of the variable set does not matter and we may neglect to mention it.

*** refer to ?? for a thorough discussion ***

19.9.11 Example

Given a proto–theory 𝔗 = ⟨𝔖, 𝔙, Ax⟩, an interpretation ℑ of 𝔖 and a structure 𝔄. Note, that the interpretation ℑ is or is not an model for 𝔗. But 𝔄 can be a model of 𝔗 in different ways. ***

CONTINUE HERE ***

19.9.12 Example

Let 𝔗bool be the proto–theory of boolean algebras

                𝔖bool = ( \begin{matrix}B \\ zero : B \\ unit : B \\ meet : B × B ⟶ B \\ join : B × B ⟶ B \\ neg : B ⟶ B \end{matrix} )

and

𝔅 = ⟨𝔹, 0, 1, ∧, ∨, -⟩

the bit value algebra. Then

ℑ_{1} = [ \begin{matrix}B ↦ & 𝔹 \\ zero ↦ & 0 \\ unit ↦ & 1 \\ meet ↦ & ◯ 1 ∧ ◯ 2 \\ join ↦ & ◯ 1 ∨ ◯ 2 \\ neg ↦ & -◯ 1 \end{matrix} ]

ℑ_{2} = [ \begin{matrix}B ↦ & 𝔹 \\ zero ↦ & 1 \\ unit ↦ & 0 \\ meet ↦ & ◯ 1 ∨ ◯ 2 \\ join ↦ & ◯ 1 ∧ ◯ 2 \\ neg ↦ & -◯ 1 \end{matrix} ]

are two different models for 𝔗bool, both with the same structure 𝔅.

19.9.13 Remark

*** probably obsolete ***

In reasoning about (functional) programming languages, one often distinguishes strict from non–strict languages or features. Suppose, “o(ξ_{1}, …, ξ_{n})” is an operator expression. In our language, that might e.g. be an application (with o a function symbol), a relation form (with o being a relation symbol), or a junction such as [ξ_{1} ∧ … ∧ ξ_{n}] (with ∧ as operator symbol o and writing “[ξ_{1} ∧…∧ξ_{n}]” instead of “∧(ξ_{1}, …, ξ_{n})”). So let “o(ξ_{1}, …, ξ_{n})” be any such operator expression with an operator symbol o somehow applied to a couple of argument expressions ξ_{1}, …, ξ_{n}. We say that the semantics or the interpretation of o or this kind of expression is strict, if it is defined only, if all its arguments ξ_{i} have a well–defined interpretation. Otherwise, the semantics is non– strict.

For example, if f is a binary function with say f(x, y) := y + 7. Is “f(5/0, 3)” then defined and 10, or undefined, because the zero division “5/0” is undefined? In a strict interpretation, “f(5/0, 3)” is clearly undefined, but in a non–strict interpretation, we could set the result to 10, because the first argument is irrelevant in the definition of f anyway.

Our interpretation concept in definition 20.4.2 is strict in this sense: for each complex expressions, all its subexpressions must be well–defined for the expression to be well–defined itself. There is only one exception: the conditional expression θ := [if φ then θ_{1} else θ_{2}]. This term θ can have a well–defined value ti^{𝔍}(θ)(ω) although ti^{𝔍}(θ_{1})(ω) or ti^{𝔍}(θ_{2})(ω) might not be defined.

20 Interpretation structures

20.0.14 Introduction

So far, we defined the first–order theory algebra 𝔓𝔯𝔢𝔩1 (X) and the parameterized structure 𝔄^{•}[X]. In this section we just combine them and call that the interpretation structure ℑ𝔫𝔱𝔢𝔯 (𝔄, X). At this point in our text, this new structure might not make much sense as such. But after the definition of the terms and formulas of a given extended signature 𝔖 † 𝔙 in 19.4.2, we will see that each interpretation ℑ of 𝔖 induces an according interpretation structure, which provides us with a natural and constructive semantics for both these terms and the formulas. And in case the terms and formulas also include equations, descriptions and conditional terms, the semantic structure should be “extended” to ℑ𝔫𝔱𝔢𝔯^{+} (𝔄, X), which is ℑ𝔫𝔱𝔢𝔯 (𝔄, X) plus identity relations and the class of (partial) converter functions.

20.1 Interpretation structures

20.1.1 Repetition

Recall Thalg 5.8.6 , that for any two structures

𝔄 = ⟨Car, Op⟩ and 𝔄′ = ⟨Car′, Op′⟩

we defined their combination as

𝔄 † 𝔄′ := ⟨Car ∪ Car′, Op ∪ Op′⟩

20.1.2 Definition

Let 𝔄 = ⟨Car, Op⟩ be an ordinary structure and X = [X_{v}|v ∈ V] a schema with {X_{v} | v ∈ V } ⊆ Car. We define

ℑ𝔫𝔱𝔢𝔯 (𝔄, X) := 𝔄^{•}[X] † 𝔓𝔯𝔢𝔩1 (X)

the (plain) (first–order) interpretation structure of 𝔄 and X

20.1.3 Remark

Given the 𝔄 and X from definition 21.1.2.

( ; 𝅝 ; ) 20

Recall 26.6.18 and fig. 15(5), that for every schema X = [X_{i}|i ∈ I] we defined

𝔓𝔯𝔢𝔩1 (X) = ⟨Car′, Op′⟩

the first–order theory algebra (of relations) on X, where

\begin{aligned}Car′ & = & \{Prel (X) , I\} \\ Op′ & = & \{⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂\} \end{aligned}

( ; 𝅝 ; ) Recall definition ??(5), that for every schema X = [X_{v}|v ∈ V] and each (ordinary) structure 𝔄 = ⟨Car, Op⟩ with {X_{v} | v ∈ V } ⊆ Car we defined

𝔄^{•}[X] = ⟨Car′′, Op′′⟩

the parametrization of 𝔄 on X, where

\begin{aligned}Car′′ & = & \{C^{•}[X] | C ∈ Car\} ∪ \{Prel (X)\} \\ Op′′ & = & \{o_{[X]}^{•} | o ∈ Op\} ∪ \{v^{•} | v ∈ V \} \end{aligned}

So the interpretation structure of 𝔄 and X is

ℑ𝔫𝔱𝔢𝔯 (𝔄, 𝔛) = ⟨Car′′′, Op′′′⟩

where

Car′′′ = Car′ ∪ Car′′

= {C^{•}[X] | C ∈ Car} ∪ {Prel (X) , I}

Op′′′ = Op′ ∪ Op′′

= {o_{[X]}^{•} | o ∈ Op} ∪ {v^{•} | v ∈ V } ∪ {⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂}

20.1.4 Example

Let us consider example ??(5) again with the structure and schema given by

ℨ = ⟨ℤ, 0, 1, +, ·, ≤⟩ and X = [\begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \\ z ↦ & ℤ \end{matrix}]

The parametrization of ℨ over X was given by

ℨ^{•}[X] = ⟨ℤ^{•}[X], Prel (X) , 0^{•}, 1^{•}, x^{•}, y^{•}, z^{•}, +^{•}, ·^{•}, ≤^{•}⟩

The whole interpretation structure of ℨ and X is therefore given by

ℑ𝔫𝔱𝔢𝔯 (ℨ, X) = ⟨\begin{matrix}ℤ^{•}[X], Prel (X) , I, \\ 0^{•}, 1^{•}, x^{•}, y^{•}, z^{•}, +^{•}, ·^{•}, ≤^{•}, ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂ \end{matrix}⟩

made of three carriers

ℤ^{•}[X]  Prel (X)  I = {x, y, z}

seven constants

0^{•}, 1^{•}, x^{•}, y^{•}, z^{•} : ℤ^{•}[X] and ⊥, ⊤ ∈ Prel (X)

and eight ordinary functions

\begin{matrix}◯ 1 +^{•} ◯ 2 \\ ◯ 1 ·^{•} ◯ 2 \end{matrix} \} : ℤ^{•}[X] × ℤ^{•}[X] ⟶ ℤ^{•}[X]

◯ 1 ≤^{•} ◯ 2 : ℤ^{•}[X] × ℤ^{•}[X] ⟶ Prel (X)

\begin{matrix}◯ 1 ⊓ ◯ 2 \\ ◯ 1 ⊔ ◯ 2 \end{matrix} \} : Prel (X) × Prel (X) ⟶ Prel (X)

¬ : Prel (X) ⟶ Prel (X)

\begin{matrix}◯ 1 ↾ ◯ 2 \\ ◯ 1 ⇂ ◯ 2 \end{matrix} \} : Prel (X) × I ⟶ Prel (X)

20*** NOTE: I removed the identity operator Id and changed the name from 𝔗ℜ1 (X) to 𝔓𝔯𝔢𝔩1 (X). ***

20.2 Extended interpretation structures

20.2.1 Definition

Given a structure 𝔄 = ⟨Car, Op⟩ and a schema X = [X_{v}|v ∈ V] such that {X_{v} | v ∈ V } ⊆ Car (𝔄). If the interpretation structure of 𝔄 and X is given by

ℑ𝔫𝔱𝔢𝔯 (𝔄, X) = ⟨Car′, Op′⟩

then we now define

ℑ𝔫𝔱𝔢𝔯^{+} (𝔄, X) := ⟨Car′, Op′′⟩

the extended (first–order) interpretation structure of 𝔄 and X, with the now enlarged operator class

Op′′ := Op′ ∪ Ids (Car) ∪ Conv (X)

20.2.2 Remark

Given 𝔄 and X from definition 21.2.1, the interpretation structure ℑ𝔫𝔱𝔢𝔯 (𝔄, X) always is a well–defined ordinary structure in the sense of definition 15.3.1, but the extended version ℑ𝔫𝔱𝔢𝔯^{+} (𝔄, X) is not anymore, because the converter class Conv (X) usually contains partial functions, too.

20.2.3 Example

Given a schema

X = [\begin{matrix}i ↦ & A \\ j ↦ & B \\ k ↦ & A \end{matrix} ]  with  I := dom (X) = \{i, j, k\}

and an ordinary structure

𝔄 = ⟨A, B, c, d, f, g, R, S⟩

with two carrier classes A, B, two constants c, d, two ordinary functions f, g and two ordinary relations R, S.

The interpretation structure of 𝔄 and X is

ℑ𝔫𝔱𝔢𝔯 (𝔄, X) = ⟨Car′, Op′⟩

where

\begin{aligned}Car′ & = & \{Prel (X) , I, A^{•}[X], B^{•}[X]\} \\ Op′ & = & \{ \begin{matrix}c^{•}, d^{•}, f^{•}, g^{•}, R^{•}, S^{•}, \\ i^{•}, j^{•}, k^{•}, \\ ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂ \end{matrix} \} \end{aligned}

The extended interpretation structure of 𝔄 and X is

ℑ𝔫𝔱𝔢𝔯^{+} (𝔄, X) = ⟨Car′, Op′′⟩

where

Car′ = {Prel (X) , I, A^{•}[X], B^{•}[X]}

Op′′ = \{ \begin{matrix}c^{•}, d^{•}, f^{•}, g^{•}, R^{•}, S^{•}, \\ i^{•}, j^{•}, k^{•}, \\ ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂, \\ Id_{A,A}, Id_{B,A}, Id_{A,B}, Id_{B,B}, \\ fri, frj, frk, rfi, rfj, rfk \end{matrix}\}

The additional operators in ℑ𝔫𝔱𝔢𝔯^{+} (𝔄, X) are the four identity relations of Ids ({A, B}), namely

Id_{A,A} : A ↭ A Id_{B,A} : B ↭ A
Id_{A,B} : A ↭ B Id_{B,B} : B ↭ B

and the three partial and three (total) functions of Conv (X), namely

fri : A^{•}[X] ⟶ Prel (X) rfi : Prel (A) −−→ A^{•}[X]
frj : B^{•}[X] ⟶ Prel (X) rfj : Prel (A) −−→ B^{•}[X]
frk : A^{•}[X] ⟶ Prel (X) rfk : Prel (A) −−→ A^{•}[X]

20.2.4 Example

Let us take the tuple collection structure of a given non–empty I from example ??, where

𝔗𝔠𝔬𝔩 (I) := ⟨I, I^{∗}, emp, ins, del, Emp, Mem, Incl⟩

This structure was made of two carriers I and I^{∗}, the latter being the class of all the tuples ⟨x_{1}, …, x_{n}⟩ with components x_{i} taken from I, and six operators

emp : I^{∗}  ins : I × I^{∗} ⟶ I^{∗}  del : I × I^{∗} ⟶ I^{∗}
Emp : Pty (I^{∗})  Mem : I ↭ I^{∗}  Incl : I^{∗} ↭ I^{∗}

Furthermore, let us take the schema X = [X_{j}|j ∈ J], where

X = [\begin{matrix}a ↦ & I \\ b ↦ & I \\ c ↦ & I \\ s ↦ & I^{∗} \\ t ↦ & I^{∗} \\ u ↦ & I^{∗} \end{matrix} ] so that J = \{a, b, c, s, t, u\}

The extended interpretation structure of 𝔗𝔠𝔬𝔩 (I) and X is

ℑ𝔫𝔱𝔢𝔯^{+} (𝔗𝔠𝔬𝔩 (I) , X) = ⟨Car′, Op′⟩

where

Car′ = {I^{•}[X], I^{∗}^{•}[X], Prel (X) , J}

Op′ = \{ \begin{matrix}emp^{•}, ins^{•}, del^{•}, Emp^{•}, Mem^{•}, Incl^{•}, \\ a^{•}, b^{•}, c^{•}, s^{•}, t^{•}, u^{•}, \\ ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂, \\ Id_{I,I}, Id_{I∗,I}, Id_{I,I∗} , Id_{I∗,I∗} , \\ rfa, rfb, rfc, rfs, rft, rfu, \\ fra, frb, frc, frs, frt, fru \end{matrix}\}

In more detail, the four carrier classes are:

( ; 𝅝 ; ) I^{•}[X] is the class of (schematic) functions f : ⊗Y ⟶ I with

Y ≤ X. ( ; 𝅝 ; ) I^{∗}^{•}[X] is the class of all f : ⊗Y ⟶ I^{∗} with Y ≤ X. ( ; 𝅝 ; ) Prel (X) is the class of all (schematic) relations R = [Y, Γ] with

Y ≤ X and Γ ⊆ ⊗Y. ( ; 𝅝 ; ) J itself, which only appears in the two eliminator functions ↾

and ⇂.

The opererators in Op′ are the following:

( ; 𝅝 ; ) The parameterized operators of 𝔗𝔠𝔬𝔩 (I), namely

emp^{•} : I^{∗}^{•}[X]
ins^{•} : I^{•}[X] × I^{∗}^{•}[X] ⟶ I^{∗}^{•}[X]
del^{•} : I^{•}[X] × I^{∗}^{•}[X] ⟶ I^{∗}^{•}[X]
Emp^{•} : I^{∗}^{•}[X] ⟶ Prel (X)
Mem^{•} : I^{•}[X] × I^{∗}^{•}[X] ⟶ Prel (X)
Incl^{•} : I^{∗}^{•}[X] × I^{∗}^{•}[X] ⟶ Prel (X)

( ; 𝅝 ; ) There are the six parameters in Param (X),

a^{•}, b^{•}, c^{•} ∈ I^{•}[X]  an  s^{•}, t^{•}, v^{•} ∈ I^{∗}^{•}[X]

( ; 𝅝 ; ) Also included by Op′ are the four identity relation from Ids ({I, I^{∗}}),

Id_{I,I} Id_{I∗,I} Id_{I,I∗} Id_{I∗,I∗}

Usually, I will itself not contain any members of I^{∗}, so that both classes are disjunct, which makes the two relations Id_{I∗,I} and Id_{I,I∗} empty.

( ; 𝅝 ; ) Finally, there are the twelve converters from Conv (X),

\begin{matrix}fr^{a} : I^{•}[X] ⟶ Prel (X) \\ rf^{a} : Prel (X) −−→ I^{•}[X] \end{matrix} \} for each a ∈ \{a, b, c\}

\begin{matrix}fr^{s} : I^{∗}^{•}[X] ⟶ Prel (X) \\ rf^{s} : Prel (X) −−→ I^{∗}^{•}[X] \end{matrix} \} for each s ∈ \{s, t, u\}

21 The interpretation theorem

21.1 Properties of codomains and domain schemas

21.1.1 Lemma ti^{𝔍}(θ)(ω) ∈ cod^{𝔍}(θ) for all ω ∈ def(ti^{𝔍})

21.1.2 Proof of ??

*** CONTINUE HERE *** *** Update the rest: ***

21.1.3 Lemma

(1) x^{𝔍}(θ) = pr (X^{𝔍}, Fvar (θ))

(2) x^{𝔍}(φ) = pr (X^{𝔍}, Fvar (φ))

21.1.4 Proof of ??

interpret-xproject *** CONTINUE HERE ***

21.1.5 Lemma Let 𝔖 † 𝔙 be an extended signature and ℑ an interpretation for 𝔖. For each θ ∈ Term (𝔖 † 𝔙) holds

cod(θ) ∈ Car (ℑ)

More precisely,

(a) If θ = v is a variable then cod(θ) = car_{ℑ}(sort_{𝔙}(v))

(b) If θ = c is a constant then cod(θ) = car_{ℑ}(cosy_{𝔖}(c))

(c) If θ = f(θ_{1}, …, θ_{n}) is an application then cod(θ) = car_{ℑ}(cosy_{𝔖}(f))

(d) If θ = if φ then θ_{1} else θ_{2} is a conditional then cod(θ) = cod(θ_{1}) (which is equal to cod(θ_{2}))

(e) If θ = the v with φ is a description then cod(θ) = car_{ℑ}(sort_{𝔙}(v))

21.1.6 Proof of 22.1.5

*** CONTINUE HERE ***

21.1.7 Lemma Let 𝔖 † 𝔙 be an extended signature and ℑ an interpretation for 𝔖.

(1) For each θ ∈ Term (𝔖 † 𝔙) holds

fvx(θ) ∈ Proj (VX_{𝔖†𝔙}^{ℑ})

More precisely,

(a) If θ = v is a variable then fvx (θ) = [ v ↦ car_{ℑ}(sort_{𝔙}(v) ]

(b) If θ = c is a constant then fvx (θ) = ⟨⟩

(c) If θ = f(θ_{1}, …, θ_{n}) is an application then fvx (θ) = fvx (θ_{1}) ∨ … ∨ fvx (θ_{n})

(d) If θ = if φ then θ_{1} else θ_{2} is a conditional then fvx (θ) = fvx (φ) ∨ fvx (θ_{1}) ∨ fvx (θ_{2})

(e) If θ = the v with φ is a description then fvx (θ) = fvx (φ) \ fvx (v)

(2) For each φ ∈ Form (𝔖 † 𝔙) holds

fvx(φ) ∈ Proj (VX_{𝔖†𝔙}^{ℑ})

More precisely,

(a) If φ = R[ θ_{1}, …, θ_{n} ] is a relation form then fvx (φ) = fvx (θ_{1}) ∨ … fvx (θ_{n})

(b) If φ = [ θ_{1} = θ_{2} ] is an equation then fvx (φ) = fvx (θ_{1}) ∨ fvx (θ_{2})

(c) If φ = ¬ψ is a negation then

fvx (φ) = fvx (ψ)

(d) If φ = [ φ_{1} ∧ … ∧ φ_{n} ] is a conjunction then fvx (φ) = fvx (φ_{1}) ∨ … ∨ fvx (φ_{n})

(e) If φ = [ φ_{1} ∨ … ∨ φ_{n} ] is a conjunction then fvx (φ) = fvx (φ_{1}) ∨ … ∨ fvx (φ_{n})

(f) If φ = ∃v . ψ is an existentialization then fvx (φ) = fvx (ψ) \ fvx (v)

(g) If φ = ∀v . ψ is a generalization then fvx (φ) = fvx (ψ) \ fvx (v)

21.1.8 Proof of 22.1.7

*** CONTINUE HERE ***

21.2 The interpretation theorem

21.2.1 Theorem Let 𝔍 be a parameterized interpretation.

(1) For every term θ ∈ Term (𝔍) holds:

(a) If θ = v is a variable, then xf^{𝔍}(θ) = v_{[X𝔍]}^{•}

(b) If θ = c is a constant, then xf^{𝔍}(θ) = op^{𝔍}(c) • ⟨⟩

(c) If θ = f(θ_{1}, …, θ_{n}) is an application, then xf^{𝔍}(θ) = op^{𝔍} • ⟨xf^{𝔍}(θ_{1}), …, xf^{𝔍}(θ_{n})⟩

(d) If θ = [if φ then θ_{1} else θ_{2}] is a conditional, then xf^{𝔍}(θ) = rf^{x} ((R ⊓ T_{1}) ⊔ (¬R ⊓ T_{2})) where

x ∈ Var (𝔍) \ Fvar (θ) with csy_{𝔍}(x) = cosy_{𝔍}(θ) and

R := xr^{𝔍}(φ) T_{1} := fr^{x}(xf^{𝔍}(θ_{1})) T_{2} := fr^{x}(xf^{𝔍}(θ_{2}))

(e) If θ = [the v with φ] is a description, then xf^{𝔍}(θ) = rf^{v}(xr^{𝔍}(φ))

(2) For every formula φ ∈ Form (𝔍) holds:

(a) If φ = R(θ_{1}, …, θ_{n}) is a relation form, then xr^{𝔍}(φ) = op^{𝔍}(R) • ⟨xf^{𝔍}(θ_{1}), …, xf^{𝔍}(θ_{n})⟩

(b) If φ = [θ_{1} = θ_{2}] is an equation, then xr^{𝔍}(φ) = Id^{cod𝔍(θ1),cod𝔍(θ2)} • ⟨xf^{𝔍}(θ_{1}), xf^{𝔍}(θ_{2})⟩

(c) If φ = ¬ψ is a negation, then xr^{𝔍}(φ) = ¬xr^{𝔍}(ψ)

(d) If φ = [φ_{1} ∧ … ∧ φ_{n}] is a conjunction, then xr^{𝔍}(φ) = xr^{𝔍}(φ_{1}) ⊓ … ⊓ xr^{𝔍}(φ_{n})

(e) If φ = [φ_{1} ∨ … ∨ φ_{n}] is a disjunction, then xr^{𝔍}(φ) = xr^{𝔍}(φ_{1}) ⊔ … ⊔ xr^{𝔍}(φ_{n})

(f) If φ = ∃v . ψ is an existentialization, then xr^{𝔍}(φ) = xr^{𝔍}(ψ)⇂ v

(g) If φ = ∀v . ψ is a generalization, then xr^{𝔍}(φ) = xr^{𝔍}(ψ)↾ v

21.2.2 Proof of 22.2.1

*** CONTINUE HERE ***

21.2.3 Lemma

*** CONTINUE HERE ***

( ; 𝅝 ; ) xr^{𝔍}(true) = ⊤

( ; 𝅝 ; ) xr^{𝔍}(false) = ⊥

( ; 𝅝 ; ) xr^{𝔍} ([φ_{1} → … → φ_{n}]) = ∗ ∗ ∗CONTINUEHERE ∗ ∗∗

( ; 𝅝 ; ) xr^{𝔍} ([φ_{1} ↔ … ↔ φ_{n}]) = ∗ ∗ ∗CONTINUEHERE ∗ ∗∗

21.2.4 Lemma

*** CONTINUE HERE ***

( ; 𝅝 ; ) xr^{𝔍}(R(v_{1}, …, v_{n})) = tr (op^{𝔍}(R), ⟨v_{1}, …, v_{n}⟩)

( ; 𝅝 ; ) xr^{𝔍}([x = y]) = tr (Id_{cod𝔍(x),cod𝔍(y)}, ⟨x, y⟩)

*** CONTINUE HERE ***

21.3 The expression structure

21.3.1 Definition

Given a parameterized signature 𝔔.

(1) For every carrier symbol S ∈ Csy (𝔔) we define S^{∘}[𝔔] := {θ ∈ Term (𝔔) | cosy_{𝔔}(θ) = S}

the term class of S on 𝔔

(2) For every variable v ∈ Var (𝔔) with osy_{𝔔}(v) = C we define

v_{[𝔔]}^{∘} := v : C^{∘}[𝔔]

is the variable term on 𝔔

(3) For every operator symbol o ∈ Osy (𝔔) we define

o_{[𝔔]}^{∘}  the term operator of o on 𝔔

as follows

(i) If o : C is a constant, then o_{[𝔔]}^{∘} : C^{∘}[𝔔]

(ii) If o : D_{1} × … × D_{n} ⟶ C is a function symbol, then

o_{[𝔔]}^{∘} := [ \begin{matrix}D_{1}^{∘}[𝔔] × … × D_{n}^{∘}[𝔔] ⟶ C^{∘}[𝔔] \\ ⟨θ_{1}, …, θ_{n}⟩ ↦ o(θ_{1}, …, θ_{n}) \end{matrix} ]

(iii) If o : D_{1} ↭ … ↭ D_{n} is a relation symbol, then

o_{[𝔔]}^{∘} := [ \begin{matrix}D_{1}^{∘}[𝔔] × … × D_{n}^{∘}[𝔔] ⟶ Form (𝔔) \\ ⟨θ_{1}, …, θ_{n}⟩ ↦ o(θ_{1}, …, θ_{n}) \end{matrix} ]

(4) The term structure of 𝔔 is defined as 𝔗𝔢𝔯𝔪 (𝔔) := ⟨Car′, Op′⟩

where

Car′ := {C^{∘} | C ∈ Csy (𝔔)} ∪ {Form (𝔔)}
Op′ := {v_{[𝔔]}^{∘} | v ∈ Var (𝔔)} ∪ {o_{[𝔔]}^{∘} | o ∈ Osy (𝔔)}

*** leave the subscript notation ***

21.3.2 Definition

*** formula structure 𝔉𝔬𝔯𝔪 (𝔔) ***

21.3.3 Definition

*** expressions structure 𝔈𝔵𝔭 (𝔔) ***

21.4 Interpretation structure of parameterized interpretations

21.4.1 Definition

Given a parameterized interpretation 𝔍. We define

ℑ𝔫𝔱𝔢𝔯 (𝔍) := ℑ𝔫𝔱𝔢𝔯 (𝔰𝔱𝔯𝔲𝔠 (𝔍) , X^{𝔍})

the (plain) interpretation structure of 𝔍

ℑ𝔫𝔱𝔢𝔯^{+} (𝔍) := ℑ𝔫𝔱𝔢𝔯^{+} (𝔰𝔱𝔯𝔲𝔠 (𝔍) , X^{𝔍})

the extended interpretation structure of 𝔍

21.4.2 Remark

Again, let 𝔍 be a give parameterized interpretation. We put 𝔄 := 𝔰𝔱𝔯𝔲𝔠 (𝔍) and X := X^{𝔍}. Then dom (X) = Var (𝔍) and we obtain the following structures:

(1) According to definition ??, the parametrization of 𝔄 over X was given by

𝔄^{•}[X] = ⟨Car′, Op′⟩

with

Car′ = {C^{•}[X] | C ∈ Car (𝔍)} ∪ {Prel(X)}
Op′ = {o_{[X]}^{•} | o ∈ Op (𝔍) ∪ {v_{[X]}^{•} | v ∈ Var (𝔍)}}

(2) According to its definition in fig. 15(5), the first–order theory algebra on X is given by

𝔓𝔯𝔢𝔩1 (X) = ⟨Prel(X), Var (𝔍) , ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂⟩

(3) The combination of 𝔄^{•}[X] and 𝔓𝔯𝔢𝔩1 (X) now is the (plain) interpretation structure of 𝔍, according to definition 21.1.2 and 22.4.1

ℑ𝔫𝔱𝔢𝔯 (𝔍) = ⟨Car′′, Op′′⟩

with

Car′′ = {C^{•}[X] | C ∈ Car (𝔍)} ∪ {Prel(X), Var (𝔍)}
Op′′ = Op′ ∪ {⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂}

(4) The extended interpretation structure is then given by

ℑ𝔫𝔱𝔢𝔯^{+} (𝔍) = ⟨Car′′, Op′′′⟩

where Car′′ is the same class of carriers as the one of ℑ𝔫𝔱𝔢𝔯 (𝔍), and the operator class is the extended

Op′′′ = Op′′ ∪ Ids (Car (𝔍)) ∪ Conv (X)

with the identity relation class

Ids (Car (𝔍)) = {Id_{A,B} | A, B ∈ Car (𝔍)}

and the converter class

Conv (X) = {rf^{i} | i ∈ Var (𝔍)} ∪ {fr^{i} | i ∈ Var (𝔍)}

21.4.3 Example

Let us consider our standard example parameterized interpretation again,

𝔍 = [ \begin{matrix}G & ↦ & ℤ \\ neu & ↦ & 0 \\ op & ↦ & ◯ 1 + ◯ 2 \\ inv & ↦ & -◯ 1 \\ & x, y, z : G \end{matrix} ]

The derived classes and structures are as follows.

( ; 𝅝 ; ) There are three variables

Var(𝔍) = {x, y, z}

( ; 𝅝 ; ) The variable schema of 𝔍 is

X^{𝔍} = [\begin{matrix}x ↦ & ℤ \\ y ↦ & ℤ \\ z ↦ & ℤ \end{matrix}]

( ; 𝅝 ; ) The first–order theory algebra on this schema is

𝔓𝔯𝔢𝔩1 (X^{𝔍}) = ⟨Prel(X^{𝔍}), Var(𝔍), ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂⟩

( ; 𝅝 ; ) The structure of 𝔍 is

𝔄 := 𝔰𝔱𝔯𝔲𝔠 (𝔍) = ⟨ℤ, 0, +, -⟩

( ; 𝅝 ; ) The parametrization of 𝔄 over X^{𝔍} is

𝔄^{•}[X^{𝔍}] = ⟨ℤ^{•}[X^{𝔍}], 0^{•}, x^{•}, y^{•}, z^{•}, +^{•}, -^{•}⟩

( ; 𝅝 ; ) There is just one identity relation on the single carrier

Ids(Car(𝔍)) = Ids({ℤ}) = {Id_{ℤ,ℤ}}

( ; 𝅝 ; ) The converter class is

Conv(X^{𝔍}) = {rfx, rfy, rfz, frx, fry, frz}

where for each i ∈ {x, y, z},

rf^{i} : Prel(X^{𝔍}) −−→ ℤ^{•}[X^{𝔍}] and fr^{i} : ℤ^{•}[X^{𝔍}] ⟶ Prel(X)

( ; 𝅝 ; ) The interpretation structure of 𝔍 is

ℑ𝔫𝔱𝔢𝔯 (𝔍) = ⟨\begin{matrix}ℤ^{•}[X^{𝔍}], Prel(X^{𝔍}), \{x, y, z\} , \\ 0^{•}, x^{•}, y^{•}, z^{•}, +^{•}, -^{•}, ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂ \end{matrix}⟩

( ; 𝅝 ; ) The extended interpretation structure of 𝔍 is

ℑ𝔫𝔱𝔢𝔯^{+} (𝔍) = ⟨\begin{matrix}ℤ^{•}[X^{𝔍}], Prel(X^{𝔍}), \{x, y, z\} , \\ 0^{•}, x^{•}, y^{•}, z^{•}, +^{•}, -^{•}, ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂, \\ Id_{ℤ,ℤ}, rfx, rfy, rfz, frx, fry, frz \end{matrix}⟩

21.4.4 Example

*** poclass ***

21.4.5 Example

*** CONTINUE HERE ***

𝔍Tcol = [ \begin{matrix}Item ↦ & I \\ Coll ↦ & I^{∗} \\ emp ↦ & emp \\ ins ↦ & ins \\ del ↦ & del \\ Mem ↦ & Mem \\ Emp ↦ & Emp \\ Incl ↦ & Incl \\ a, b, c : Item \\ s, t, u : Coll \end{matrix} ] with X^{𝔍} = [ \begin{matrix}a ↦ & I \\ b ↦ & I \\ c ↦ & I \\ s ↦ & I^{∗} \\ t ↦ & I^{∗} \\ u ↦ & I^{∗} \end{matrix} ]

Then

ℑ𝔫𝔱𝔢𝔯^{+} (𝔍) = ∗ ∗ ∗CONTINUEHERE ∗ ∗∗

Part X

Model theory

21.5 Classes of signatures, structures and interpretations

21.5.1 Definition If 𝔖 is an (ordinary) signature, then

INT (𝔖) := {ℑ | ℑ is interpretation of 𝔖}

is the interpretation class of 𝔖

STRUC (𝔖) := {𝔰𝔱𝔯𝔲𝔠 (ℑ) | ℑ is interpretation of 𝔖}

is the structure class of 𝔖

If X is a schema, then

Int (𝔖, X) := {ℑ ∈ INT (S) | car_{ℑ} = X}

is the interpretation class of 𝔖 and X

Struc (𝔖, X) := {𝔰𝔱𝔯𝔲𝔠 (ℑ) | ℑ ∈ Int (𝔖, X)}

is the structure class of 𝔖 and X

Finally, if 𝔄 is a structure, then

Int (𝔄) := {ℑ | ℑ is interpretation and 𝔰𝔱𝔯𝔲𝔠 (ℑ) = 𝔄}

the interpretation class of 𝔄

Sign (ℑ) := {𝔰𝔦𝔤𝔫 (ℑ) | ℑ ∈ Int (𝔄)} the signature class of 𝔄

21.6 Models

21.6.1 Repetition (from structures.tex) For every signature 𝔖 we define

INT (𝔖) := {ℑ | ℑ is interpretation of 𝔖}

the interpretation class of 𝔖

And if X is a schema, we also define

Int (𝔖, X) := {ℑ ∈ INT (𝔖) | car_{ℑ} = X}

the interpretation class of 𝔖 and X

21.6.2 Definition Let 𝔖 † 𝔙 be an extended signature. For each ℑ ∈ INT(𝔖) and every φ ∈ Sent(𝔖 † 𝔙) we say that

( ; 𝅝 ; ) “ℑ is a model for φ” and “φ is true in ℑ”, written

ℑ ⊧ φ

iff ti_{𝔖†𝔙}^{ℑ}(φ)() = 1 ( ; 𝅝 ; ) “ℑ is a counter model for φ” and “φ is false in ℑ”, written

ℑ |̸= φ

iff ti_{𝔖†𝔙}^{ℑ}(φ)() = 0, i.e. if ℑ is not a model for φ.

And more general, for each ℑ ∈ INT(𝔖) and every Φ ⊆ Sent(𝔖 † 𝔙) we define

ℑ ⊧ Φ iff ℑ ⊧ φ for all φ ∈ Φ
ℑ |̸= Φ iff ℑ |̸= φ for some φ ∈ Φ

21.6.3 Definition

For every proto–theory 𝔗 = ⟨𝔖, 𝔙, Ax⟩ we define MOD (𝔗) := {ℑ ∈ INT (𝔖) | ℑ ⊧ Ax}

the model class of 𝔗

And if X is a schema, we also define

Mod (𝔗, X) := {ℑ ∈ Int (𝔖, X) | ℑ ⊧ Ax} the model class of 𝔗 and X

21.7 Theories

21.7.1 Definition

For every proto–theory 𝔗 = ⟨𝔖, 𝔙, Ax⟩ we define

Theo(𝔗) := {φ ∈ Sent(𝔖 † 𝔙) | ψ ⇒ φ for all ψ ∈ Ax}

the theory or theorem class of 𝔗.

For every interpretation ℑ ∈ INT(𝔖 † 𝔙) we define

Theo(ℑ) := {φ ∈ Sent(𝔖 † 𝔙) | ℑ ⊧ φ} the theory or theorem class of ℑ.

*** CONTINUE HERE ***

*** A theory is signature+axiomset. Alternatively signature can be replaced by sentences and axiomset by theoremset. ***

*** CONTINUE HERE ***

21.8 Subvalence and equivalence

21.8.1 Definition

◯ 1 ⇒ ◯ 2 :=
Form(𝔖 † 𝔙) ↭ Form(𝔖 † 𝔙)
⟨φ, ψ⟩ ↝ ∀ℑ ∈ INT(𝔖) . (ℑ ⊧ φ implies ℑ ⊧ ψ)

the subvalence relation

◯ 1 ⇔ ◯ 2 :=

Form(𝔖 † 𝔙) ↭ Form(𝔖 † 𝔙)
⟨φ, ψ⟩ ↝ ∀ℑ ∈ INT(𝔖) . (ℑ ⊧ φ iff ℑ ⊧ ψ)

the equivalence relation

22 Translations

*** Define “translations” and “translatability” of variable sets, signatures, etc. ***

22.0.2 Lemma

*** CONTINUE HERE ***

If 𝔍′ = ℑ † 𝔙′ and 𝔍′′ = ℑ † 𝔙′′ are two parameterized interpretations with the same interpretation ℑ and translatable variable sets, a translation given by τ, then

𝔍′(θ) = 𝔍′′(tr (θ, τ)) for every term θ

and

𝔍′ ⊧ φ iff 𝔍′′ ⊧ tr (φ, τ) for every formula φ

Part XI

PROBABLY OBSOLETE

Part XII

Appendix: Little compendium of important structures and theories

23 The “little book” of important theories and structures

23.1 A selection of structures

Lists

23.1.1 Definition For every class I, the list structure of I,

𝔏𝔦𝔰𝔱 (I)

is made of the following ingredients: ( ; 𝅝 ; ) Two carrier classes:

( ; 𝅗𝅥 ; ) I items

( ; 𝅗𝅥 ; ) I^{∗} lists

( ; 𝅝 ; ) The following operations: ( ; 𝅗𝅥 ; ) emp : I^{∗} the empty list ( ; 𝅗𝅥 ; ) isEmp : Pty (I^{∗}) emptiness predicate ( ; 𝅗𝅥 ; ) ◯ 1 ‡ ◯ 2 : I × I^{∗} ⟶ I^{∗} the push function ( ; 𝅗𝅥 ; ) ◯ 1 † ◯ 2 : I^{∗} × I^{∗} ⟶ I^{∗} the concatenation

( ; 𝅗𝅥 ; ) head : I^{∗} −−→ I

( ; 𝅗𝅥 ; ) tail : I^{∗} ⟶ I^{∗}

Bit logic and arithmetic

23.1.2 Definition

The bit structure (or binary boolean structure)

𝔅𝔦𝔱

is made of the following ingredients: ( ; 𝅝 ; ) One carrier class:

𝔹 {0, 1} the bit value set ( ; 𝅝 ; ) The following operations:

( ; 𝅗𝅥 ; ) 0 : 𝔹 zero bit

( ; 𝅗𝅥 ; ) 1 : 𝔹 unit bit

( ; 𝅗𝅥 ; ) ◯ 1 ≤ ◯ 2 : 𝔹 ↭ 𝔹 linear order relation

( ; 𝅗𝅥 ; ) ◯ 1 ∧ ◯ 2 : 𝔹 × 𝔹 ⟶ 𝔹

( ; 𝅗𝅥 ; ) ◯ 1 ∨ ◯ 2 : 𝔹 × 𝔹 ⟶ 𝔹

( ; 𝅗𝅥 ; ) ◯ 1 + ◯ 2 : 𝔹 × 𝔹 ⟶ 𝔹

( ; 𝅗𝅥 ; ) -◯ 1 : 𝔹 ⟶ 𝔹

23.2 Dual numeral arithmetic

*** CONTINUE HERE ***

23.3 Byte logic and arithmetic

*** CONTINUE HERE ***

23.4 Integer arithmetic

*** CONTINUE HERE ***

23.4.1 Definition

The binary arithmetic (structure) or boolean or bit value algebra is

𝔅 = ⟨𝔹, ≤, 0, 1, -, ∧, ∨⟩

with 𝔹 = {0, 1} and the operations as usual ( Thalg 1.2.4. syntax-bitvalalg ).

The integer arithmetic (structure) or linearly ordered ring of integers

ℨ = ⟨ℤ, 0, 1, +, -, ·, ≤⟩

with

ℤ = {…, −2, −1, 0, 1, 2, …}

and the operations as usual ( Thalg 1.2.5 syntax-numberstrucs ). Note, that “-” is the unary negator “-◯ 1 ”, not the binary subtraction “◯ 1 − ◯ 2 ”, which is an additional definition

◯ 1 − ◯ 2 := [ \begin{matrix}ℤ × ℤ ⟶ ℤ \\ ⟨x, y⟩ ↦ x + (-y) \end{matrix} ]

The rational arithmetic (structure) or linearly ordered field of rational numbers ( Thalg 1.2.5 syntax-numberstrucs )

𝔔 = ⟨ℚ, 0, 1, +, -, ·, /, ≤⟩

with

ℚ := \{ \frac{n}{d} n, d ∈ ℤ, d ≠ 0 \}

again with “-◯ 1 ” as unary negator and ◯ 1 ^{-1} as unary inverter. Subtraction and division are derived operators:

\begin{aligned}◯ 1 − ◯ 2 & := & [ \begin{matrix}ℚ × ℚ ⟶ ℚ \\ ⟨ \frac{n1}{d1} , \frac{n2}{d2} ⟩ ↦ \frac{(n1·d2)−(n2·d1)}{d1·d2} \end{matrix} ] \\ ◯ 1 /◯ 2 & := & [ \begin{matrix}ℚ × ℚ −−→ ℚ \\ ⟨ \frac{n1}{d1} , \frac{n2}{d2} ⟩ ↦ \frac{n1·d2}{d1·n1} \end{matrix} ] \end{aligned}

23.5 Finite arithmetic structures

23.5.1 Definition Let k be a positive integer. We define

ℨ_{k} := ⟨ℤ_{k}, 0k̂, 1k̂, +k̂, ·k̂, -k̂, ≤k̂⟩

the modulo–k arithmetic (structure). For every x ∈ ℤ, the equivalence class of x modulo k is

[ x]_{k} := {x + k · y | y ∈ ℤ}

The carrier of ℨ_{k} or modulo–k quotient (class) is

ℤ_{k} := {[ x]_{k} | x ∈ ℤ}

The operations of ℨ_{k} are then as follows:

0k̂ := [ 0 ]_{k}
1k̂ := [ 1 ]_{k}
◯ 1 +k̂ ◯ 2 := [ \begin{matrix}ℤ_{k} × ℤ_{k} ⟶ ℤ_{k} \\ ⟨[ x]_{k}, [ y]_{k}⟩ ↦ [ x + y]_{k} \end{matrix} ]

◯ 1 ·k̂ ◯ 2 := [ \begin{matrix}ℤ_{k} × ℤ_{k} ⟶ ℤ_{k} \\ ⟨[ x]_{k}, [ y]_{k}⟩ ↦ [ x · y]_{k} \end{matrix} ]

-k̂ ◯ 1 := [ \begin{matrix}ℤ_{k} ⟶ ℤ_{k} \\ [ x]_{k} ↦ [ -x]_{k} \end{matrix} ]

◯ 1 ≤k̂ ◯ 2 := [ \begin{matrix}ℤ_{k} ↭ ℤ_{k} \\ ⟨[ x]_{k}, [ y]_{k}⟩ \\ ↝ \begin{cases}true  if [ x]_{k} = [ 0 ]_{k} \\ false  if [ y]_{k} = [ 0 ]_{k} \\ [ x − 1 ]_{k} ≤k̂ [ y − 1 ]_{k} & else \end{cases} \end{matrix} ]

23.5.2 Definition For every positive integer k we define

div_{k} := [ \begin{matrix}ℕ ⟶ ℕ \\ n ↦ \begin{cases}n & if n < k \\ mod_{k}(n − k) & if n ≥ k \end{cases} \end{matrix} ]

mod_{k} := [ \begin{matrix}ℕ ⟶ ℕ \\ n ↦ \begin{cases}n & if n < k \\ mod_{k}(n − k) & if n ≥ k \end{cases} \end{matrix} ]

23.5.3 Lemma Let k be a positive integer. For all n, m ∈ ℕ holds:

( ; 𝅝 ; ) mod_{k}(n) < k

( ; 𝅝 ; ) n = div_{k}(x) · k + mod_{k}(x)

( ; 𝅝 ; ) [ n]_{k} = [ mod_{k}(n) ]_{k}

( ; 𝅝 ; ) [ n]_{k} = [ m]_{k} iff mod_{k}(n) = mod_{k}(m)

23.5.4 Definition

Let k be a positive integer. We define

𝔑_{k} := ⟨ℕ_{k}, 0, 1, +_{k}, ·_{k}, -_{k}, ≤_{k}⟩

the k–ary arithmetic (structure) where

ℕ_{k} := {0, 1, …, k − 1}
◯ 1 +_{k} ◯ 2 := [ \begin{matrix}ℕ_{k} × ℕ_{k} ⟶ ℕ_{k} \\ ⟨n, m⟩ ↦ mod_{k}(n + m) \end{matrix} ]

◯ 1 ·_{k} ◯ 2 := [ \begin{matrix}ℕ_{k} × ℕ_{k} ⟶ ℕ_{k} \\ ⟨n, m⟩ ↦ mod_{k}(n · m) \end{matrix} ]

-_{k} ◯ 1 := [ \begin{matrix}ℕ_{k} ⟶ ℕ_{k} \\ n ↦ mod_{k}(k − n) \end{matrix} ]

◯ 1 ≤_{k} ◯ 2 := [ \begin{matrix}ℕ_{k} ↭ ℕ_{k} \\ ⟨n, m⟩ ↝ n ≤ m \end{matrix} ]

23.5.5 Lemma

For every positive integer k holds:

ℨ_{k} ≅ 𝔑_{k}

The isomorphism from ℨ_{k} into 𝔑_{k} is given by

[ \begin{matrix}ℤ_{k} ⟶ ℕ_{k} \\ [ n]_{k} ↦ mod_{k}(n) \end{matrix} ]

and the inverse function is

[ \begin{matrix}ℕ_{k} ⟶ ℤ_{k} \\ n ↦ [ n]_{k} \end{matrix} ]

23.6 Arithmetic of numerals

*** make sure, this is defined first: ◯ 1 ‡ ◯ 2 : C × C^{∗} ⟶ C^{∗} ***

23.6.1 Definition

Let k be a positive integer. We define

ℕ_{k}^{⋆} := \{ ⟨n_{1}, …, n_{d}⟩ \begin{matrix}n_{1}, …, n_{d} ∈ ℕ_{k}, \\ n_{d} ≠ 0 \end{matrix} \}

nat_{k} := [ \begin{matrix}ℕ_{k}^{⋆} ⟶ ℕ \\ ⟨n_{1}, …, n_{d}⟩ ↦ \\ \{ & \begin{matrix}0  if d = 0 \\ n_{1} + k · nat_{k}(⟨n_{2}, …, n_{d}⟩) \\ if d > 0 \end{matrix} \end{matrix} ]

num_{k} := [ \begin{matrix}ℕ ⟶ ℕ_{k}^{⋆} \\ n ↦ \{ \begin{matrix}⟨⟩  if n = 0 \\ mod_{k}(n) ‡ num_{k}(div_{k}(n)) \\ if n > 0 \end{matrix} \end{matrix} ]

nat_{3}(⟨1, 0, 2, 1, 2⟩)

= 1 + 3 · nat_{3}(⟨0, 2, 1, 2⟩)
= 1 + 3 · (0 + 3 · nat_{3}(⟨2, 1, 2⟩))
= 1 + 3 · (0 + 3 · (2 + 3 · nat_{3}(⟨1, 2⟩)))
= 1 + 3 · (0 + 3 · (2 + 3 · (1 + 3 · (nat_{3}(⟨2⟩))))
= 1 + 3 · (0 + 3 · (2 + 3 · (1 + 3 · (2 + 3 · (nat_{3}(⟨⟩)))))
= 1 + 3 · (0 + 3 · (2 + 3 · (1 + 3 · (2 + 3 · 0)))
= 1 + 3 · (0 + 3 · (2 + 3 · (1 + 3 · 2))
= 1 + 3 · (0 + 3 · (2 + 3 · (1 · 3^{0} + 2 · 3^{1}))
= 1 + 3 · (0 + 3 · (2 · 3^{0} + 1 · 3^{1} + 2 · 3^{2}))
= 1 + 3 · (0 · 3^{0} + 2 · 3^{1} + 1 · 3^{2} + 2 · 3^{3})
= 1 · 3^{0} + 0 · 3^{1} + 2 · 3^{2} + 1 · 3^{3} + 2 · 3^{4}
= 1 · 1 + 0 · 3 + 2 · 9 + 1 · 27 + 2 · 81
= 1 + 0 + 18 + 27 + 162
= 208

num_{3}(208)

= mod_{3}(208) ‡ num_{3}(div_{3}(208))
= 1 ‡ num_{3}(69)
= 1 ‡ (mod_{3}(69) ‡ num_{3}(div_{3}(69)))
= 1 ‡ (0 ‡ num_{3}(23))
= 1 ‡ (0 ‡ (mod_{3}(23) ‡ num_{3}(div_{3}(23))))
= 1 ‡ (0 ‡ (2 ‡ num_{3}(7)))
= 1 ‡ (0 ‡ (2 ‡ (mod_{3}(7) ‡ num_{3}(div_{3}(7)))))
= 1 ‡ (0 ‡ (2 ‡ (1 ‡ num_{3}(2))))
= 1 ‡ (0 ‡ (2 ‡ (1 ‡ (mod_{3}(2) ‡ num_{3}(div_{3}(2))))))
= 1 ‡ (0 ‡ (2 ‡ (1 ‡ (2 ‡ num_{3}(0)))))
= 1 ‡ (0 ‡ (2 ‡ (1 ‡ (2 ‡ ⟨⟩))))
= ⟨1, 0, 2, 1, 2⟩

23.6.3 Lemma

num_{k} and nat_{k} are mutually inverse bijections, for every positive integer k.

Examples of ordinary structures

23.6.4 Example

Standard examples of ordinary structures are:

(1) The boolean or bit value algebra ( Thalg 1.2.4. syntax-bitvalalg )

𝔅 = ⟨𝔹, ≤, 0, 1, -, ∧, ∨⟩

with 𝔹 = {0, 1}.

(2) The linearly ordered ring of integers ( Thalg 1.2.5 syntax-numberstrucs )

ℨ = ⟨ℤ, 0, 1, +, −, ·, ≤⟩

with ℤ = {…, −2, −1, 0, 1, 2, …}. In daily live “−” is used for both, the binary subtraction ◯ 1 − ◯ 2 and the unary negation −◯ 1 of integers. But since we need to be precise here, we must

make a choice and take it to be the subtraction.

(3) The linearly ordered field of rational numbers ( Thalg 1.2.5 syntax-numberstrucs )

𝔔 = ⟨ℚ, 0, 1, +, −, ·, /, ≤⟩

again with “−” as binary subtraction and “/” as the binary division operator.

23.6.5 Remark

Let us take one of the previous example structures, say ℨ.

(1) We used the compact form “⟨ℤ, 0, 1, +, −, ·, ≤⟩” of definition 15.3.1 to represent ℨ, which is the common form. In the original version “⟨Car, Op⟩” this is

ℨ = ⟨Car (ℨ) , Op (ℨ)⟩ = ⟨{ℤ} , {0, 1, +, −, ·, ≤}⟩

(2) The signatures of the operators in ℨ are

sig(0) = sig(1) = ℤ sig(≤) = ⟨ℤ, ℤ⟩
sig(+) = sig(−) = sig(·) = ⟨⟨ℤ, ℤ⟩, ℤ⟩

23.6.6 Remark

We just stated 𝔔 in 26.6.4(3) as a example of an ordinary structure, which is a very common thing to do. But in fact, this is not a structure in the strict sense of definition 15.3.1. The division ◯ 1 /◯ 2 is a binary operator on ℚ, similar to the other three functions (+, −, ·). But the division is not defined on its whole domain ℚ × ℚ, because the zero divisions “x/0” are not defined. In other words, the division is not a (total) function

◯ 1 /◯ 2 : ℚ × ℚ ⟶ ℚ

but a partial function (see Thalg 5.7.15 ).

◯ 1 /◯ 2 : ℚ × ℚ −−→ ℚ

Partial functions however are no ordinary operations according to definition 15.2.2. So how could we modify things so that important examples like 𝔔 fit into the design? ( ; 𝅝 ; ) One approach would be to generalize and to replace “⟶” by

“−−→” in the earlier definitions of “ordinary operations” and “structures”.

( ; 𝅝 ; ) Alternatively, we could stick to the definitions so far and just modify 𝔔. We could add a second carrier ℚ′ := ℚ \ {0} and define

𝔔 := ⟨ℚ, ℚ′, 0, 1, +, −, ·, /⟩

where ◯ 1 /◯ 2 : ℚ × ℚ′ ⟶ ℚ would be a proper (total) function again.

Both approaches have their own drawbacks, but we will not discuss and look for a general solution of this problem here. Standard introductory texts into predicate logic usually stick to the total functions, the partial function concept is more used by computer scientists than traditional mathematicians and we will follow this tradition here. On the other hand, we don’t want to dispel partial functions alltogether, because too many structures in daily live do use partial functions more or less explicitely. Therefore, let us agree on the following.

23.6.7 Convention

Occasionally, we extend the definition of ordinary operators (15.2.2) and ordinary structures (15.3.1) to include n–ary partial function f : D_{1} × … × D_{n} −−→ C as well. But we put the label “partial” on all these special cases, and the core argumentation will not be affected and sticks to the original definitions.

23.6.8 Example

As another standard structure in mathematics, let us consider the complete boolean algebra induced by a given class C, the power algebra ( Thalg 6.2.2 )

𝔓(C) := ⟨P (C) , ⊆, ∅, 1, ∩, ∪, ⋂, ⋃, ∁⟩

where 1 := C is the full set, ∁◯ 1 := C \ ◯ 1 the complement function and ⋂ ∅ := C. Recall, that the operations have the following types

◯ 1 ⊑ ◯ 2 : P (C) ↭ P (C) \begin{matrix}⋂ & ◯ 1 \\ ⋃ & ◯ 2 \end{matrix} \} : P (P (C)) ⟶ P (C)

\begin{matrix}∅ \\ 1 \end{matrix} \} : P (C) \begin{matrix}◯ 1 ∩ ◯ 2 \\ ◯ 1 ∪ ◯ 2 \end{matrix} \} : P (C) × P (C) ⟶ P (C)

So actually, we have not just one carrier P (C), but a second one P (P (C)), namely as the domain of ⋂ and ⋃. Therefore we need to write the whole structure as

𝔓(C) := ⟨P (C) , P (P (C)) , ⊆, ∅, 1, ∩, ∪, ⋂, ⋃, ∁⟩

to meet the structure definition in 15.3.1. Also note, that C itself occurs not as a carrier, but as a constant 1.

23.6.9 Example

For every non–empty (and usually finite) set C we define

𝔖𝔱𝔯𝔦𝔫𝔤(C) the string structure of C

as the structure with the following components:

(1) Car (𝔖𝔱𝔯𝔦𝔫𝔤(C)) comprises three carrier classes, namely:

(a) C is the set of characters

(b) C^{∗} = {⟨c_{1}, …, c_{n}⟩ | c_{1}, …, c_{n} ∈ C for n ∈ ℕ} the tuples on C, which are called strings in this context

(c) ℕ = {0, 1, 2, …} is the set of natural numbers

(2) Op (𝔖𝔱𝔯𝔦𝔫𝔤(C)) is made of:

( ; 𝅗𝅥 ; ) ◯ 1 ‡ ◯ 2 := [ \begin{matrix}C × C^{∗} ⟶ C^{∗} \\ ⟨c, ⟨c_{1}, …, c_{n}⟩⟩ \\ ↦ ⟨c, c_{1}, …, c_{n}⟩ \end{matrix} ]

the push ^{21} function, where c ‡ ⟨c_{1}, …, c_{n}⟩ pushes c onto ⟨c_{1}, …, c_{n}⟩

( ; 𝅗𝅥 ; ) ◯ 1 † ◯ 2 := [ \begin{matrix}C^{∗} × C^{∗} ⟶ C^{∗} \\ ⟨⟨c_{1}, …, c_{n}⟩, ⟨c′_{1}, …, c′_{n}⟩⟩ \\ ↦ ⟨c_{1}, …, c_{n}, c′_{1}, …, c′_{n}⟩ \end{matrix} ]

the concatenation

( ; 𝅗𝅥 ; ) clip := [ \begin{matrix}C^{∗} × ℕ × ℕ ⟶ C^{∗} \\ ⟨⟨c_{1}, …, c_{n}⟩, i, j⟩ \\ ↦ \begin{cases}⟨c_{i}, …, c_{j}⟩ & if 1 ≤ i ≤ j ≤ n \\ ⟨⟩ & else \end{cases} \end{matrix} ]

( ; 𝅗𝅥 ; ) cut := [ \begin{matrix}C^{∗} × ℕ × ℕ −−→ C^{∗} \\ ⟨⟨c_{1}, …, c_{n}⟩, i, j⟩ \\ ↦ \begin{cases}⟨c_{1}, …, c_{i−1}, c_{j+1}, …, c_{n}⟩ & if 1 ≤ i ≤ j ≤ n \\ undefined & else \end{cases} \end{matrix} ]

( ; 𝅗𝅥 ; ) ref := [ \begin{matrix}C^{∗} × ℕ −−→ C^{∗} \\ ⟨⟨c_{1}, …, c_{n}⟩, i⟩ ↦ c_{i} \end{matrix} ]

( ; 𝅗𝅥 ; ) rem := [ \begin{matrix}ℕ × C^{∗} ⟶ C^{∗} \\ ⟨i, ⟨c_{1}, …, c_{n}⟩⟩ \\ ↦ \begin{cases}⟨c_{1}, …, c_{i−1}, c_{i+1}, …, c_{n}⟩ & if 1 ≤ i ≤ n \\ ⟨c_{1}, …, c_{n}⟩ & else \end{cases} \end{matrix} ]

rem(i, ⟨c_{1}, …, c_{n}⟩) removes the i–th component from ⟨c_{1}, …, c_{n}⟩

( ; 𝅗𝅥 ; ) del := [ \begin{matrix}C × C^{∗} ⟶ C^{∗} \\ ⟨c, ⟨c_{1}, …, c_{n}⟩⟩ \\ \{ & ⟨⟩  if n = 0 del(c, ⟨c_{2}, … c_{n}⟩)  if c_{1} = c c ‡ del(c, ⟨c_{2}, … c_{n}⟩) if c_{1} ≠ c \end{matrix} ]

del(c, ⟨c_{1}, …, c_{n}⟩) deletes all occurences of c in ⟨c_{1}, …, c_{n}⟩

( ; 𝅗𝅥 ; ) upd := [ \begin{matrix}C^{∗} × ℕ × C ⟶ C^{∗} \\ ⟨⟨c_{1}, …, c_{n}⟩, i, c⟩ \\ ↦ \begin{cases}⟨c_{1}, …, c_{i−1}, cc_{i+1}, …, c_{n}⟩ & if 1 ≤ i ≤ n \\ ⟨c_{1}, …, c_{n}⟩ & else \end{cases} \end{matrix} ]

upd(⟨c_{1}, …, c_{n}⟩, i, c) updates ⟨c_{1}, …, c_{n}⟩ at i with c ( ; 𝅗𝅥 ; ) length := ∗ ∗ ∗CONTINUEHERE ∗ ∗∗ ( ; 𝅗𝅥 ; ) occ : C × C^{∗} ⟶ ℕ occurences

*** n–m–ary functions; Euclids function, push and pop in stacks ***

23.6.10 Remark

*** ambiguities with structure representations: the order ⟨𝔹, ≤, 0, 1, -, ∧, ∨⟩ or ⟨𝔹, ≤, 0, 1, ∧, ∨, -⟩... groups either as ⟨G, op⟩ with implicitely defined neu and inv, or ⟨G, op, neu, inv⟩, boolean algebras (B, ≤) or (B, +, −) the implicitely defined functions may be easily definable in mathematics, but in computer science they often require an entire new implementation: stack, queue, linked list, double linked list, array ***

23.6.11 Example propositional logic

Let A be a given set of identifiers. The class

Form (A)

of all propositional formulas on A is recursively defined to comprise the following six kinds of expressions:

21The title “push” is standard for stacks. It is “cons” in Lisp, “◯ 1 :: ◯ 2 ” in ML etc.

α  f  t  [ φ_{1} ∧ … ∧ φ_{n} ]  [ φ_{1} ∨ … ∨ φ_{n} ]  ¬φ

for all α ∈ A and φ, φ_{1}, …, φ_{n} ∈ Form (A). Proposional logic is known to be decidable in the sense that there is an algorithm (i.e. a computable function)

taut : Form (A) ⟶ 𝔹

that takes any formula φ and returns a 1, if φ is a tautology (i.e. a valid formula^{22}) and 0, otherwise. Next we define a whole structure on Form (A) again by re– introducing the formula constructions ∧, ∨, ¬ as operators

\begin{matrix}◯ 1 ⊓ ◯ 2 \\ ◯ 1 ⊔ ◯ 2 \end{matrix} \} : Form (A) × Form (A) ⟶ Form (A)
¬◯ 1 : Form (A) ⟶ FormA

with

φ ⊓ ψ := [ φ ∧ ψ]  φ ⊔ ψ := [ φ ∨ ψ]  ¬φ := ¬φ

for all formulas φ, ψ ∈ Form (A). The usual subvalence (more often called entailment or consequence) and equivalence relations ⇒ and ⇔ on these propositional formulas are defined by

φ ⇒ ψ iff taut ([ ¬φ ∨ ψ]) = 1
φ ⇔ ψ iff taut ([ [ ¬φ ∧ ¬ψ] ∨ [ φ ∧ ψ] ]) = 1

The whole structure alltogether is the default propositional formula algebra on A,

𝔉𝔬𝔯𝔪 (A) := ⟨Form (A) , ⇒, ⇔, f, t, ⊓, ⊔, ¬⟩

which is an example of what we call a quasi–boolean algebra.^{23}

*** Update the following. Should become a “theory of collections” with two implementations ***

23.6.12 Remark

In the next example 26.6.13, let us consider a structure similar to the set field structure 𝔖𝔢𝔱 (A) from 15.3.6, but this time only on the finite subclasses of A. This is often more close to storage situations, where collections at any time always involve just finite amounts of items. However, a set is already an abstraction in the sense that any internal order between the elements is neglected, whereas in many filing or storage situations, the items are kept in a certain order, one after another. So instead of finite sets, we could have used tuples as collectors, and we introduce an according structure 𝔗𝔲𝔭 (A) in 26.6.14. In computer jargon we would say that 𝔖𝔢𝔱 (A) and 𝔗𝔲𝔭 (A) are two different implementations of the storage problem. Later on, when we developed the formal concept of a (proto–)theory, we are able to define the storage problem as such a proto–theory (see ??). We will then be able to give a precise justification to the idea that 𝔖𝔢𝔱 (A) and 𝔗𝔲𝔭 (A) are two implementations of this abstract problem; or, as it is called in mathematical logic, that the are two models of the given (proto–)theory.

23.6.13 Example

Given a non–empty class A. Then the finite set structure on A is

𝔉𝔦𝔫 (A) := ⟨A, Fin (A) , ∅, ∈, ⊆, ∩, ∪, \⟩

where

Fin (A) := {S ⊆ A | S is finite }

and the operators are the usual operators on classes restricted to A and Fin (A). 𝔉𝔦𝔫 (A) is well–defined this way, because intersections, unions and differences of two finite classes are always finite again. Note, that A itself might be infinite and that 𝔉𝔦𝔫 (A) doesn’t have the full set constant 1 which is part of 𝔖𝔢𝔱 (A).

23.6.14 Example

Given a non–empty class A. The tuple structure of A is

𝔗𝔲𝔭 (A) := ⟨A, A^{∗}, ⟨⟩, Member, Subset, Empty, †, union, subtract⟩

made of

( ; 𝅝 ; ) Two carriers:

( ; 𝅗𝅥 ; ) A the item class

( ; 𝅗𝅥 ; ) A^{∗} = {⟨a_{1}, …, a_{n}⟩ | a_{1}, …, a_{n} ∈ A for n ∈ ℕ} the tuple

class

( ; 𝅝 ; ) A couple of ordinary operators: ( ; 𝅗𝅥 ; ) The membership relation

Mem := [ \begin{matrix}A ↭ A^{∗} \\ ⟨a, ⟨a_{1}, …, a_{n}⟩⟩ ↝ ( \begin{matrix}n = 0 or \\ a = a_{1} or \\ Mem & (a, ⟨a_{2}, …, a_{n}⟩) \end{matrix} ) \end{matrix} ]

( ; 𝅗𝅥 ; ) The attach or push function

◯ 1 ‡ ◯ 2 := [ \begin{matrix}A × A^{∗} ⟶ A^{∗} \\ ⟨a, ⟨a_{1}, …, a_{n}⟩⟩ ↦ ⟨a, a_{1}, …, a_{n}⟩ \end{matrix} ]

( ; 𝅗𝅥 ; ) The delete function

del := [ \begin{matrix}A × A^{∗} ⟶ A^{∗} \\ ⟨a, ⟨a_{1}, …, a_{n}⟩⟩ ↦ \\ \{ & ⟨⟩  if n = 0 del (a, ⟨a_{2}, …, a_{n}⟩)  if a = a_{1} a_{1} ‡ del (a, ⟨a_{2}, …, a_{n}⟩) if a ≠ a_{1} \end{matrix} ]

( ; 𝅗𝅥 ; ) The inclusion or subset relation

22 Recall the following straight–forward implementation of taut. Given the formula φ, say φ = [ A ∨ ¬B ]. First, all the atomic formulas of φ are gathered, here this is {A, B}. There are four different boolean or bit valuations, namely

[\begin{matrix}A ↦ & f \\ B ↦ & f \end{matrix} ] [\begin{matrix}A ↦ & t \\ B ↦ & f \end{matrix}] [\begin{matrix}A ↦ & f \\ B ↦ & t \end{matrix}] [\begin{matrix}A ↦ & t \\ B ↦ & t \end{matrix}]

For each of these four records ω, we first produce the valuation val (φ, ω), that replaces the atomic formulas A, B in φ by the according values f, t assigned by ω. And then we evaluate this atom–free formula according to the semantics of 𝔅 (15.3.3), i.e. we compute ev (val (φ, ω)). For example

ev (val ([ A ∨ ¬B ], [\begin{matrix}A ↦ & f \\ B ↦ & f \end{matrix} ])) = ev (f ∨ -f) = f ∨ t = t

So in this first of the four cases, the result is t, but for the third record, the result becomes f. And therefore, taut (φ) is itself 0, i.e. false, because φ is by definion a tautology, if it is true for all its possible valuations (or models).

23See Thalg 6.4 and Thalg 7.6.2(4) .

Incl := [ \begin{matrix}A^{∗} ↭ A^{∗} \\ ⟨⟨a_{1}, …, a_{n}⟩, b⟩ ↝ \\ ( & n = 0 or ( \begin{matrix}Mem & (a_{1}, b) & and \\ Incl & (⟨a_{2}, …, a_{n}⟩, b) \end{matrix} ) & ) \end{matrix} ]

( ; 𝅗𝅥 ; ) The concatenation

◯ 1 †◯ 2 := [ \begin{matrix}A^{∗} × A^{∗} ⟶ A^{∗} \\ ⟨⟨a_{1}, …, a_{m}⟩, ⟨b_{1}, …, b_{n}⟩⟩ ↦ ⟨a_{1}, …, a_{m}, b_{1}, …, b_{n}⟩ \end{matrix} ]

( ; 𝅗𝅥 ; ) *** CONTINUE HERE ***

23.6.15 Example

*** maybe obsolete *** 24Let S = {cabbage, goat, man, wolf} *** CONTINUE HERE ***

survive : P (S) ⟶ P (S) Stable : Pty (P (S)) ◯ 1 ∈ ◯ 2 : S ∈ P (S) ◯ 1 ⊆ ◯ 2 : P (S) ⊆ P (S)

23.6.16 Example

From an abstract point of view, a structure is the central and most important and basic concept in mathematics.^{25} But in many and even simple situations, it is a tricky business to formulate things accordingly. For example, consider the stack, which is quite a trivial, but very important data structure in computer science.

A stack *** CONTINUE HERE *** *** first problem: pop has a binary result: pop : Stack ⟶ Stack × Item; Second problem: pop is a partial function only. ***

23.6.17 Example

For an important mathematical example of a structure with two carriers let us fix some positive integer d. Then

ℜ^{d} = ⟨ℝ, ℝ^{d}, 0, 1, +, ·, ≤, + + +, ◯_{1} ◯_{2} , d, ∥ ◯_{1} ∥⟩

is the d–dimensional Euclidean space, where ( ; 𝅝 ; ) ⟨ℝ, 0, 1, +, ·, ≤⟩ is the structure ℜ from 15.3.4

( ; 𝅝 ; ) ℝ^{d} := {⟨x_{1}, …, x_{d}⟩ |≠ xd ∈ ℝ} is the vector class

( ; 𝅝 ; ) the remaining operators are^{26} ( ; 𝅗𝅥 ; ) ◯ 1 + + + ◯ 2 : ℝ^{d} × ℝ^{d} ⟶ ℝ^{d} the vector addition ( ; 𝅗𝅥 ; ) ◯ 1 ◯ 2 : ℝ × ℝ^{d} ⟶ ℝ^{d} the scalar product ^{27} ( ; 𝅗𝅥 ; ) d : ℝ^{d} × ℝ^{d} ⟶ ℝ the Euclidean distance function ( ; 𝅗𝅥 ; ) ∥ ◯ 1 ∥: ℝ^{d} ⟶ ℝ the Euclidean norm function 23.6.18 Example predicate–logical algebra

A very important ordinary structure for us later on is the following one with two carriers. We just mention it here, a proper introduction is given in ???? .

Given a proper schema X = [X_{i}|i ∈ I], the predicate–logical (theory) algebra of (relations on) X

𝔓𝔏 (X) = ⟨I, Prel (X) , ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂, Id⟩

is made of:

( ; 𝅝 ; ) Two carrier classes ( ; 𝅗𝅥 ; ) I the index or attribute class ( ; 𝅗𝅥 ; ) Prel (X) the projection relation class on X ( Thalg 17.8.1 )

( ; 𝅝 ; ) Eight operators ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂, Id, where ( ; 𝅗𝅥 ; ) ⊥, ⊤, ⊓, ⊔, ¬ constitute a quasi–boolean algebra ( Thalg ) on

Prel (X) (even a complete one Thalg 23.1.1 )

( ; 𝅗𝅥 ; ) the (singular) supremum/infimum eliminators ( Thalg 21.4.1 ) are of type

\begin{matrix}◯ 1 ⇂ ◯ 2 \\ ◯ 1 ↾ ◯ 2 \end{matrix} \} : Prel (X) × I ⟶ Prel (X)

( ; 𝅗𝅥 ; ) Id_{( ◯ 1 , ◯ 2 )} : I × I ⟶ Prel (X) returns an identity relation for any two attributes.

23.7 A selection of theories

Groups

Definition (G1)

A group is a structure

                                                                                              𝔊 = ⟨G, neu, op, inv⟩

where

( ; 𝅝 ; ) G is a class

( ; 𝅝 ; ) neu : G is a constant, i.e. a fixed member of G, called the

neutral element ( ; 𝅝 ; ) op : G × G ⟶ G is a binary function on G, the operator ( ; 𝅝 ; ) inv : G ⟶ G is an unary function, called the inverter

such that the following properties are satisfied:

( ; 𝅝 ; ) op(neu, x) = op(x, neu) for all x ∈ G

( ; 𝅝 ; ) *** CONTINUE HERE ***

Example (G2)

*** CONTINUE HERE ***

Example (G3)

*** CONTINUE HERE ***

Theorem (G4)

*** CONTINUE HERE ***

Rings

*** CONTINUE HERE ***

24The idea for this example is borrowed from John E. Hopcroft, Jeffrey D. Ullman, Introduction to automata theory, languages, and computation, 1979, p.14ff

25This statement certainly needs a proper justification and we discuss it again in ???? , when we have the concept of a theory available to further explain this point.

26 In order to be complete, let us recall the actual definitions of these operators. For each n ∈ ℝ and all x, y ∈ ℝ^{d}

x + + + y := ⟨x_{1} + y_{1}, …, x_{d} + y_{d}⟩  nx := ⟨n · x_{1}, …, n · x_{d}⟩  d (x, y) := \sqrt{(x_{1} − y_{1})^{2} + … + (x_{d} − y_{d})^{2}}  ∥x∥:= \sqrt{x_{1}^{2} + … + x_{d}^{2}}

27For n ∈ ℝ and x ∈ ℝ^{d} one usually writes nx for the product, so the actual operation symbol is ◯ 1 ◯ 2 in our placeholder notation (see Thalg 4.3.1 and Thalg 5.2.4 ).

*** Example: integer arithmetic ***

*** Example: boolean/bit and byte arithmetic ***

Modules and vector spaces

*** CONTINUE HERE ***

Stacks

*** CONTINUE HERE ***

Arrays

23.7.1 Definition An array structure has the following ingredients: ( ; 𝅝 ; ) Three carrier classes:

( ; 𝅗𝅥 ; ) Item items ( ; 𝅗𝅥 ; ) Array arrays ( ; 𝅗𝅥 ; ) ℕ natural numbers

( ; 𝅝 ; ) Operations:

( ; 𝅗𝅥 ; ) it : Item default item ( ; 𝅗𝅥 ; ) make : ℕ ⟶ Array returns arrays of certain length where

each component is the default item ( ; 𝅗𝅥 ; ) len : Array ⟶ ℕ length ( ; 𝅗𝅥 ; ) ref : Array×ℕ ⟶ Item refers to the n–th component of the

array (if the n–th component is not specified, the default item is returned)

( ; 𝅗𝅥 ; ) upd : Array × ℕ × Item ⟶ Array update function It satisfies the following laws: ( ; 𝅝 ; ) ref(make(n), i) = it for all n and i ≤ n

( ; 𝅝 ; ) len(make(n)) = n

( ; 𝅝 ; ) ref(a, i) = it for all i ∉ {0, 1, …, len(a)}

( ; 𝅝 ; ) *** CONTINUE HERE ***

*** CONTINUE HERE ***

23.7.2 Remark stack

*** Usually, the three operations of a stack are

pop and push ***

*** Proto–theory: A is subclass of B ***

PredLogInTheoAlgRel 149

Figure 17: Proto–theories for semi–group, monoid and group structures

𝔗sgr , the proto–theory for semi–groups, is the proto–theory 𝔗grp := ⟨𝔖, 𝔙, Ax⟩, where

𝔖 := ( \frac{G}{o : G × G ⟶ G (* the binary operator *)} ) 𝔙 := ( \begin{matrix}x : G \\ y : G \\ z : G \end{matrix} ) Ax := \{∀x . ∀y . ∀z . [ o(o(x, y), z) = o(x, o(y, z)) ] (* associativity of o *) \} 𝔗mon , the proto–theory for monoids, is the proto–theory 𝔗mon := ⟨𝔖, 𝔙, Ax⟩, where

𝔖 := ( \begin{matrix}G \\ n : G (* neutral element *) \\ o : G × G ⟶ G (* the binary operator *) \end{matrix} ) 𝔙 := ( \begin{matrix}x : G \\ y : G \\ z : G \end{matrix} ) Ax := \{ \begin{matrix}∀x . ∀y . ∀z . [ o(o(x, y), z) = o(x, o(y, z)) ] (* associativity of o *) \\ ∀x . [ [ o(x, n) = x ] ∧ [ o(n, x) = x ] ] (* n is neutral element *) \end{matrix} \} 𝔗grp , the proto–theory for groups, is the proto–theory 𝔗grp := ⟨𝔖, 𝔙, Ax⟩, where

𝔖 := ( \begin{matrix}G \\ n : G (* neutral element *) \\ o : G × G ⟶ G (* the binary operator *) \\ i : G ⟶ G (* inverter *) \end{matrix} ) 𝔙 := ( \begin{matrix}x : G \\ y : G \\ z : G \end{matrix} ) Ax := \{ \begin{matrix}∀x . ∀y . ∀z . [ o(o(x, y), z) = o(x, o(y, z)) ] (* associativity of o *) \\ ∀x . [ [ o(x, n) = x ] ∧ [ o(n, x) = x ] ] (* n is neutral element *) \\ ∀x . [ [ o(x, i(x)) = n ] ∧ [ o(i(x), x) = n ] ] (* i is the inverter *) \end{matrix} \} 𝔗abel , the proto–theory for abelian groups, is the proto–theory 𝔗abel := ⟨𝔖, 𝔙, Ax⟩, where

𝔖 := ( \begin{matrix}G \\ n : G  (* neutral element *) \\ o : G × G ⟶ G (* the binary operator *) \\ i : G ⟶ G  (* inverter *) \end{matrix} ) 𝔙 := ( \begin{matrix}x : G \\ y : G \\ z : G \end{matrix} ) Ax := \{ \begin{matrix}∀x . ∀y . ∀z . [ o(o(x, y), z) = o(x, o(y, z)) ] (* associativity of o *) \\ ∀x . [ [ o(x, n) = x ] ∧ [ o(n, x) = x ] ]  (* n is neutral element *) \\ ∀x . [ [ o(x, i(x)) = n ] ∧ [ o(i(x), x) = n ] ] (* i is the inverter *) \\ ∀x . ∀y . [ o(x, y) = o(y, x) ]  (* o is commutative *) \end{matrix} \}

PredLogInTheoAlgRel 150

Figure 18: Proto–theories for ring structures

𝔗ring , the proto–theory for rings, is the proto–theory 𝔗ring := ⟨𝔖, 𝔙, Ax⟩, where

𝔖 := ( \begin{matrix}R \\ zero : R  (* zero element *) \\ add : R × R ⟶ R  (* addition *) \\ neg : R ⟶ R  (* negation or additive inverse *) \\ mult : R × R ⟶ R  (* multiplication *) \end{matrix} )  𝔙 := ( \begin{matrix}x : R \\ y : R \\ z : R \end{matrix} )
Ax := \{ \begin{matrix}(* 1. ⟨R, zero, add, neg⟩ is an abelian group: *) \\ ∀x . ∀y . ∀z . [ add(add(x, y), z) = add(x, add(y, z)) ]  (* addition is associative *) \\ ∀x . ∀y . [ add(x, y) = add(y, x) ]  (* addition is commutative *) \\ ∀x . [ [ add(x, zero) = x ] ∧ [ add(zero, x) = x ] ]  (* zero is additive neutral *) \\ ∀x . [ [ add(x, neg(x)) = zero ] ∧ [ add(neg(x), x) = zero ] ]  (* neg is the additive inverse *) \\ (* 2. ⟨R, mult⟩ is semi–group *) \\ ∀x . ∀y . ∀z . [ mult(mult(x, y), z) = mult(x, mult(y, z)) ]  (* multiplication is associative *) \\ (* 3. mult distributes over add *) \\ ∀x . ∀y . ∀z . [ [ mult(x, add(y, z)) = add(mult(x, y), mult(x, z)) ] ∧ [ mult(add(x, y), z) = add(mult(x, z), mult(y, z)) ] ] \end{matrix} \}

𝔗field , the proto–theory for fields, is the proto–theory 𝔗field := ⟨𝔖, 𝔙, Ax⟩, where

𝔖 := ( \begin{matrix}R \\ zero : R  (* zero element *) \\ unit : R  (* unit element *) \\ add : R × R ⟶ R  (* addition *) \\ mult : R × R ⟶ R  (* multiplication *) \\ neg : R ⟶ R  (* negation *) \\ inv : R −−→ R  (* inversion *) \end{matrix} )  𝔙 := ( \begin{matrix}x : R \\ y : R \\ z : R \end{matrix} )
Ax := \{ \begin{matrix}(* 1. ⟨R, zero, add, neg, mult⟩ is a ring: *) \\ ∀x . ∀y . ∀z . [ add(add(x, y), z) = add(x, add(y, z)) ]  (* addition is associative *) \\ ∀x . ∀y . [ add(x, y) = add(y, x) ]  (* addition is commutative *) \\ ∀x . [ [ add(x, zero) = x ] ∧ [ add(zero, x) = x ] ]  (* zero is additive neutral *) \\ ∀x . [ [ add(x, neg(x)) = zero ] ∧ [ add(neg(x), x) = zero ] ]  (* neg is the additive inverse *) \\ ∀x . ∀y . ∀z . [ mult(mult(x, y), z) = mult(x, mult(y, z)) ]  (* multiplication is associative *) \\ ∀x . ∀y . ∀z . [ [ mult(x, add(y, z)) = add(mult(x, y), mult(x, z)) ] ∧ [ mult(add(x, y), z) = add(mult(x, z), mult(y, z)) ] ] (* distrib. *) \\ (* 2. The ring has a unit, is commutative, no zero divisors and each non–zero element has a multiplicative inverse: *) \\ ∀x . [ [ mult(x, unit) = x ] ∧ [ mult(unit, x) = x ] ]  (* unit is multiplicative neutral *) \\ ∀x . ∀y . [ mult(x, y) = mult(y, x) ]  (* mult is commutative *) \\ ∀x . ∀y . [ [ mult(x, y) = zero ] → [ [ x = zero ] ∨ [ y = zero ] ] ]  (* there are no zero divisors *) \\ ∀x . [ ¬[ x = zero ] → [ mult(x, inv(x)) = unit ] ]  (* inv is the multiplicative inverse for all non–zero elements *) \end{matrix} \}

Figure 19: module

a Signature:

𝔖module := ( \begin{matrix}R (* ring elements *) , M (* module elements *) \\ zero : R  (* ring zero element *) \\ unit : R  (* ring unit element *) \\ add : R × R ⟶ R  (* ring addition *) \\ mult : R × R ⟶ R  (* ring multiplication *) \\ neg : R ⟶ R  (* ring negation *) \\ mzero : M  (* module zero element *) \\ madd : M × M ⟶ M  (* module addition *) \\ mneg : M ⟶ M  (* module negation *) \\ smult : R × M ⟶ M (* scalar multiplication *) \end{matrix} )  𝔙module := ( \begin{matrix}x : R \\ y : R \\ z : R \\ a : M \\ b : M \\ c : M \end{matrix} )

Axioms are:

( ; 𝅝 ; ) ⟨R, zero, unit, add, mult, neg⟩ is a ring

( ; 𝅝 ; ) ⟨M, mzero, madd, mneg⟩ is an abelian group ( ; 𝅝 ; ) smult has the following properties

( ; 𝅗𝅥 ; ) ∀x . ∀a . ∀b . [ smult(x, madd(a, b)) = madd(smult(x, a), smult(x, b)) ]
( ; 𝅗𝅥 ; ) ∀x . ∀y . [ smult(add(x, y), a) = madd(smult(x, a), smult(y, a)) ]
( ; 𝅗𝅥 ; ) ∀x . ∀y . [ smult(mult(x, y), a) = smult(x, smult(y, a)) ]
( ; 𝅗𝅥 ; ) ∀a . [ smult(unit, a) = a ]

a*** Saunders/MacLane, p.190 ***

PredLogInTheoAlgRel 152

Figure 20: Quasi–order structures

𝔗qord , the proto–theory quasi–ordered classes, is the proto–theory 𝔗qord := ⟨𝔖qord, 𝔙qord, Axqord⟩, where 𝔖qord := ( \frac{D}{R : D ↭ D} ) 𝔙qord := ( \begin{matrix}x : D \\ y : D \\ z : D \end{matrix} ) Axqord := \{ \begin{matrix}∀x . R(x, x) (* reflexivity *) \\ ∀x . ∀y . ∀z . [ [ R(x, y) ∧ R(y, z) ] → R(x, z) ] (* transitivity *) \end{matrix} \} 𝔗po , the proto–theory of poclasses, is the proto–theory 𝔗po(D, R) := ⟨ℜpo, 𝔙po, Axpo⟩, where

𝔖po := ( \frac{D}{R : D ↭ D} ) 𝔙po := ( \begin{matrix}x : D \\ y : D \\ z : D \end{matrix} ) Axpo := \{ \begin{matrix}∀x . R(x, x) (* reflexivity *) \\ ∀x . ∀y . ∀z . [ [ R(x, y) ∧ R(y, z) ] → R(x, z) ] (* transitivity *) \\ ∀x . ∀y . [ [ R(x, y) ∧ R(y, x) ] → [ x = y ] ] (* anti–symmetry *) \end{matrix} \} 𝔗bpo , the proto–theory of bounded poclasses, is the proto–theory 𝔗bpo(D, R) := ⟨ℜbpo, 𝔙bpo, Axbpo⟩, where

𝔖bpo := ( \begin{matrix}D \\ R : D ↭ D (* the relation *) \\ bot : D (* bottom element *) \\ top : D (* top element *) \end{matrix} ) 𝔙bpo := ( \begin{matrix}x : D \\ y : D \\ z : D \end{matrix} ) Axbpo := Axpo ∪ \{ \begin{matrix}∀x . D(bot, x) (* bot is least element *) \\ ∀x . D(x, top) (* top is greatest element *) \end{matrix} \} 𝔗lat , the proto–theory of lattices, is the proto–theory 𝔗lat(D, R) := ⟨ℜlat, 𝔙lat, Axlat⟩, where

𝔖lat := ( \begin{matrix}D \\ R : D ↭ D  (* the relation *) \\ meet : D × D ⟶ D (* meet operator *) \\ join : D × D ⟶ D (* join operator *) \end{matrix} )  𝔙lat := ( \begin{matrix}x : D \\ y : D \\ z : D \end{matrix} )
Axlat := Axpo ∪ \{ \begin{matrix}∀x . ∀y . [ R(meet(x, y), x) ∧ R(meet(x, y), y) ∧ ∀z . [ [ R(z, x) ∧ R(z, y) ] → R(z, meet(x, y)) ] ]  (* meet is the greatest lower bound *) \\ ∀x . ∀y . [ R(x, join(x, y)) ∧ R(y, join(x, y)) ∧ ∀z . [ [ R(x, z) ∧ R(y, z) ] → R(join(x, y), z) ] ]  (* join is the least upper bound *) \end{matrix} \}

𝔗dlat , the proto–theory of distributive lattices, is the proto–theory 𝔗lat(D, R) := ⟨ℜlat, 𝔙lat, Axlat⟩, where

𝔖dlat := 𝔖lat  𝔙dlat := 𝔙lat  Axdlat := Axlat ∪ \{ \begin{matrix}∀x . ∀y . ∀z . [ meet(x, join(y, z)) = join(meet(x, y), meet(x, z)) ]  (* meet distributes over join *) \\ ∀x . ∀y . ∀z . [ join(x, meet(y, z)) = meet(join(x, y), join(x, z)) ]  (* join distributes over meet *) \end{matrix} \}

*** complemented lattice *** *** boolean lattice ***

𝔖bool := ( \begin{matrix}D \\ R : D ↭ D \\ bot : D \\ top : D \\ meet : D × D ⟶ D \\ join : D × D ⟶ D \\ neg : D ⟶ D \end{matrix} ) ∗ ∗ ∗CONTINUEHERE ∗ ∗∗

Figure 21:

Let 𝔖 † 𝔙 be an extended signature, where

𝔖 := ( \frac{D}{R : D ↭ D} ) 𝔙 := ( \begin{matrix}x : D \\ y : D \\ z : D \end{matrix} )

For all terms σ, ρ in 𝔖 † 𝔙 with x, y ∉ Fvar (σ) and x, y ∉ Fvar (ρ) we define the following terms on 𝔖 † 𝔙:

bot := the x with ∀y . R(x, y)  bottom element
top := the x with ∀y . R(y, x)  top element
meet(σ, ρ) := the x with [ R(x, σ) ∧ R(x, ρ) ∧ ∀y . [ [ R(y, σ) ∧ R(y, ρ) ] → R(x, y) ] ]  meet of σ and ρ
join(σ, ρ) := the x with [ R(σ, x) ∧ R(ρ, x) ∧ ∀y . [ [ R(σ, y) ∧ R(ρ, y) ] → R(y, x) ] ]  join of σ and ρ
c(σ) := the y with [ [ meet(σ, y) = bot ] ∧ [ join(σ, y) = top ] ]  complement of σ

We define the following sentences on 𝔖 † 𝔙:

φrefl := ∀x . R(x, x)  reflexivity axiom
φtran := ∀x . ∀y . ∀z . [ [ R(x, y) ∧ R(y, z) ] → R(x, z) ]  transitivity axiom
φansy := ∀x . ∀y . [ [ R(x, y) ∧ R(y, x) ] → [ x = y ] ]  anti–symmetry axiom
φbot := ∃x . ∀y . R(x, y)  least element or bottom axiom
φtop := ∃x . ∀y . R(y, x)  greatest element or top axiom
φlb := ∀x . ∀y . ∃z . [ R(z, x) ∧ R(z, y) ]  lower bound axiom
φub := ∀x . ∀y . ∃z . [ R(x, z) ∧ R(y, z) ]  upper bound axiom
φglb := ∀x . ∀y . ∃z . [ R(z, x) ∧ R(z, y) ∧ ∀w . [ [ R(w, x) ∧ R(w, y) ] → R(z, w) ] ]  greatest lower bound axiom
φlub := ∀x . ∀y . ∃z . [ R(x, z) ∧ R(t, z) ∧ ∀w . [ [ R(x, w) ∧ R(y, w) ] → R(w, z) ] ]  least upper bound axiom
φdist1 := ∀x . ∀y . ∀z . [ meet(join(x, y), z) = join(meet(x, z), meet(y, z)) ]  distributivity of meet over join
φdist2 := ∀x . ∀y . ∀z . [ join(meet(x, y), z) = meet(join(x, z), join(y, z)) ]  distributivity of join over meet
φc := ∀x . ∃y . [ [ meet(x, y) = bot ] ∧ [ join(x, y) = top ] ]  complementation axiom

Then define ( ; 𝅝 ; ) Quasi–ordered theory

( ; 𝅝 ; ) poclass

( ; 𝅝 ; ) lattice

( ; 𝅝 ; ) etc.

Figure 22:

𝔗qord(A, T) := ⟨𝔖qord(A, T), 𝔙qord(A, T), Axqord(A, T)⟩ := tr (𝔗qord, [ \begin{matrix}D ↦ & A \\ R ↦ & T \end{matrix} ]) is the proto–theory saying that ⟨A, T⟩ is a quasi–ordered

class, where

𝔖qord(A, T) := tr (𝔖qord, [ \begin{matrix}D ↦ & A \\ R ↦ & T \end{matrix} ]) *** CONTINUE HERE ***

Axqord(A, T) := \{^{tr}^{(φ, [ \begin{matrix}D ↦ & A \\ R ↦ & T \end{matrix} ])} ^{φ ∈ Axqord} \} *** CONTINUE HERE ***

Figure 23: stack

 𝔖stack := ( \begin{matrix}S, I \\ tail : S −−→ S \\ head : S −−→ I \\ cons : S × I ⟶ S \\ emp : S \\ isEmp : Pty (S) \end{matrix} )

Figure 24: Queue

*** CONTINUE HERE ***

Figure 25: Array

*** make, ref, upd, len ***

Figure 26: Fixed finite cardinality carrier

*** update: delete the general version and just use the cardinality 3 example ***

General theory

Let S be a (carrier class) identifier and n ∈ ℕ.

𝔗_{S=n} := ⟨𝔖_{S=n}, 𝔙_{S=n}, Ax_{S=n}⟩

where

(1) The signature is 𝔖_{S=n} := ( \frac{S}{(* no operator symbols *)} )

(2) The sorted variable set has n + 1 variables of type S

𝔙_{S=n} := ( v_{1} : S v_{2} : S ⋮ v_{n} : S v_{(}n + 1) : S )

(3) The axiom class is Ax_{S=n} := {φ_{≠n}, φ_{=(n+1)}} where φ_{≠n} is saying that there are n different elements

∃v_{1} …. ∃v_{n} . ∧_{1≤i<j≤n} [ ¬[ v_{i} = v_{j} ] ]

φ_{=(n+1)} is saying that there are no n + 1 different elements

∀v_{1} …. ∀v_{(}n + 1) . ∨_{1≤i<j≤n} [ v_{i} = v_{j} ]

Cardinality 3 𝔗_{S=3} = ⟨𝔖_{S=3}, 𝔙_{S=3}, Ax_{S=3}⟩, where

(1) 𝔖_{S=3} = ( \frac{S}{(* no operator symbols *)} )

(2) 𝔙_{S=3} = ( \begin{matrix}v_{1} : S \\ v_{2} : S \\ v_{3} : S \\ v_{4} : S \end{matrix} )

(3) Ax_{S=3} = {φ_{≠3}, φ_{=4}} with φ_{≠3} = ∃v_{1} . ∃v_{2} . ∃v_{3} . [ ¬[ v_{1} = v_{2} ] ∧ ¬[ v_{1} = v_{3} ] ∧ ¬[ v_{2} = v_{3} ] ] φ_{=4} = ∀v_{1} . ∀v_{2} . ∀v_{3} . ∀v_{4} . [ [ v_{1} = v_{2} ] ∨ [ v_{1} = v_{3} ]∨

[ v_{1} = v_{4} ] ∨ [ v_{2} = v_{3} ] ∨ [ v_{2} = v_{4} ] ∨ [ v_{3} = v_{4} ] ]

24 Polynomials

24.1 Rings

24.1.1 extended signature

We define the extended signature for ordered rings

𝔖_{or} † 𝔙_{m}

where

𝔖_{or} := ( \begin{matrix}S \\ zero : S \\ unit : S \\ add : S × S ⟶ S \\ mult : S × S ⟶ S \\ neg : S ⟶ S \\ Smeq : S ↭ S \end{matrix} )  and  𝔙_{m} := ( x_{1} : S ; x_{2} : S ; ⋮ ; x_{m} : S )

The number m of variables is fixed and it must at least be three.

24.1.2 conventions for variables

We introduce the following convenient abbreviations for variables and write

x := x_{1}
y := x_{2}
z := x_{3}

24.1.3 special formulas

Special formulas in 𝔖_{or} † 𝔙_{m} are:

( ; 𝅝 ; ) *** ring axioms ***

( ; 𝅝 ; ) the transitivity law for Smeq

φ_{tr} := ∀x . ∀y . ∀z . [ [ Smeq(x, y) ∧ Smeq(y, z) ] → Smeq(x, z) ]

( ; 𝅝 ; ) the reflexivity law for Smeq

φ_{rfl} := ∀x . Smeq(x, y)

( ; 𝅝 ; ) the anti–symmetry law for Smeq

φ_{ants} := ∀x . ∀y . [ [ Smeq(x, y) ∧ Smeq(y, x) ] → [ x = y ] ]

( ; 𝅝 ; ) the totality law for Smeq

φ_{tot} := ∀x . ∀y . [ Smeq(x, y) ∨ Smeq(y, x) ]

( ; 𝅝 ; ) the linear order law for Smeq

φ_{lord} := [ φ_{tr} ∧ φ_{rfl} ∧ φ_{ants} ∧ φ_{tot} ]

24.1.4 proto–theory of ordered rings The proto–theory for orderd rings is defined as

𝔗_{or} := ⟨𝔖_{or} † 𝔙_{m}, {φ_{ring}, φ_{lord}}⟩

24.2 Polynomial expressions

24.2.1 Definition

For each extended signature 𝔖 † 𝔙 we define

Poly (𝔖 † 𝔙)  the polynomial class

as the class of all terms θ ∈ Term (𝔖 † 𝔙) only built from constants, variables and by means of applications.

24.2.2 Remark

This definition of polynomials is an important concept in general algebra. But in most cases, polynomials are meant to be the elements of Poly (𝔖_{or} † 𝔙_{m}), i.e. they are terms standing for elements of rings. A typical example of a polynomial term is

                       5x^{3} +3x^{2}y-2x+7

But of course, to fit this into our definition of Term (𝔖_{or} † 𝔙_{m}) we applied a lot of notational conventions. Let us list these common conventions first.

24.2.3 abbreviations

For terms in Term (𝔖_{or} † 𝔙_{m}) we introduce the following common conventions. ( ; 𝅗𝅥 ; ) For all terms θ_{1}, …, θ_{n} with n ≥ 2 we write

θ_{1} + … + θ_{n} := \begin{cases}add(θ_{1}, θ_{2}) & if n = 2 \\ add(θ_{1}, (θ_{2} + … + θ_{n})) & if n > 2 \end{cases}

and

θ_{1} * … * θ_{n} := \begin{cases}mult(θ_{1}, θ_{2}) & if n = 2 \\ mult(θ_{1}, (θ_{2} * … * θ_{n})) & if n > 2 \end{cases}

And if it does not cause any ambiguities, we may even omit the “ * ” and write

θ_{1} … θ_{n} := θ_{1} * … * θ_{n}

  For example, unit(zero+unit) stands for unit* (zero+unit)

( ; 𝅗𝅥 ; ) In order to save parentheses, we agree on the common convention that “ * ” binds stronger than “ * ”. For example,

*** CONTINUE HERE ***

( ; 𝅗𝅥 ; ) If θ is a term we define

-θ := neg(θ)

( ; 𝅗𝅥 ; ) We introduce the binary subtraction. For terms θ_{1}, θ_{2} we write

θ_{1} - θ_{2} := add(θ_{1}, neg(θ_{2}))

( ; 𝅗𝅥 ; ) For every n ∈ ℕ we define

n := \begin{cases}zero & if n = 0 \\ unit & if n = 1 \\ \underbrace{unit+ … +unit}_{n–times} & if n ≥ 2 \end{cases}

  For example, 4 = unit+unit+unit+unit.

( ; 𝅗𝅥 ; ) For every term θ and each n ∈ ℕ we define

θ^{n} := \begin{cases}1 & if n = 0 \\ θ & if n = 1 \\ \underbrace{θ * … * θ}_{n–times} & if n ≥ 2 \end{cases}  *** define: ℑ[x_{1}, …, x_{n}] for ℑ ∈ \{ℤ, ℚ, ℝ, …\} ***

Part XIII

Finite model constructions

25 Propositional logic

25.0.4 Introduction

*** refer to Thalg 6.4 ***

25.1 The bit value algebra

25.1.1 Definition bit value algebra

Recall Thalg 5.8.4 , that

𝔅 = ⟨𝔹, ≤, 0, 1, -, ∧, ∨⟩

is the boolean value algebra or bit value algebra, where

𝔹 := {0, 1}

and the operations ≤, -, ∧, ∨ are defined as usual, i.e. for β, β_{1}, β_{2} ∈ 𝔹 holds:

β_{1} ≤ β_{2} iff (β_{1} = 0 or β_{2} = 1)

-β := \begin{cases}1 & if β = 0 \\ 0 & if β = 1 \end{cases}
β_{1} ∧ β_{2} := \begin{cases}1 & if β_{1} = 1 and β_{2} = 1 \\ 0 & else \end{cases}
β_{1} ∨ β_{2} := \begin{cases}1 & if β_{1} = 1 or β_{2} = 1 \\ 0 & else \end{cases}

For every B ⊆ 𝔹 we also define

⋁ B := \begin{cases}1 & if 1 ∈ B \\ 0 & else \end{cases}  and ⋀ B := \begin{cases}0 & if 0 ∈ B \\ 1 & else \end{cases}

And for each n ∈ ℕ and all β_{1}, …, β_{n} ∈ 𝔹 we define

β_{1} ∧ … ∧ β_{n} := ∧^{n}_{i=1}β_{i} := ⋀ {β_{1}, …, β_{n}}
β_{1} ∨ … ∨ β_{n} := ∨^{n}_{i=1}β_{i} := ⋁ {β_{1}, …, β_{n}}
β_{1} → … → β_{n} := \begin{cases}1 & if β_{1} ≤ … ≤ β_{n} \\ 0 & else \end{cases}
β_{1} ↔ … ↔ β_{n} := \begin{cases}1 & if β_{1} = … = β_{n} \\ 0 & else \end{cases}

25.1.2 Example

(1 ↔ -0) → ⋀ {-(1 ∨ (-0 ∧ 1)), ⋁ {1, 0, 1} , 1 ∨ 0}
= (1 ↔ 1) → ⋀ {-(1 ∨ (1 ∧ 1)), 1, 1}
= 1 → ⋀ {-(1 ∨ 1), 1, 1}
= 1 → ⋀ {0, 1, 1}
= 1 → 0
= 0

25.2 Propositional formulas and their

semantics

*** UPDATE ***

*** see propform.tex ***

25.2.1 Definition

Recall Thalg 6.4.1 , that for a given so–called atom class A,

Form (A)

is the propositional formula class of A, which is defined to comprise the following expressions:

α  (atom formula)
¬φ  (negation)
[ φ_{1} ∧ … ∧ φ_{n} ]  (conjunction)
[ φ_{1} ∨ … ∨ φ_{n} ]  (disjunction)

for α ∈ A and φ, φ_{1}, …, φ_{n} ∈ Form (A).

Furthermore, we use the following additional abbreviations: f := [ ∨] (false)

t := [ ∧] (true)

[ φ_{1} → … → φ_{n} ]  (subjunction)
:= [ [ ¬φ_{1} ∨ φ_{2} ] ∧ … ∧ [ ¬φ_{n−1} ∨ φ_{n} ] ]
[ φ_{1} ↔ … ↔ φ_{n} ]  (equijunction)
:= [ [ φ_{1} → … → φ_{n} ] ∧ [ φ_{n} → … → φ_{1} ] ]

25.2.2 Example

(1) If A = {a, b, c} then example members of Form (A) are:

(a) [ [ a ∧ ¬b ∧ ¬c ] ∨ ¬[ b ∧ ¬c ∧ ¬t ∧ ¬a ] ]

(b) [ ¬a → [ [ a → b ] ↔ b ] ]

(2) Members of Form (ℕ), with ℕ = {0, 1, …}, are for example:

(a) [ [ 2 ∧ ¬5 ∧ ¬7 ] ∨ ¬[ 5 ∧ ¬7 ∧ ¬t ∧ ¬2 ] ]

(b) [ ¬2 → [ [ 2 → 5 ] ↔ 5 ] ]

(3) And atomless formulas, i.e. members of Form (∅) are: (a) [ [ t ∧ ¬f ∧ ¬t ] ∨ ¬[ f ∧ ¬t ∧ ¬t ∧ ¬t ] ]

(b) [ ¬t → [ [ t → f ] ↔ f ] ]

25.2.3 Definition Given some atom class A.

Atf (φ) := [ \begin{matrix}& Form (A) ⟶ Fin (A) \\ [ & α : A ↦ \{α\} ¬φ ↦ Atf (φ) [ φ_{1} ∧ … ∧ φ_{n} ] ↦ ∪^{n}_{i=1}Atf (φ_{i}) [ φ_{1} ∨ … ∨ φ_{n} ] ↦ ∪^{n}_{i=1}Atf (φ_{i}) & ] \end{matrix} ]

is the atom form class of a given formula φ

25.2.4 Example The atom classes of the formula examples 28.2.2 are:

Atf ([ [ a ∧ ¬b ∧ ¬c ] ∨ ¬[ b ∧ ¬c ∧ ¬t ∧ ¬a ] ]) = {a, b, c}
Atf ([ ¬a → [ [ a → b ] ↔ b ] ]) = {a, b}
Atf ([ [ 2 ∧ ¬5 ∧ ¬7 ] ∨ ¬[ 5 ∧ ¬7 ∧ ¬t ∧ ¬2 ] ]) = {2, 5, 7}
Atf ([ ¬2 → [ [ 2 → 5 ] ↔ 5 ] ]) = {2, 5}
Atf ([ [ t ∧ ¬f ∧ ¬t ] ∨ ¬[ f ∧ ¬t ∧ ¬t ∧ ¬t ] ]) = ∅
Atf ([ ¬t → [ [ t → f ] ↔ f ] ]) = ∅

25.2.5 Definition

For every given class A we define

Val (A) := ⊗[𝔹|A] the valuator class of A

Pval (A) := ⊛[𝔹|A] the partial valuator class of A

25.2.6 Example

Let A = {a, b}. [𝔹|A] (see Thalg 9.2.4 ) is the schema which assigns the bit value class 𝔹 to each α ∈ A. For this two–element A we can write this in a compact form

[𝔹|A] = [\begin{matrix}a ↦ & 𝔹 \\ b ↦ & 𝔹 \end{matrix}]

The valuator class of A is the cartesian product ⊗[𝔹|A] (see Thalg 12.1.2 ), i.e. the class of all the records with domain A and values from 𝔹

Val (A) = ⊗ [\begin{matrix}a ↦ & 𝔹 \\ b ↦ & 𝔹 \end{matrix}]

= \{ [\begin{matrix}a ↦ & ω_{a} \\ b ↦ & ω_{b} \end{matrix} ] ω_{a}, ω_{b} ∈ 𝔹 \}

= \{[\begin{matrix}a ↦ & 0 \\ b ↦ & 0 \end{matrix}] , [\begin{matrix}a ↦ & 1 \\ b ↦ & 0 \end{matrix}] , [\begin{matrix}a ↦ & 0 \\ b ↦ & 1 \end{matrix}] , [\begin{matrix}a ↦ & 1 \\ b ↦ & 1 \end{matrix}]\}

The partial valuator class of A is the star product ⊛[𝔹|A] (see Thalg 12.1.2 )

Pval (A) = ⊛ [ \begin{matrix}a ↦ & 𝔹 \\ b ↦ & 𝔹 \end{matrix} ]

= \{ [ \begin{matrix}i_{1} & ↦ & ω_{1} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & ω_{n} \end{matrix} ] \begin{matrix}\{i_{1}, …, i_{n}\} ⊆ \{a, b\} \\ ω_{1}, …, ωn ∈ 𝔹 \end{matrix} \}

= \{ \begin{matrix}⟨⟩, [ a ↦ 0 ], [ a ↦ 1 ], [ b ↦ 0 ], [ b ↦ 1 ], \\ [\begin{matrix}a ↦ & 0 \\ b ↦ & 0 \end{matrix}] , [\begin{matrix}a ↦ & 1 \\ b ↦ & 0 \end{matrix}] , [\begin{matrix}a ↦ & 0 \\ b ↦ & 1 \end{matrix}] , [\begin{matrix}a ↦ & 1 \\ b ↦ & 1 \end{matrix}] \end{matrix} \}

25.2.7 Remark

If φ is a formula and ω a valuator, then val (φ, ω) is the formula φ′ that results from replacing each atom α in φ by

f if ω(α) = 0
t if ω(α) = 1
α if α is not an argument of ω

25.2.8 Definition

Let A be an atom set. We define

val :=

Form (A) × Pval (A) ⟶ Form (A)

⟨φ, ω⟩ ↦ \begin{cases}¬val (ψ, ω) & if φ = ¬ψ \\ [ val (φ_{1}, ω) ∧ … ∧ val (φ_{n}, ω) ] \\ if φ = [ φ_{1} ∧ … ∧ φ_{n} ] \\ [ val (φ_{1}, ω) ∨ … ∨ val (φ_{n}, ω) ] \\ if φ = [ φ_{1} ∨ … ∨ φ_{n} ] \\ f & if φ ∈ A and ω(φ) = 0 \\ t & if φ ∈ A and ω(φ) = 1 \\ φ & if φ ∈ A and φ ∉ dom (ω) \end{cases}

the valuation function (on A).

25.2.9 Example

For example, if

φ = [ ¬a ∧ [ [ b ∨ a ] → b ] ∧ t ] and ω = [\begin{matrix}a ↦ & 0 \\ b ↦ & 1 \\ c ↦ & 1 \end{matrix}]

then

val (φ, ω)
= [ ¬val (a, ω) ∧ [ [ val (b, ω) ∨ val (a, ω) ] → val (b, ω) ] ∧ t ]
= [ ¬f ∧ [ [ t ∨ f ] → t ] ∧ t ]

And

val ([ [ a ∧ ¬b ∧ ¬c ] ∨ ¬[ b ∧ ¬c ∧ ¬t ∧ ¬a ] ], [\begin{matrix}b ↦ & 0 \\ c ↦ & 1 \end{matrix}])
= [ [ a ∧ ¬f ∧ ¬t ] ∨ ¬[ f ∧ ¬t ∧ ¬t ∧ ¬a ] ]

25.2.10 Lemma

Let φ ∈ Form (A) and ω ∈ Pval (A). If Ats (φ) ⊆ dom (ω) then val (φ, ω) ∈ Form (∅).

25.2.11 Proof of 28.2.10

*** CONTINUE HERE ***

25.2.12 Remark

If φ is indeed an atomless formula, φ ∈ Form (∅), it has an evaluation ev (φ), which is the result of interpreting the symbols as operations from the bit value algebra 28.1.1. For example

ev ([ f ∧ t ∧ [ ¬f ∨ t ∨ ¬t ] ]) = 0 ∧ 1 ∧ (-0 ∨ 1 ∨ -1) = 0 25.2.13 Definition

ev := [ \begin{matrix}& Form (∅) ⟶ 𝔹 \\ [ & \begin{matrix}¬φ ↦ & -ev (φ) \\ [ φ_{1} ∧ … ∧ φ_{n} ] ↦ & ∧^{n}_{i=1}ev (φ_{i}) \\ [ φ_{1} ∨ … ∨ φ_{n} ] ↦ & ∧^{n}_{i=1}ev (φ_{i}) \end{matrix} & ] \end{matrix} ]

the evaluator of atomless propositional formulas

25.2.14 Lemma

For all β_{1}, …, β_{n} ∈ {f, t} holds:

(1) ev (f) = 0

(2) ev (t) = 1

(3) ev ([ β_{1} → … → β_{n} ]) = ev (β_{1}) → … → ev (β_{n})

(4) ev ([ β_{1} ↔ … ↔ β_{n} ]) = ev (β_{1} ↔ … ↔ ev (β_{n}))

25.2.15 Proof of 28.2.14

*** CONTINUE HERE ***

25.2.16 Example Two examples of atomless formulas were given in 28.2.2(3). Their according evaluation is

(a) ev ([ [ t ∧ ¬f ∧ ¬t ] ∨ ¬[ f ∧ ¬t ∧ ¬t ∧ ¬t ] ])

= (1 ∧ -0 ∧ -1) ∨ -(0 ∧ -1 ∧ -1 ∧ ¬1)

= 1

(b) ev ([ ¬t → [ [ t → f ] ↔ f ] ])

= (-1 → ((1 → 0) ↔ 0)

= 0 → (0 ↔ 0)

= 0 → 1

= 1

25.2.17 Definition

For every class A and each φ ∈ Form (A) we define

UV (φ, A) := {ω ∈ Val (A) | ev (val (φ, ω)) = 1}

the unit valuator class of φ on A

ZV (φ, A) := {ω ∈ Val (A) | ev (val (φ, ω)) = 0} the zero valuator class of φ on A

25.2.18 Example

*** CONTINUE HERE ***

25.2.19 Lemma

For every class A and each φ ∈ Form (A) holds

UV (φ, A) ∩ ZV (φ, A) = ∅
UV (φ, A) ∪ ZV (φ, A) = Val (A)

25.2.20 Proof of 28.2.19

*** CONTINUE HERE ***

25.2.21 Lemma

For every class A and all α ∈ A and φ, φ_{1}, …, φ_{n} ∈ Form (A), n ≥ 0, holds:

(1) UV (α, A) = {ω ∈ Val (A) | ω(α) = 1}

(2) ZV (α, A) = {ω ∈ Val (A) | ω(α) = 0}

(3) UV (¬φ, A) = ZV (φ, A)

(4) ZV (¬φ, A) = UV (φ, A)

(5) UV ([ φ_{1} ∧ … ∧ φ_{n} ], A) = \begin{cases}Val (A) & if n = 0 \\ ∩^{n}_{i=1}UV (φ_{i}, A) & else \end{cases}

(6) ZV ([ φ_{1} ∧ … ∧ φ_{n} ], A) = \begin{cases}∅ & if n = 0 \\ ∪^{n}_{i=1}ZV (φ_{i}, A) & else \end{cases}

(7) UV ([ φ_{1} ∨ … ∨ φ_{n} ], A) = \begin{cases}∅ & if n = 0 \\ ∪^{n}_{i=1}UV (φ_{i}, A) & else \end{cases}

(8) ZV ([ φ_{1} ∨ … ∨ φ_{n} ], A) = \begin{cases}Val (A) & if n = 0 \\ ∩^{n}_{i=1}ZV (φ_{i}, A) & else \end{cases}

25.2.22 Proof of 28.2.21

*** CONTINUE HERE ***

25.2.23 Lemma

(1) UV (f, A) = ∅

(2) ZV (f, A) = Val (A)

(3) UV (t, A) = Val (A)

(4) ZV (t, A) = ∅

25.2.24 Lemma

*** CONTINUE HERE ***

28

25.2.25 Definition

Let A be an atom class. We define

◯ 1 ⇒ ◯ 2 := [ \begin{matrix}Form (A) ↭ Form (A) \\ ⟨φ, ψ⟩ ↝ UV (φ) ⊆ UV (ψ) \end{matrix} ]

the subvalence relation

◯ 1 ⇔ ◯ 2 := [ \begin{matrix}Form (A) ↭ Form (A) \\ ⟨φ, ψ⟩ ↝ UV (φ) = UV (ψ) \end{matrix} ]

the equivalence relation

25.2.26 Example

*** CONTINUE HERE ***

28*** make sure, A is always an “atom class” ***

26 Propositional formula systems and normalizations

26.1 Propositional formula systems

26.1.1 Definition A propositional formula system is a structure 𝔉 made of the following components: ( ; 𝅝 ; ) Atm (𝔉) is an atom class (the atom (formula) class)

( ; 𝅝 ; ) Nf (𝔉) ⊆ Form (Atm (𝔉)) (the normal form class)

( ; 𝅝 ; ) at_{𝔉} : Atm (𝔉) ⟶ Nf (𝔉) (atom formalizator)

( ; 𝅝 ; ) false_{𝔉} ∈ Nf (𝔉) (false or zero formula)

( ; 𝅝 ; ) true_{𝔉} ∈ Nf (𝔉) (true or unit formula)

( ; 𝅝 ; ) and_{𝔉} : Nf (𝔉) × Nf (𝔉) ⟶ Nf (𝔉) (conjunctor)

( ; 𝅝 ; ) or_{𝔉} : Nf (𝔉) × Nf (𝔉) ⟶ Nf (𝔉) (disjunctor)

( ; 𝅝 ; ) not_{𝔉} : Nf (𝔉) ⟶ Nf (𝔉) (negator) such that the following statements are satisfied: ( ; 𝅝 ; ) Nf (𝔉) is a normal subclass of Form (A) in the sense that

∀ψ ∈ Form (A) . ∃φ ∈ Nf (𝔉) . φ ⇔ ψ

( ; 𝅝 ; ) The operations are consistent in the sense that

( ; 𝅗𝅥 ; ) at_{𝔉}(a) ⇔ a

( ; 𝅗𝅥 ; ) false_{𝔉} ⇔ 0

( ; 𝅗𝅥 ; ) true_{𝔉} ⇔ 1

( ; 𝅗𝅥 ; ) and_{𝔉}(φ, ψ) ⇔ [ φ ∧ ψ]

( ; 𝅗𝅥 ; ) or_{𝔉}(φ, ψ) ⇔ [ φ ∨ ψ]

( ; 𝅗𝅥 ; ) not_{𝔉}(φ) ⇔ ¬φ

for all a ∈ Atm (𝔉) and φ, ψ ∈ Nf (𝔉).

If 𝔉 is a propositional formula system which is fixed in a given context, we more simply write

Atm Nf at false true and or not

instead of

Atm (𝔉) Nf (𝔉) at_{𝔉} false_{𝔉} true_{𝔉} and_{𝔉} or_{𝔉} not_{𝔉}

respectively.

26.1.2 Definition Given a propositional formula system

𝔑𝔉 = ⟨Atm (𝔉) , Nf (𝔉) , at, false, true, and, or, not⟩ We define the multiary generalizations of and and or as usual, i.e.

and (φ_{1}, …, φ_{n})

:= \begin{cases}true & if n = 0 \\ φ_{1} & if n = 1 \\ and (and (φ_{1}, φ_{2}) , φ_{3}, …, φ_{n}) & if n ≥ 2 \end{cases}

or (φ_{1}, …, φ_{n})

:= \begin{cases}false & if n = 0 \\ φ_{1} & if n = 1 \\ or (or (φ_{1}, φ_{2}) , φ_{3}, …, φ_{n}) & if n ≥ 2 \end{cases}

for each n ∈ ℕ and all φ_{1}, …, φ_{n} ∈ Nf (𝔉).

26.1.3 Definition

Given a propositional formula system 𝔑𝔉 on Atm (𝔉), then

nf_{𝔑𝔉} : Form (A) ⟶ Nf (𝔉)

is the normalizer of 𝔑𝔉, which is defined for each φ ∈ Form (A) by structural recursion as follows:

(1) If φ = a ∈ Atm (𝔉) is an atomic formula, then

nf_{𝔑𝔉}(φ) := at(a)

(2) If φ = [ φ_{1} ∧ … ∧ φ_{n} ] is a conjunction, then

nf_{𝔑𝔉}(φ) := and (nf_{𝔑𝔉}(φ_{1}), …, nf_{𝔑𝔉}(φ_{n}))

(3) If φ = [ φ_{1} ∨ … ∨ φ_{n} ] is a disjunction, then

nf_{𝔑𝔉}(φ) := or (nf_{𝔑𝔉}(φ_{1}), …, nf_{𝔑𝔉}(φ_{n}))

(4) If φ = ¬ψ is a negation, then

nf_{𝔑𝔉}(φ) := not (nf_{𝔑𝔉}(ψ))

26.1.4 Lemma

Let 𝔑𝔉 = ⟨Atm (𝔉) , Nf (𝔉) , at, false, true, and, or, not⟩ be a propositional formula system. Then

nf_{𝔑𝔉}(φ) ⇔ φ

for all φ ∈ Form (A).

26.1.5 Proof of 29.1.4

*** CONTINUE HERE ***

26.2 Normalizations

*** define “normalizer” ***

26.2.1 Definition

A propositional formula system 𝔑𝔉 on Atm (𝔉) and its normalizer nf_{𝔑𝔉} are called ( ; 𝅝 ; ) 0–canonic, if

φ ⇔ 0 implies nf (φ) = false for all φ ∈ Form (A) ( ; 𝅝 ; ) 1–canonic, if

φ ⇔ 1 implies nf (φ) = true for all φ ∈ Form (A) ( ; 𝅝 ; ) semi–canonic, if

it is both 0– and 1–canonic ( ; 𝅝 ; ) canonic, in which case the normalizer is also called a canon-

izer, if

φ ⇔ ψ implies nf (φ) = nf (ψ) for all φ, ψ ∈ Form (A)

*** CONTINUE HERE ***

26.3 Ordered normal forms

26.3.1 Definition

Let ⟨S, ≤⟩ be a linearly ordered class and < the strict version of ≤ (i.e. x < y iff x ≤ y and y ≰ x).

We define ⟨S, ≤⟩^{∗} := {⟨x_{1}, …, x_{n}⟩ ∈ S^{∗} | x_{1} < … < x_{n}}

the (ordered or sorted) tuple class of ⟨S, ≤⟩

tup_{≤} := [ \begin{matrix}Fin (S) ⟶ ⟨S, ≤⟩^{∗} \\ T ↦ \begin{matrix}the ⟨x_{1}, …, x_{n}⟩ ∈ ⟨S, ≤⟩^{∗} \\ with \{x_{1}, …, x_{n}\} = T \end{matrix} \end{matrix} ]

the ≤–sorted tuple function on finite subclasses of 𝔖

tup_{≤} := [ \begin{matrix}S^{∗} ⟶ ⟨S, ≤⟩^{∗} \\ ⟨x_{1}, …, x_{n}⟩ ↦ tup_{≤}(\{x_{1}, …, x_{n}\}) \end{matrix} ]

the ≤–sorted tuple function on tuples of 𝔖

◯ 1 ≤ ◯ 2 :=

[ \begin{matrix}S^{∗} ↭ S^{∗} \\ ⟨⟨x_{1}, …, x_{n}⟩, ⟨y_{1}, …, y_{m}⟩⟩ ↝ \\ ( & \begin{matrix}n = 0 or \\ x_{1} < y_{1} or \\ (x_{1} = y_{1} and ⟨x_{2}, …, x_{n}⟩ ≤ ⟨y_{2}, …, y_{m}⟩) \end{matrix} & ) \end{matrix} ]

the lexical order relation of ⟨S, ≤⟩

◯ 1 < ◯ 2 :=

S^{∗} ↭ S^{∗}

⟨⟨x_{1}, …, x_{n}⟩, ⟨y_{1}, …, y_{m}⟩⟩ ↝

n = 0 and m > 0 or

x_{1} < y_{1} or

(x_{1} = y_{1} and ⟨x_{2}, …, x_{n}⟩ < ⟨y_{2}, …, y_{m}⟩)

the strict lexical order relation of ⟨S, ≤⟩

*** examples and remarks ***

26.3.2 Definition Let A be a given atom class. We define

deg := [ \begin{matrix}& Form (A) ⟶ ℕ \\ [ & \begin{matrix}α : A ↦ & 0 \\ ¬φ ↦ & 1 \\ [ φ_{1} ∧ … ∧ φ_{n} ] ↦ & 3 \\ [ φ_{1} ∨ … ∨ φ_{n} ] ↦ & 2 \end{matrix} & ] \end{matrix} ]

the degree function

args := [ \begin{matrix}& Form (A) ⟶ Form (A)^{∗} \\ [ & \begin{matrix}α : A ↦ & ⟨α⟩ \\ ¬φ ↦ & ⟨φ⟩ \\ [ φ_{1} ∧ … ∧ φ_{n} ] ↦ & ⟨φ_{1}, …, φ_{n}⟩ \\ [ φ_{1} ∨ … ∨ φ_{n} ] ↦ & ⟨φ_{1}, …, φ_{n}⟩ \end{matrix} & ] \end{matrix} ]

the arguments function

26.3.3 Example

*** CONTINUE HERE ***

26.3.4 Lemma

( ; 𝅝 ; ) deg (f) = 2

( ; 𝅝 ; ) deg (t) = 3

( ; 𝅝 ; ) deg ([ φ_{1} → … → φ_{n} ]) = 3

( ; 𝅝 ; ) deg ([ φ_{1} ↔ … ↔ φ_{n} ]) = 3

26.3.5 Definition

Let ⟨A, ≤⟩ be a linearly ordered atom class.

We define

◯ 1 ≤ ◯ 2 :=

Form (A) ↭ Form (A)

⟨φ, ψ⟩ ↝ ( \begin{matrix}& deg (φ) < deg (ψ) or \\ ( & deg (φ) = deg (ψ) and args (φ) ≤ args (ψ) & ) \end{matrix} )

the linear order relation of ≤ on Form (A)

◯ 1 < ◯ 2 :=

Form (A) ↭ Form (A)

⟨φ, ψ⟩ ↝ ( \begin{matrix}& deg (φ) < deg (ψ) or \\ ( & deg (φ) = deg (ψ) and args (φ) < args (ψ) & ) \end{matrix} )

the linear order relation of ≤ on Form (A)

Form (A, ≤) := ∗ ∗ ∗CONTINUEHERE ∗ ∗∗

the (ordered or sorted) formulas of ⟨A, ≤⟩

26.4 Literal normal forms

26.4.1 Definition

Let ⟨A, ≤⟩ be a linearly ordered atom class.

Lit (A) := { [ α ↔ f ], [ α ↔ t ] α ∈ A }

is the literal class of A

LC (A, ≤) := \{ \begin{matrix}[ [ α_{1} ↔ β_{1} ] ∧ … ∧ [ α_{n} ↔ β_{n} ] ] \\ ⟨α_{1}, …, α_{n}⟩ ∈ ⟨A, ≤⟩^{∗}, \\ β_{1}, …, β_{n} ∈ \{f, t\} \end{matrix} \}

the (ordered) literal conjunction class of ⟨A, ≤⟩

LD (A, ≤) := \{ \begin{matrix}[ [ α_{1} ↔ β_{1} ] ∨ … ∨ [ α_{n} ↔ β_{n} ] ] \\ ⟨α_{1}, …, α_{n}⟩ ∈ ⟨A, ≤⟩^{∗}, \\ β_{1}, …, β_{n} ∈ \{f, t\} \end{matrix} \}

the (ordered) literal disjunction class of ⟨A, ≤⟩

DNF (A, ≤) := \{ \begin{matrix}[ γ_{1} ∨ … ∨ γ_{n} ] \\ γ_{1}, …, γ_{n} ∈ LC (A, ≤) , \\ γ_{1} < … < γ_{n} \end{matrix} \}

the (ordered) disjunctive normal forms or DNF of ⟨A, ≤⟩

CNF (A, ≤) := \{ \begin{matrix}[ δ_{1} ∧ … ∧ δ_{n} ] \\ δ_{1}, …, δ_{n} ∈ LD (A, ≤) , \\ δ_{1} < … < δ_{n} \end{matrix} \}

the (ordered) conjunctive normal forms or CNF of ⟨A, ≤⟩

26.4.2 Example

*** CONTINUE HERE ***

*** Lemma on the order between these normal forms. ***

26.4.3 Definition

Let ⟨A, ≤⟩ be a linearly ordered atom class.

For every finite ω ∈ Pval (A) we define

lc_{≤}(ω) := [ [ α_{1} ↔ β_{1} ] ∧ … ∧ [ α_{n} ↔ β_{n} ] ]

the ≤–ordered literal conjunction of ω,

ld_{≤}(ω) := [ [ α_{1} ↔ β_{1} ] ∨ … ∨ [ α_{n} ↔ β_{n} ] ]

the ≤–ordered literal disjunction of ω,

where in both cases

⟨α_{1}, …, α_{n}⟩ := tup_{≤}(dom (ω))

and

β_{i} := \begin{cases}f & if ω(α_{i}) = 0 \\ t & if ω(α_{i}) = 1 \end{cases} for i = 1, …, n

Let Ω = {ω_{1}, …, ω_{n}} ⊆ Pval (A) be a finite set of finite partial valuators of A.

*** CONTINUE HERE ***

dnf_{≤}(Ω) :=

[ γ_{1} ∨ … ∨ γ_{m} ] where ⟨γ_{1}, …, γ_{m}⟩ := {lc_{≤}(ω_{1}), …, lc_{≤}(ω_{n})}

the ≤–ordered DNF of Ω

*** CONTINUE HERE *** *** DELETE THE REST ***

26.4.4 Definition

form := [ \begin{matrix}𝔹 ⟶ Form (∅) \\ β ↦ \begin{cases}f & if β = 0 \\ t & if β = 1 \end{cases} \end{matrix} ]

the formalizator for bit values

26.4.5 Definition

Let ⟨A, ≤⟩ be a linearly ordered atom class.

Let ω ∈ Pval (A) be finite. Then ω has the unique form

ω = [\begin{matrix}α_{1} & ↦ & β_{1} \\ ⋮ & & ⋮ \\ α_{n} & ↦ & β_{n} \end{matrix} ] with α_{1} < … < α_{n}

an we define

lc_{≤}(ω) :=

[ [ α_{1} ↔ form (β_{1}) ] ∧ … ∧ [ α_{n} ↔ form (β_{n}) ] ]

the ≤–ordered literal conjunction of ω

ld_{≤}(ω) :=

[ [ α_{1} ↔ form (β_{1}) ] ∨ … ∨ [ α_{n} ↔ form (β_{n}) ] ]

the ≤–ordered literal disjunction of ω

Let Ω = {ω_{1}, …, ω_{n}} ⊆ Pval (A) be a finite set of finite partial valuators of A.

*** CONTINUE HERE ***

dnf_{≤}(Ω) :=

∗ ∗ ∗CONTINUEHERE ∗ ∗∗

the ≤–ordered DNF of Ω

*** CONTINUE HERE ***

26.4.6 Definition

For each identifier class A we define

𝔖𝔱𝔑𝔉 (A) := ⟨Form (A) , at, false, true, and, or, not⟩

the standard normal formula system where

( ; 𝅝 ; ) *** CONTINUE HERE ***

( ; 𝅝 ; ) andφ, ψ := [ φ ∧ ψ]

( ; 𝅝 ; ) *** CONTINUE HERE ***

26.4.7 Definition

For each identifier class A and each linear order ≤ on A we define

𝔇𝔑𝔉 (A, ≤) := ⟨Form (A) , at, false, true, and, or, not⟩

the (≤–) ordered disjunctive normal form stystem on A, where

( ; 𝅝 ; ) DNF (A, ≤) *** CONTINUE HERE *** ( ; 𝅝 ; ) *** CONTINUE HERE ***

( ; 𝅝 ; ) andφ, ψ := [ φ ∧ ψ]

( ; 𝅝 ; ) *** CONTINUE HERE ***

26.4.8 Definition

For each identifier class A and each linear order ≤ on A we define

𝔓𝔇𝔑𝔉 (A, ≤) := ⟨Form (A) , at, false, true, and, or, not⟩

the (≤–) ordered prime disjunctive normal form stystem on A, where

( ; 𝅝 ; ) PDNF (A, ≤) *** CONTINUE HERE *** ( ; 𝅝 ; ) *** CONTINUE HERE ***

( ; 𝅝 ; ) andφ, ψ := [ φ ∧ ψ]

( ; 𝅝 ; ) *** CONTINUE HERE ***

27 Para–tables and their algebra

27.1 On records and schemas

*** short repetition ***

27.1.1 Definition

For every (completely finite) schema X = [X_{i}|i ∈ I] we define

lg (X) := card (I) the length of X

size (X) := ∏_{i∈I} card (X_{i}) the size (or volume) of X

27.2 Para–tables

27.2.1 Definition

A para–table is a record

T = [T_{υ}|υ ∈ ⊗Y]

where ( ; 𝅝 ; ) Y is a completely finite schema ( ; 𝅝 ; ) T_{υ} is a propositional formula, for each υ ∈ ⊗Y

For every such para–table T, we have the usual concepts on schemas

dom (T) := ⊗Y the domain of T

cod (T) := {T_{υ} | υ ∈ ⊗Y } the codomain of T

Furthermore we define

size (T) := size (Y) the size of T

Atf (T) := ⋃_{ξ∈⊗Y} Atf (T (ξ)) the atom formula class

dox (T) := Y the domain schema of T

@ (T) := I the attribute class (or index class) of T

If T is such a para–table and Y is an ordinary schema, i.e. Y = ⟨Y_{1}, …, Y_{n}⟩, then T is an ordinary or n–ary para–table.

27.2.2 Example

A completely finite ordinary schema is given by

Y := ⟨\{1, 2, 3\} , \{1, 2, 3\}⟩ = [ \begin{matrix}1 ↦ & \{1, 2, 3\} \\ 2 ↦ & \{1, 2, 3\} \end{matrix} ]

Its cartesian product is

⊗Y = {1, 2, 3} × {1, 2, 3} = {⟨x, y⟩ | x, y ∈ {1, 2, 3}}

An example of an ordinary para–table T with domain Y is then given by

T := [ \begin{matrix}⟨1, 1⟩ ↦ & ε \\ ⟨2, 1⟩ ↦ & [ δ ∧ ¬β] \\ ⟨3, 1⟩ ↦ & [ δ ∧ ¬β] \\ ⟨1, 2⟩ ↦ & [ δ ∧ β] \\ ⟨2, 2⟩ ↦ & ε \\ ⟨3, 2⟩ ↦ & [ δ ∧ ¬β] \\ ⟨1, 3⟩ ↦ & [ δ ∧ β] \\ ⟨2, 3⟩ ↦ & [ δ ∧ β] \\ ⟨3, 3⟩ ↦ & ε \end{matrix} ]

The propositional formulas T (υ) for υ ∈ ⊗Y are members of Form (A), where the atom class A is given by say

A := {α, β, γ, δ, ε}

Furthermore we obtain

dom (T) = ⊗X = {1, 2, 3} × {1, 2, 3}
cod (T) = {ε, [ δ ∧ ¬β], [ δ ∧ β]}
size (T) = size (X) = 3 · 3 = 9
Atf (T) = {β, δ, ε}
dox (T) = ⟨\{1, 2, 3\} , \{1, 2, 3\}⟩ = [ \begin{matrix}1 ↦ & \{1, 2, 3\} \\ 2 ↦ & \{1, 2, 3\} \end{matrix} ]
@ (T) = {1, 2}

27.2.3 para–table diagrams

A para–table T with domain ⊗Y can be displayed by its (para– table) diagram as follows. Its schema Y, being completely finite, has the general form

Y = [ \begin{matrix}i_{1} & ↦ & \{x_{1,1}, …, x_{1,m1} \} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & \{x_{n,1}, …, x_{n,mn} \} \end{matrix} ]

The diagram of T is then given by

i_{1}  … i_{n}

x_{1,1}  … x_{n,1}  T ([ \begin{matrix}i_{1} & ↦ & x_{1,1} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & x_{n,1} \end{matrix} ])

x_{1,2}  … x_{n,1}  T ([ \begin{matrix}i_{1} & ↦ & x_{1,2} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & x_{n,1} \end{matrix} ])

⋮  ⋮  ⋮

x_{1,m1−1} … x_{n,mn} T ([ \begin{matrix}i_{1} & ↦ & x_{1,m1-1} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & x_{n,mn} \end{matrix} ])

x_{1,m1}  … x_{n,mn} T ([ \begin{matrix}i_{1} & ↦ & x_{1,m1} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & x_{n,mn} \end{matrix} ])

27.2.4 Example

For the example para–table T from 31.2.2 we obtain

T = \begin{matrix}1 & 2 \\ 1 & 1 & ε \\ 2 & 1 & [ δ ∧ ¬β] \\ 3 & 1 & [ δ ∧ ¬β] \\ 1 & 2 & [ δ ∧ β] \\ 2 & 2 & ε \\ 3 & 2 & [ δ ∧ ¬β] \\ 1 & 3 & [ δ ∧ β] \\ 2 & 3 & [ δ ∧ β] \\ 3 & 3 & ε \end{matrix}

27.2.5 Definition

Let A be an atom class. For every completely finite schema X we define

Ptab (X, A) := \{ \begin{matrix}[T_{υ}|υ ∈ ⊗Y] \\ Y ≤ X and \\ T_{υ} ∈ Form (A) for each υ ∈ ⊗Y \end{matrix} \}

the para–table class over X and A.

And if C is a class family, we define

Opt (C, A) := \{ \begin{matrix}[T_{υ}|υ ∈ D_{1} × … × D_{n}] \\ D_{1}, …, D_{n} ∈ C and \\ T_{υ} ∈ Form (A) for each υ ∈ ⊗Y \end{matrix} \}

the ordinary para–table class over C and A.

*** examples ***

27.2.6 Definition

A para–table T = [T_{υ}|υ ∈ ⊗Y] is called:

(1) definite, if each formula T_{υ} is definite

(2) atomic, if each formula T_{υ} is atomic

(3) free, if T is atomic and injective

27.2.7 Example

Let A = {α_{1}, α_{2}, …} and

Y = [ \begin{matrix}i ↦ & \{a, b\} \\ j ↦ & \{b, c, d\} \end{matrix} ]

a completely finite schema.

(1) A definite para–table is given by

i j
a b  [ f ∧ f ]
b b  t
a c  [ f → t ]
b c  ¬t
a d  t
b d [ f ∧ [ t ∨ f ] ]

(2) An atomic para–table is

i j a b α_{3} b b α_{3} a c α_{3} b c α_{5} a d α_{5} b d α_{3}

(3) And an example of a free para–table is given by

i j a b α_{9} b b α_{2} a c α_{7} b c α_{5} a d α_{6} b d α_{1}

because this para–table is atomic as well as injective, meaning that the atom formulas in the right column are pairwise different.

27.3 Para–tables and relation classes

27.3.1 Introduction

Given the schema

X = [\begin{matrix}i ↦ & \{a, b\} \\ j ↦ & \{b, c, d\} \end{matrix}]

Because X is completely finite, every relation R ∈ Rel (X) can be represented by its boolean table diagram (see Thalg 17.5.4 ), i.e.

R = \begin{matrix}i & j \\ a & b & β_{1} \\ b & b & β_{2} \\ a & c & β_{3} \\ b & c & β_{4} \\ a & d & β_{5} \\ b & d & β_{6} \end{matrix} with β_{1}, …, β_{6} ∈ 𝔹

On the other hand, each para–table T ∈ Ptab (X, A) has the diagram

T = \begin{matrix}i & j \\ a & b & φ_{1} \\ b & b & φ_{2} \\ a & c & φ_{3} \\ b & c & φ_{4} \\ a & d & φ_{5} \\ b & d & φ_{6} \end{matrix} with φ_{1}, …, φ_{6} ∈ Form (A)

So obviously, the para–table T is a more general concept than the relation R: given the R from above, we put

φ_{i} := \begin{cases}f & if β_{i} = 0 \\ t & if β_{i} = 1 \end{cases}

That way, we obtain a definite T, which can be taken as a representation for R. So, for every R ∈ Rel (X) there is a definite para–table T ∈ Ptab (X, A) that represents R, and vice versa. We express this correspondence by

rel (T) = R

as defined in 31.3.6. More general, an arbitrary T ∈ Ptab (X, A) defines a whole class R ⊆ Rel (X) and this is written

Rel (T) = R

and also defined there. The actual power of the para–table concept lies in the fact, that there is an algorithm to construct a T ∈ Ptab (X, A) for every R ⊆ Rel (X) with Rel (T) = T . At least in case the atom set A is chosen big enough.

27.3.2 Definition

Let X be a completely finite schema.

If T = [T_{ξ}|ξ ∈ ⊗X] is a definite para–table, then

rel (T) := [ \begin{matrix}X \\ ξ ↝ ev(T (ξ)) = 1 \end{matrix} ]

is the relation of T

If R ∈ Rel (X) is a relation, then

ptab (R) := [T_{ξ}|ξ ∈ ⊗X] where T_{ξ} := \begin{cases}f & if ω ∉ R \\ t & if ω ∈ R \end{cases}

is the para–table of R

27.3.3 Example

*** CONTINUE HERE ***

27.3.4 Lemma

Let X be a completely finite schema. ( ; 𝅝 ; ) rel (ptab (R)) = R for every relation R ∈ Rel (X) ( ; 𝅝 ; ) ptab (rel (T)) = T for every definite para–table T with

dox (T) = X

27.3.5 Proof of 31.3.4

*** CONTINUE HERE ***

27.3.6 Definition

Let X be a completely finite schema, A an atom class and T = [T_{ξ}|ξ ∈ ⊗X] ∈ Ptab (X, A) a para–table.

*** update: might not be definite ***

For each ω ∈ Pval (A) we define

rel (T, ω) := [ \begin{matrix}X \\ ξ ↝ ev(val (T (ξ), ω)) = 1 \end{matrix} ]

is the relation of T and ω

*** update ***

For every compact Ω ⊆ Pval (A) we define

Rel (T, Ω) := {rel (T, ω) | ω ∈ Ω}

the relation class of T and Ω And for every φ ∈ Form (A) we define

Rel (T, φ) := Rel (T, UV (φ, A))

the relation class of T and φ

Finally, we define

Rel (T) := {rel (T, ω) | ω ∈ Val (A)}

the relation class of T

27.3.7 Example

*** CONTINUE HERE ***

27.3.8 Lemma

Let X be a completely finite schema. *** CONTINUE

HERE ***

( ; 𝅝 ; ) If T is definite, then rel (T, ω) = T

27.3.9 Proof of 31.3.4

*** CONTINUE HERE ***

27.3.10 Definition

Let X be a completely finite schema, A an atom class and T = [T_{ξ}|ξ ∈ ⊗X] ∈ Ptab (X, A) a para–table.

For every ω ∈ Pval (A) we define

val(T, ω) := [ val (T_{ξ}, ω) ξ ∈ ⊗X ]

is the valuation of T by ω

For every R ⊆ Rel (X) we define

Val (T, R) := {ω ∈ Val (Atf (T)) | rel (val (T, ω)) ∈ R}

the valuator class of T and R

For every R ⊆ Rel (X) and each linear order relation ≤ on A we define

dnf_{≤}(T, R) := dnf_{≤}(Val(T, R))

the DNF of T and R

27.3.11 Lemma

( ; 𝅝 ; ) *** CONTINUE HERE ***

( ; 𝅝 ; ) If T is free, then

*** UPDATE THE PAGES FROM HERE ONWARDS ***

27.3.12 Example

Again, let

X = [\begin{matrix}i ↦ & \{a, b\} \\ j ↦ & \{b, c, d\} \end{matrix}]

A definite para–table is given by

T = i j a b  [ f ∧ f ] b b  t a c  [ f → t ] b c  ¬t a d  t b d [ f ∧ [ t ∨ f ] ]

and we obtain

rel (T) = \begin{matrix}i & j \\ a & b & 0 \\ b & b & 1 \\ a & c & 1 \\ b & c & 0 \\ a & d & 1 \\ b & d & 0 \end{matrix}

27.3.13 Example

Given Again, let

X = [\begin{matrix}i ↦ & \{a, b\} \\ j ↦ & \{b, c, d\} \end{matrix}] and A = \{α_{1}, α_{2}, α_{3}\} an atom class

A para–table T on X and A and a valuation of A are given by

T = \begin{matrix}i & j \\ a & b & [ α_{1} ∧ α_{2} ] \\ b & b & α_{3} \\ a & c & [ α_{1} → α_{3} ] \\ b & c & ¬α_{3} \\ a & d & α_{3} \\ b & d & [ α_{1} ∧ [ α_{3} ∨ α_{2} ] ] \end{matrix} and ω = [ \begin{matrix}α_{1} ↦ & 0 \\ α_{2} ↦ & 0 \\ α_{3} ↦ & 1 \end{matrix} ]

We obtain

rel (T, ω) = i j a b  ev (val ([ α_{1} ∧ α_{2} ], ω)) b b  ev (val (α_{3}, ω)) a c  ev (val ([ α_{1} → α_{3} ], ω)) b c  ev (val (¬α_{3}, ω)) a d  ev (val (α_{3}, ω)) b d ev (val ([ α_{1} ∧ [ α_{3} ∨ α_{2} ] ], ω))

= i j a b  ev ([ f ∧ f ]) b b  ev (t) a c  ev ([ f → t ]) b c  ev (¬t) a d  ev (t) b d ev ([ f ∧ [ t ∨ f ] ]) = \begin{matrix}i & j \\ a & b & 0 \\ b & b & 1 \\ a & c & 1 \\ b & c & 0 \\ a & d & 1 \\ b & d & 0 \end{matrix}

27.3.14 Example

*** CONTINUE HERE *** rel (T, ω) and rel (T, φ)

27.3.15 Example Let us consider our standard example para–table from 31.2.2 again

T = \begin{matrix}1 & 2 \\ 1 & 1 & ε \\ 2 & 1 & [ δ ∧ ¬β] \\ 3 & 1 & [ δ ∧ ¬β] \\ 1 & 2 & [ δ ∧ β] \\ 2 & 2 & ε \\ 3 & 2 & [ δ ∧ ¬β] \\ 1 & 3 & [ δ ∧ β] \\ 2 & 3 & [ δ ∧ β] \\ 3 & 3 & ε \end{matrix}

The atom formula class of T was given by

Atf (T) = {β, δ, ε}

and there are eight functions of type Atf (T) ⟶ 𝔹, namely

\begin{matrix}ω_{1}= [\begin{matrix}β ↦ & 0 \\ δ ↦ & 0 \\ ε ↦ & 0 \end{matrix}] ω_{2}= [\begin{matrix}β ↦ & 1 \\ δ ↦ & 0 \\ ε ↦ & 0 \end{matrix}] ω_{3}= [\begin{matrix}β ↦ & 0 \\ δ ↦ & 1 \\ ε ↦ & 0 \end{matrix}] ω_{4}= [\begin{matrix}β ↦ & 1 \\ δ ↦ & 1 \\ ε ↦ & 0 \end{matrix}] \\ ω_{5}= [\begin{matrix}β ↦ & 0 \\ δ ↦ & 0 \\ ε ↦ & 1 \end{matrix}] ω_{6}= [\begin{matrix}β ↦ & 1 \\ δ ↦ & 0 \\ ε ↦ & 1 \end{matrix}] ω_{7}= [\begin{matrix}β ↦ & 0 \\ δ ↦ & 1 \\ ε ↦ & 1 \end{matrix}] ω_{8}= [\begin{matrix}β ↦ & 1 \\ δ ↦ & 1 \\ ε ↦ & 1 \end{matrix}] \end{matrix}

Each of these valuations ω_{i} turns T into a well–defined relation T_{i} := rel (T, ω_{i}). For example, for ω_{6} we obtain:

T_{6} = 1 2 1 1  ev (val (ε, ω6)) 2 1 ev (val ([ δ ∧ ¬β ], ω6)) 3 1 ev (val ([ δ ∧ ¬β ], ω6)) 1 2 ev (val ([ δ ∧ β ], ω6)) 2 2  ev (val (ε, ω6)) 3 2 ev (val ([ δ ∧ ¬β ], ω6)) 1 3 ev (val ([ δ ∧ β ], ω6)) 2 3 ev (val ([ δ ∧ β ], ω6)) 3 3  ev (val (ε, ω6)) = 1 2 1 1  ev (t) 2 1 ev ([ f ∧ ¬t ]) 3 1 ev ([ f ∧ ¬t ]) 1 2 ev ([ f ∧ t ]) 2 2  ev (t) 3 2 ev ([ f ∧ ¬t ]) 1 3 ev ([ f ∧ t ]) 2 3 ev ([ f ∧ t ]) 3 3  ev (t) = 1 2 1 1 1 2 1 0 3 1 0 1 2 0 2 2 1 3 2 0 1 3 0 2 3 0 3 3 1

The eight (not all different) relations alltogether are

\begin{matrix}T_{1} = T_{2} = 1 2 1 1 0 2 1 0 3 1 0 1 2 0 2 2 0 3 2 0 1 3 0 2 3 0 3 3 0  T_{3} = 1 2 1 1 0 2 1 1 3 1 1 1 2 0 2 2 0 3 2 1 1 3 0 2 3 0 3 3 0  T_{4} = 1 2 1 1 0 2 1 0 3 1 0 1 2 1 2 2 0 3 2 0 1 3 1 2 3 1 3 3 0 \\ T_{5} = T_{6} = 1 2 1 1 1 2 1 0 3 1 0 1 2 0 2 2 1 3 2 0 1 3 0 2 3 0 3 3 1  T_{7} = 1 2 1 1 1 2 1 1 3 1 1 1 2 0 2 2 1 3 2 1 1 3 0 2 3 0 3 3 1  T_{8} = 1 2 1 1 1 2 1 0 3 1 0 1 2 1 2 2 1 3 2 0 1 3 1 2 3 1 3 3 1 \end{matrix}

Note, that ( ; 𝅝 ; ) T_{1} and T_{2} are the empty relation ⊥_{X}, ( ; 𝅝 ; ) T_{5} and T_{6} are the identity relation Id_{X}, i.e. “=” on {1, 2, 3}, ( ; 𝅝 ; ) T_{3} is “>”, T_{4} is “<”, T_{7} is “≥”, T_{8} is “≤”, on {1, 2, 3} each.

That way, T is a way to represent a couple of standard order relations on {1, 2, 3}, namely

Rel (T) = {⊥_{X}, =, <, >, ≤, ≥} ⊆ Rel (X)

*** CONTINUE HERE ***

27.3.16 Lemma Let X be a completely finite schema and A a an identifier class. For all T ∈ Ptab (X, A) and all φ, φ_{1}, …, φ_{n} ∈ Form (A) holds

(1) Rel (T, 0) = ∅

(2) Rel (T, 1) = Rel (T)

(3) Rel (T, ¬φ) = Rel (T) \ Rel (T, φ)

(4) Rel (T, [ φ_{1} ∧ … ∧ φ_{n} ]) = \begin{cases}Rel (T) & if n = 0 \\ ∩^{n}_{i=1}Rel (T, φ_{i}) & if n > 0 \end{cases}

(5) Rel (T, [ φ_{1} ∨ … ∨ φ_{n} ]) = \begin{cases}∅ & if n = 0 \\ ∪^{n}_{i=1}Rel (T, φ_{i}) & if n > 0 \end{cases}

(6) φ ⇒ ψ implies Rel (T, φ) ⊆ Rel (T, ψ)

(7) φ ⇔ ψ implies Rel (T, φ) = Rel (T, ψ)

*** update the references to 28.2.21 in the following proof ***

27.3.17 Proof of 31.3.16

(1) Rel (T, 0)

= ∅

(2) Rel (T, 1)
(3) Rel (T, ¬φ)

= ∗ ∗ ∗CONTINUEHERE ∗ ∗∗ *** CONTINUE HERE ***

(4)

(5)

(6)

(7)

27.3.18 Definition

Given a completely finite schema X = [X_{i}|i ∈ I], a class A of identifiers and a normal form system

𝔑𝔉 = ⟨A, NF (A) , at, false, true, and, or, not⟩

For every R ∈ Rel (X) we define

ptab(R, A) := [ \begin{matrix}⊗X ⟶ Form (A) \\ ξ ↦ \begin{cases}t & if ξ ∈ R \\ f & if ξ ∉ R \end{cases} \end{matrix} ]

the para–table of R and A

ptab_{𝔑𝔉}(R, A) := [ \begin{matrix}⊗X ⟶ Form (A) \\ ξ ↦ \begin{cases}true & if ξ ∈ R \\ false & if ξ ∉ R \end{cases} \end{matrix} ]

the para–table of R and A

27.3.19 Example

*** CONTINUE HERE ***

27.3.20 Lemma

*** CONTINUE HERE ***

( ; 𝅝 ; ) rel (ptab (R, A)) = R

( ; 𝅝 ; ) rel_{𝔑𝔉}(ptab (R, A)) = R

27.3.21 Proof of 31.3.20

*** CONTINUE HERE ***

27.3.22 Lemma

*** CONTINUE HERE ***

If ω_{1} : A_{1} ⟶ 𝔹 and ω_{2} : A_{2} ⟶ 𝔹 with ω_{1}(α) = ω_{2}(α) for all α ∈ Atf (T), then rel (T, ω_{1}) = rel (T, ω_{2}).

27.3.23 Proof of 31.3.22

*** CONTINUE HERE ***

27.3.24 Lemma

Let T : ⊗X ⟶ Form (A) be a para–table.

(1) If T is definite then rel (T) ∈ Rel (X).

(2) rel (T, ω) ∈ Rel (X), for every ω : A ⟶ 𝔹

(3) Rel (T, φ) ⊆ Rel (X), for every φ ∈ Form (A)

(4) Rel (T) = Rel (T, 1)

(5) If T is free then rel (T) = Rel (X)

27.3.25 Proof of 31.3.24 27.3.26 Lemma

= {rel (T, ω) | ω ∈ UV (0, A)} due to def. 31.3.6 = {rel (T, ω) | ω ∈ ∅} due to def. 28.2.21(1)(a)

= {rel (T, ω) | ω ∈ UV (1, A)} due to def. 31.3.6 = {rel (T, ω) | ω ∈ Val (A)} due to 28.2.21(2)(a)

= Rel (T) due to def. 31.3.6 = {rel (T, ω) | ω ∈ UV (¬φ, A)} due to def. 31.3.6 = {rel (T, ω) | ω ∈ ZV (φ, A)} due to 28.2.21(4)(a)

Let X be a completely finite schema and A an identifier class.

(1) For every R = [Y, Γ] ∈ Rel (X) there exists a definite para– table T : ⊗X ⟶ Form (A) with rel (T) = R.

(2) If T : ⊗X ⟶ Form (A) is free and R ∈ Rel (X), then there is a ω : A ⟶ 𝔹 with rel (T, ω) = R.

(3) If T : ⊗X ⟶ Form (A) is free and R ⊆ Rel (X), then there is a φ ∈ Form (A) with Rel (T, φ) = R.

(4) If size (X) ≤ card (A) then for each R ⊆ Rel (X) there exists a para–table T : ⊗X ⟶ Form (A) and formula φ ∈ Form (A) such that Rel (T, φ) = R.

27.3.27 Proof of 31.3.26

*** CONTINUE HERE ***

27.3.28 Lemma

*** CONTINUE HERE ***

( ; 𝅝 ; ) If T is definite then ( ; 𝅗𝅥 ; ) rel (T, ω) = rel (T) for every ω

( ; 𝅗𝅥 ; ) Rel (T, φ) = \begin{cases}∅ & if φ ⇔ 0 \\ \{rel (T)\} & else \end{cases}

( ; 𝅗𝅥 ; ) Rel (T) = {rel (T)}

27.3.29 Proof of 31.3.28

27.4 Theory–algebraic operations on para–tables

27.4.1 Repetition

Recall Thalg 9.2.4 , that a record ξ = [ξ_{i}|i ∈ I] is univalent, iff ξ_{i} = ξ_{j} for all i, j ∈ I.

27.4.2 Definition Given a completely finite schema

X = [X_{i}|i ∈ I]

and a propositional formula system 𝔉 = ⟨Atm, Nf, at, false, true, and, or, not⟩

For every T ∈ Ptab (X, Atm) we define

nf_{𝔉}(T) := [ \begin{matrix}dom (T) ⟶ Nf \\ ξ ↦ nf_{𝔉}(T (ξ)) \end{matrix} ]

the 𝔉–normalization of T

For every Y ∈ Proj (X) we define

bot_{𝔉}(Y) := [ \begin{matrix}⊗Y ⟶ Nf \\ ξ ↦ false \end{matrix} ]

the bottom para–table of Y

top_{𝔉}(Y) := [ \begin{matrix}⊗Y ⟶ Nf \\ ξ ↦ true \end{matrix} ]

the top para–table of Y

bot_{𝔉} := bot_{𝔉}(⟨⟩) = [ \begin{matrix}\{⟨⟩\} ⟶ Nf \\ ⟨⟩ ↦ false \end{matrix} ]

is the bottom para–table

top_{𝔉} := top_{𝔉}(⟨⟩) = [ \begin{matrix}\{⟨⟩\} ⟶ Nf \\ ⟨⟩ ↦ true \end{matrix} ]

is the top para–table

For every Y ∈ Proj (X) we define

id (Y) := [ \begin{matrix}⊗Y ⟶ Nf \\ ξ ↦ \begin{cases}true & if ξ is univalent \\ false & else \end{cases} \end{matrix} ]

the identity para–table of Y

For every T ∈ Ptab (X, 𝔉) we define

neg (T) := [ \begin{matrix}dom (T) ⟶ Nf \\ ξ ↦ not (T (ξ)) \end{matrix} ]

the negation of T For all T, S ∈ Ptab (X, 𝔉) we define

meet (T, S) :=

⊗(dox (T) ∨ dox (S)) ⟶ Nf
ξ ↦ and (T (pr (ξ, @T)), S(pr (ξ, @S)))

the meet of T and S

join (T, S) :=

⊗(dox (T) ∨ dox (S)) ⟶ Nf
ξ ↦ or (T (pr (ξ, @T)), S(pr (ξ, @S)))

the join of T and S

And for all T_{1}, …, T_{n} ∈ Ptab (X, 𝔉) we put

meet_{𝔉}(T_{1}, …, T_{n})

:= \begin{cases}top_{𝔉} & if n = 0 \\ T_{1} & if n = 1 \\ meet_{𝔉}(meet_{𝔉}(T_{1}, T_{2}), T_{3}, …, T_{n}) & if n ≥ 2 \end{cases}

join_{𝔉}(T_{1}, …, T_{n})

:= \begin{cases}bot_{𝔉} & if n = 0 \\ T_{1} & if n = 1 \\ join_{𝔉}(join_{𝔉}(T_{1}, T_{2}), T_{3}, …, T_{n}) & if n ≥ 2 \end{cases}

For each T ∈ Ptab (X, 𝔉) and every i ∈ I, where

{x_{1}, …, x_{n}} = X_{i} and X′ := pr (X, @ (T) \ {i}) we define

supel (T, i) :=

[ \begin{matrix}⊗X′ ⟶ Nf \\ ξ ↦ or (T (ξ ˙∨ [ i ↦ x_{1} ]), …, T (ξ ˙∨ [ i ↦ x_{n} ])) \end{matrix} ]

the supremum elimination of T and i or the upper para–table of T without i

infel (T, i) :=
[ \begin{matrix}⊗X′ ⟶ Nf \\ ξ ↦ and (T (ξ ˙∨ [ i ↦ x_{1} ]), …, T (ξ ˙∨ [ i ↦ x_{n} ])) \end{matrix} ]

the infimum elimination of T and i or the lower para–table of T without i

*** define supel (T, ⟨i_{1}, …, i_{n}⟩) etc ***

*** define translation tr (T, τ) ***

*** the table diagram representation of these operations ***

*** examples examples examples ***

27.4.3 Lemma Let X be a completely finite schema and 𝔉 a propositional formula system on a given A.

For every Y ∈ Proj (X) holds:

( ; 𝅝 ; ) rel (bot (Y)) = ⊥_{Y}

( ; 𝅝 ; ) rel (top (Y)) = ⊤_{Y}

( ; 𝅝 ; ) rel (id (Y)) = Id_{Y}

For all T, S ∈ Ptab (X, 𝔉) and ω ∈ Val (A′) with Atf (T) ∪ Atf (S) ⊆ A′ ⊆ A holds ( ; 𝅝 ; ) rel (neg (T) , ω) = ¬rel (T, ω) ( ; 𝅝 ; ) rel (meet (T, S) , ω) = rel (T, ω) ⊓ rel (S, ω) ( ; 𝅝 ; ) rel (join (T, S) , ω) = rel (T, ω) ⊔ rel (S, ω)

( ; 𝅝 ; ) *** CONTINUE HERE *** *** update this ***

Let X be a completely finite schema and 𝔉 a propositional formula system on a given A. For all T, S ∈ Ptab (X, 𝔉) and φ ∈ Nf holds

( ; 𝅝 ; ) *** CONTINUE HERE ***

( ; 𝅝 ; ) Rel (meet (T, S)) = \{ \frac{rel (T, ω) ⊓ rel (S, ω)}{ω ∈ Val (A)} \}

( ; 𝅝 ; ) *** CONTINUE HERE ***

( ; 𝅝 ; ) Rel (meet (T, S) , φ) = \{ \frac{rel (T, ω) ⊓ rel (S, ω)}{ω ∈ UV (φ)} \}

( ; 𝅝 ; ) *** CONTINUE HERE ***

27.4.4 Proof of 31.4.3

*** CONTINUE HERE ***

28 Finite model construction for pure predicate logic

28.0.5 Repetition (from structures.tex) For every signature 𝔖 we define

INT (𝔖) := {ℑ | ℑ is interpretation of 𝔖}

the interpretation class of 𝔖

And if X is a schema, we also define

Int (𝔖, X) := {ℑ ∈ INT (𝔖) | car_{ℑ} = X}

the interpretation class of 𝔖 and X

28.0.6 Repetition (from tradipredlog.tex) For every proto–theory 𝔗 = ⟨𝔖, 𝔙, Ax⟩ we define

MOD (𝔗) := {ℑ ∈ INT (𝔖) | ℑ ⊧ φ for all φ ∈ Ax}

the model class of 𝔗

And if X is a schema, we also define

Mod (𝔗, X) := {ℑ ∈ Int (𝔖, X) | ℑ ⊧ φ for all φ ∈ Ax}

the model class of 𝔗 and X

28.1 Para–structures and para– interpretations

28.1.1 Repetition Recall 15.3.1, that an (ordinary) structure is given by 𝔄 = ⟨Car, Op⟩, where Car is a class of carrier classes and Op ⊆ Oops (Car) is a class of ordinary operators on Car.

28.1.2 Definition A para–structure is given by

𝔄 = ⟨Car, Atf, Opt⟩

where

(1) Car is a class of so–called carrier classes

(2) Atf is a class of identifiers, called atom formulas

(3) Opt ⊆ Opt (Car, Atf) is a set of ordinary para–tables

A para–structure 𝔄 = ⟨Car, Atf, Opt⟩ is called ( ; 𝅝 ; ) definite, if each para–table T ∈ Opt is definite ( ; 𝅝 ; ) atomic, if each para–table T ∈ Opt is atomic ( ; 𝅝 ; ) free, if each para–table T ∈ Opt is free and they have pair-

wise disjunct atom classes If 𝔄 = ⟨Car, Atf, Opt⟩ is a para–structure, we write

Car (𝔄) := Car Atf (𝔄) := Atf Opt (𝔄) := Opt

as a general convention to recover the components from “𝔄”.

28.1.3 Example

*** CONTINUE HERE ***

28.1.4 Definition

Let 𝔄 = ⟨Car, Atf, Opt⟩ be a para–structure.

If 𝔄 is definite, we define

struc (𝔄) := ⟨Car, {rel (T) | T ∈ Opt}⟩ the structure of 𝔄

For each ω ∈ Val (Atf) we define

struc (𝔄, ω) := ⟨Car, {rel (T, ω) | T ∈ Opt}⟩ the structure of 𝔄 and ω

For every φ ∈ Prop (Atf) we define

Struc (𝔄, φ) := { struc (𝔄, ω) ω ∈ UV (φ, Atf) } the structure class of 𝔄 and φ

Finally, we define

Struc (𝔄) := {struc (𝔄, ω) | ω ∈ Val (Atf)} the structure class of 𝔄

28.1.5 Example

*** CONTINUE HERE ***

28.2 Para–interpretations

28.2.1 Repetition

*** there are a couple of errors in structures-interdef — correct these first ***

Recall 15.5.1, that an (ordinary) interpretation or symbolized structure is given by

ℑ = ⟨𝔖, 𝔄, car, op⟩

where

(1) 𝔖 = ⟨Csy, Osy, sig⟩ is an (ordinary) signature (2) 𝔄 = ⟨Car, Op⟩ is an (ordinary) structure (3) car : Csy ⟶ Car is surjective, i.e. a schema (4) op : Osy ⟶ Op is surjective, i.e. a record

such that the signatures of 𝔖 and 𝔄 are compatible.

And if ℑ = ⟨𝔖, 𝔄, car, op⟩ is an interpretation of a finite signature

𝔖 = ( S_{1}, …, S_{k} ; o_{1} : τ_{1} ; ⋮ ; o_{n} : τ_{n} )

then ℑ itself is often represented more conveniently by its compact form

S_{1} ↦ car(S_{1})
⋮  ⋮
(S_{k} ↦ car(S_{k})) / (o_{1} ↦ op(o_{1}))
⋮  ⋮
o_{n} ↦ op(o_{n})

28.2.2 Definition A para–interpretation or symbolized para–structure is given by

ℑ = ⟨𝔖, 𝔄, car, opt⟩

where

(1) 𝔖 = ⟨Csy, Osy, sig⟩ is a ordinary relational signature (i.e. all operation symbols are relation symbols)

(2) 𝔄 = ⟨Car, Atf, Opt⟩ is a para–structure

(3) car : Csy ⟶ Car is surjective, i.e. a schema

(4) opt : Osy ⟶ Opt is surjective, i.e. a record such that 𝔖 and 𝔄 are compatible in the sense that R : D_{1} ↭ … ↭ D_{n} implies

opt (R) : car (D_{1}) × … × car (D_{n}) ⟶ Prop (Atf)

for all R ∈ Osy.

If ℑ is such a para–interpretation and the relational signature 𝔖 is finite

𝔖 = ( S_{1}, …, S_{k} ; R_{1} : τ_{1} ; ⋮ ; R_{n} : τ_{n} )

then ℑ itself is often represented more conveniently by its compact form

S_{1} ↦ car(S_{1})
⋮  ⋮
(S_{k} ↦ car(S_{k})) / (R_{1} ↦ opt(R_{1}))
⋮  ⋮
R_{n} ↦ opt(R_{n})

If ℑ = ⟨𝔖, 𝔄, car, opt⟩ is an interpretation, we say that “ℑ is a para–interpretation of 𝔖” or “𝔖 is a symbolization of 𝔄”. And we define

𝔰𝔦𝔤𝔫 (ℑ) := 𝔖  𝔭𝔰𝔱𝔯𝔲𝔠 (ℑ) := 𝔄
car_{ℑ} := car  opt_{ℑ} := opt
Csy (ℑ) := Csy (𝔖)  Osy (ℑ) := Osy (𝔖)
Car (ℑ) := Car (𝔄)  Atf (ℑ) := Atf (𝔄)
Opt (ℑ) := Opt (𝔄)
sig_{ℑ} := sig_{𝔖}  ar_{ℑ} := ar_{𝔖}
cosy_{ℑ} := cosy_{𝔖}  dosys_{ℑ} := dosys_{𝔖}

to recover all components and subcomponents from a given “ℑ”.

A para–interpretation ℑ = ⟨𝔖, 𝔄, car, opt⟩ is called

( ; 𝅝 ; ) definite, if 𝔄 is definite

( ; 𝅝 ; ) free, if 𝔄 is free

28.2.3 Example

*** CONTINUE HERE ***

28.2.4 Definition

Let ℑ = ⟨𝔖, 𝔄, car, opt⟩ be a para–interpretation.

If ℑ is definite, then

int (ℑ) := ⟨𝔖, struc (𝔄) , car, rel ∘ opt⟩ the interpretation of ℑ

int (ℑ, ω) := ∗ ∗ ∗CONTINUEHERE ∗ ∗∗

the interpretation of ℑ and ω

Int (ℑ, φ) := {int (ℑ, ω) | ω : Atf (ℑ) ⟶ 𝔹}

the interpretation class of ℑ and ω

Int (ℑ) := {int (ℑ, ω) | ω : Atf (ℑ) ⟶ 𝔹} the interpretation class of ℑ

28.2.5 Example

*** CONTINUE HERE ***

28.2.6 Lemma

( ; 𝅝 ; ) int (ℑ) ∈ Int (𝔖, car) for definite ℑ

( ; 𝅝 ; ) int (ℑ, ω) ∈ Int (𝔖, car)

( ; 𝅝 ; ) Int (ℑ, φ) ⊆ Int (𝔖, car)

( ; 𝅝 ; ) Int (ℑ) ⊆ Int (𝔖, car)

If ℑ = ⟨𝔖, 𝔄, car, opt⟩ is free, then

( ; 𝅝 ; ) Int (ℑ) = Int (𝔖, car)

28.2.7 Proof of 32.2.6

*** CONTINUE HERE ***

28.3 The transformation of predicate into propositional formulas

28.3.1 Definition

Ror each extended signature 𝔖†𝔙 and each para–interpretation ℑ of 𝔖 we define

VX_{𝔖†𝔙}^{ℑ} := [car_{ℑ}(sort_{𝔙}(v))|v ∈ Var (𝔙)]

the variable schema of 𝔖 † 𝔙 and ℑ

28.3.2 Definition

Let 𝔖 † 𝔙 be an extended signature and ℑ a para–interpretation of 𝔖. We define

ptab_{ℑ} :=

Form (𝔖 † 𝔙) ⟶ Ptab (VX_{𝔖†𝔙}^{ℑ}, Atf (ℑ))
R(v_{1}, …, v_{n}) ↦ tr (op_{ℑ}(R), ⟨v_{1}, …, v_{n}⟩)
[ v_{1} = v_{2} ] ↦ id ([\begin{matrix}v_{1} ↦ & cod_{ℑ}(v_{1}) \\ v_{2} ↦ & cod_{ℑ}(v_{2}) \end{matrix}])
¬φ ↦ neg (ptab_{ℑ}(φ))
[ φ_{1} ∧ … ∧ φ_{n} ] ↦ meet_{i=1}^{n}ptab_{ℑ}(φ_{i})
[ φ_{1} ∨ … ∨ φ_{n} ] ↦ join_{i=1}^{n}ptab_{ℑ}(φ_{i})
∃v . φ ↦ supelim (ptab_{ℑ}(φ), v)
∀v . φ ↦ infelim (ptab_{ℑ}(φ), v)

the para–table constructor (of ℑ) (on formulas of 𝔖 † 𝔙)

*** update the type expression of prop, which goes from predicate sentences into propositional formulas ***

prop_{ℑ} := [ \begin{matrix}Sent (𝔖 † 𝔙) ⟶ Prop (Atf (ℑ)) \\ φ ↦ ptab_{ℑ}(φ)(⟨⟩) \end{matrix} ]

the propositionalizator

28.3.3 Theorem

Let 𝔗 = ⟨𝔖, 𝔙, Ax⟩ be a finite proto–theory with Ax = {φ_{1}, …, φ_{n}} and let X be a completely finite schema on the carrier symbols of 𝔖 (i.e. dom (X) = Csy (𝔖)). Then

Mod (𝔗, X) = Int (ℑ, prop_{ℑ}([ φ_{1} ∧ … ∧ φ_{n} ]))

for each free para–interpretation ℑ of 𝔖 with car_{I} = X.

28.3.4 Proof of 32.3.3

*** CONTINUE HERE ***

28.4 An introductory examples

28.4.1 Example

*** update ***

Given

(i) an extended signature

                      𝔛 := ( \begin{matrix}D \\ R : D ↭ D \\ x : D \\ y : D \\ z : D \end{matrix} )

(ii) a formula φ ∈ Form (𝔛), namely

φ := ∀x . ∃y . R(y, x)

(iii) a completely finite schema on the set symbols of 𝔛, which in this case is just [ D ↦ D], i.e. some finite set D. We choose

D := {a, b, c}

So

R = \begin{matrix}1 : D & 2 : D \\ a & a & β1 \\ b & a & β2 \\ c & a & β3 \\ a & b & β4 \\ b & b & β5 \\ c & b & β6 \\ a & c & β7 \\ b & c & β8 \\ c & c & β9 \end{matrix}

Then *** make the following derivation a latex derivation and add comments to explain the steps ***

r_{ℑ}(φ)∗ ∗ ∗ define ℑ and r_{ℑ} ∗ ∗∗

= r_{ℑ} (∀x . ∃y . R(y, x))

= tr (R, [ \begin{matrix}1 ↦ & y \\ 2 ↦ & x \end{matrix} ])⇂ y↾ x

= \begin{matrix}y : D & x : D \\ a & a & β1 \\ b & a & β2 \\ c & a & β3 \\ a & b & β4 \\ b & b & β5 \\ c & b & β6 \\ a & c & β7 \\ b & c & β8 \\ c & c & β9 \end{matrix} ⇂ y↾ x

= a b c y ; a β1 β2 β3 ; b β4 β5 β6 ; c β7 β8 β9 ; x ⇂ y↾ x

= x ; a β1 ∨ β2 ∨ β3 ; b β4 ∨ β5 ∨ β6 ; c β7 ∨ β8 ∨ β9 ↾ x

= _{(β1 ∨ β2 ∨ β3) ∧ (β4 ∨ β5 ∨ β6) ∧ (β7 ∨ β8 ∨ β9)}

So

\begin{aligned}ℑ ⊧ φ & iff & r_{ℑ}(φ) ≡ ⊤ \\ & iff & (β_{1} ∨ β_{2} ∨ β_{3}) ∧ (β_{4} ∨ β_{5} ∨ β_{6}) ∧ (β_{7} ∨ β_{8} ∨ β_{9}) = 1 \end{aligned}

28.5 More examples

28.5.1 Example

                      𝔛 := ( \begin{matrix}D \\ R : D ↭ D \\ x : D \\ y : D \\ z : D \end{matrix} )

Also given a formula φ_{strict} ∈ Form (𝔛) which is saying that R is a strict linear order, i.e.

φ_{strict} := [ φ_{tr} ∧ φ_{irr} ∧ φ_{asy} ∧ φ_{tot} ]

with

φ_{tr} := ∀x . ∀y . ∀z . [ [ R(x, y) ∧ R(y, z) ] → R(x, z) ] (transitivity)
φ_{irr} := ∀x . ¬R(x, x)  irreflexivity
φ_{asy} := ∀x . ∀y . [ R(x, y) → ¬R(y, x) ]  (asymmetry)
φ_{tot} := ∀x . ∀y . [ R(x, y) ∨ R(y, x) ]  (totality)

*** CONTINUE HERE ***

28.5.2 Example

                                                                                             𝔛 := ( \begin{matrix}D \\ R : D ↭ D \\ x : D \\ y : D \\ z : D \end{matrix} )

Also given a formula φ ∈ Form (𝔛) which is saying that R is a strict linear order without greatest element, i.e.

φ := [ φ_{strict} ∧ φ_{succ} ]

where

φ_{strict} := as in 32.5.1
φ_{succ} := ∀x . ∃y . R(x, y)  (each x has a successor)

*** CONTINUE HERE ***

*** define a formula saying that there must be three elements, and then check it for a two– and a three–element set ***

*** another example with two relation symbols S and R ***

PredLogInTheoAlgRel 177

28.6 Case study: The proto–theory of equivalence relations on a ternary carrier

class

28.6.1 Example Given a proto–theory 𝔗 and a completely finite schema X, where

(i) 𝔗 = ⟨𝔖, 𝔙, Ax⟩ with

𝔖 = ( \frac{S}{R : S ↭ S} ) 𝔙 = ( \begin{matrix}x : S \\ y : S \\ z : S \end{matrix} )
Ax = {φ_{refl}, φ_{symm}, φ_{tran}}

and

φ_{refl} := ∀x . R(x, x)
φ_{symm} := ∀x . ∀y . [ R(x, y) → R(y, x) ]
φ_{trans} := ∀x . ∀y . ∀z . [ [ R(x, y) ∧ R(y, z) ] → R(x, z ]

(ii) X = [ S ↦ {a, b, c}] We put

ℑ := [ \begin{matrix}S ↦ & \{a, b, c\} \\ R ↦ & \begin{matrix}1 & 2 \\ a & a & α_{1} \\ b & a & α_{2} \\ c & a & α_{3} \\ a & b & α_{4} \\ b & b & α_{5} \\ c & b & α_{6} \\ a & c & α_{7} \\ b & c & α_{8} \\ c & c & α_{9} \end{matrix} \end{matrix} ]

*** CONTINUE HERE ***There are five results *** CONTINUE HERE ***

\begin{matrix}1 & 2 \\ a & a & 1 \\ b & a & 0 \\ c & a & 0 \\ a & b & 0 \\ b & b & 1 \\ c & b & 0 \\ a & c & 0 \\ b & c & 0 \\ c & c & 1 \end{matrix}  \begin{matrix}1 & 2 \\ a & a & 1 \\ b & a & 0 \\ c & a & 0 \\ a & b & 0 \\ b & b & 1 \\ c & b & 1 \\ a & c & 0 \\ b & c & 1 \\ c & c & 1 \end{matrix}  \begin{matrix}1 & 2 \\ a & a & 1 \\ b & a & 0 \\ c & a & 1 \\ a & b & 0 \\ b & b & 1 \\ c & b & 0 \\ a & c & 1 \\ b & c & 0 \\ c & c & 1 \end{matrix}  \begin{matrix}1 & 2 \\ a & a & 1 \\ b & a & 1 \\ c & a & 0 \\ a & b & 1 \\ b & b & 1 \\ c & b & 0 \\ a & c & 0 \\ b & c & 0 \\ c & c & 1 \end{matrix}  \begin{matrix}1 & 2 \\ a & a & 1 \\ b & a & 1 \\ c & a & 1 \\ a & b & 1 \\ b & b & 1 \\ c & b & 1 \\ a & c & 1 \\ b & c & 1 \\ c & c & 1 \end{matrix}

corresponding to the five partitions of {a, b, c}

{{a} , {b} , {c}}  {{a} , {b, c}}  {{a, c} , {b}}  {{a, b} , {c}}  {{a, b, c}}

PredLogInTheoAlgRel 178

Figure 27: ptab_{ℑ}(φ_{refl})

ptab_{ℑ}(φ_{refl}) = ptab_{ℑ}(∀x . R(x, x)) = infel (tr (ℑ (R) , ⟨x, x⟩) , x)

= infel (tr ( \begin{matrix}1 & 2 \\ a & a & α1 \\ b & a & α2 \\ c & a & α3 \\ a & b & α4 \\ b & b & α5 \\ c & b & α6 \\ a & c & α7 \\ b & c & α8 \\ c & c & α9 \end{matrix} , [ \begin{matrix}1 ↦ & x \\ 2 ↦ & x \end{matrix} ]) , x)

= infel ( x ; a α1 ; b α5 ; c α9 , x)

= [ α_{1} ∧ α_{5} ∧ α_{9} ]

Figure 28: ptab_{ℑ}(φ_{symm})

Then ptab_{ℑ}(φ_{refl}) = ptab_{ℑ}(∀x . ∀y . [ R(x, y) → R(y, x) ]) = ptab_{ℑ}(∀x . ∀y . [ ¬R(x, y) ∨ R(y, x) ]) = infel (infel (join (neg (tr (ℑ (R) , ⟨x, y⟩)) , tr (ℑ (R) , ⟨y, x⟩)) , y) , x)

= infel (infel (join (neg (tr ( \begin{matrix}1 & 2 \\ a & a & α1 \\ b & a & α2 \\ c & a & α3 \\ a & b & α4 \\ b & b & α5 \\ c & b & α6 \\ a & c & α7 \\ b & c & α8 \\ c & c & α9 \end{matrix} , [ \begin{matrix}1 ↦ & x \\ 2 ↦ & y \end{matrix} ])) , tr ( \begin{matrix}1 & 2 \\ a & a & α1 \\ b & a & α2 \\ c & a & α3 \\ a & b & α4 \\ b & b & α5 \\ c & b & α6 \\ a & c & α7 \\ b & c & α8 \\ c & c & α9 \end{matrix} , [ \begin{matrix}1 ↦ & y \\ 2 ↦ & x \end{matrix} ])) , y) , x)

= infel (infel (join (neg ( \begin{matrix}x & y \\ a & a & α1 \\ b & a & α2 \\ c & a & α3 \\ a & b & α4 \\ b & b & α5 \\ c & b & α6 \\ a & c & α7 \\ b & c & α8 \\ c & c & α9 \end{matrix} ) , \begin{matrix}y & x \\ a & a & α1 \\ b & a & α2 \\ c & a & α3 \\ a & b & α4 \\ b & b & α5 \\ c & b & α6 \\ a & c & α7 \\ b & c & α8 \\ c & c & α9 \end{matrix} ) , y) , x)

= infel (infel (join ( \begin{matrix}x & y \\ a & a & ¬α1 \\ b & a & ¬α2 \\ c & a & ¬α3 \\ a & b & ¬α4 \\ b & b & ¬α5 \\ c & b & ¬α6 \\ a & c & ¬α7 \\ b & c & ¬α8 \\ c & c & ¬α9 \end{matrix} , \begin{matrix}y & x \\ a & a & α1 \\ b & a & α2 \\ c & a & α3 \\ a & b & α4 \\ b & b & α5 \\ c & b & α6 \\ a & c & α7 \\ b & c & α8 \\ c & c & α9 \end{matrix} ) , y) , x)

= infel (infel ( \begin{matrix}x & y \\ a & a & 1 \\ b & a & [ ¬α2 ∨ α4 ] \\ c & a & [ ¬α3 ∨ α7 ] \\ a & b & [ ¬α4 ∨ α2 ] \\ b & b & 1 \\ c & b & [ ¬α6 ∨ α8 ] \\ a & c & [ ¬α7 ∨ α3 ] \\ b & c & [ ¬α8 ∨ α6 ] \\ c & c & 1 \end{matrix} , y) , x)

= infel ( x ; a [ [ ¬α4 ∨ α2 ] ∧ [ ¬α7 ∨ α3 ] ] ; b [ [ ¬α2 ∨ α4 ] ∧ [ ¬α8 ∨ α6 ] ] ; c [ [ ¬α3 ∨ α7 ] ∧ [ ¬α6 ∨ α8 ] ] , x)

= [ [ ¬α_{4} ∨ α_{2} ] ∧ [ ¬α_{7} ∨ α_{3} ] ∧ [ ¬α_{2} ∨ α_{4} ] ∧ [ ¬α_{8} ∨ α_{6} ] ∧ [ ¬α_{3} ∨ α_{7} ] ∧ [ ¬α_{6} ∨ α_{8} ] ]

= [ [ [ ¬α_{4} ∨ α_{2} ] ∧ [ ¬α_{2} ∨ α_{4} ] ] ∧ [ [ ¬α_{7} ∨ α_{3} ] ∧ [ ¬α_{3} ∨ α_{7} ] ] ∧ [ [ ¬α_{8} ∨ α_{6} ] ∧ [ ¬α_{6} ∨ α_{8} ] ] ]

= [ [ α_{2} ↔ α_{4} ] ∧ [ α_{3} ↔ α_{7} ] ∧ [ α_{6} ↔ α_{8} ] ]

Figure 29: ptab_{ℑ}(φ_{trans})

ptab_{ℑ}(φ_{trans}) = ptab_{ℑ} (∀x . ∀y . ∀z . [ [ R(x, y) ∧ R(y, z) ] → R(x, z) ]) = ptab_{ℑ} (∀x . ∀y . ∀z . [ ¬[ R(x, y) ∧ R(y, z) ] ∨ R(x, z) ]) = infel (infel (infel (join (neg (meet (tr (ℑ (R) , ⟨x, y⟩) , tr (ℑ (R) , ⟨y, z⟩))) , tr (ℑ (R) , ⟨x, z⟩)) , z) , y) , x)

= infel (infel (infel (join (neg (meet ( \begin{matrix}x & y \\ a & a & α1 \\ b & a & α2 \\ c & a & α3 \\ a & b & α4 \\ b & b & α5 \\ c & b & α6 \\ a & c & α7 \\ b & c & α8 \\ c & c & α9 \end{matrix} , \begin{matrix}y & z \\ a & a & α1 \\ b & a & α2 \\ c & a & α3 \\ a & b & α4 \\ b & b & α5 \\ c & b & α6 \\ a & c & α7 \\ b & c & α8 \\ c & c & α9 \end{matrix} )) , \begin{matrix}x & z \\ a & a & α1 \\ b & a & α2 \\ c & a & α3 \\ a & b & α4 \\ b & b & α5 \\ c & b & α6 \\ a & c & α7 \\ b & c & α8 \\ c & c & α9 \end{matrix} ) , z) , y) , x)

= infel (infel (infel ( \begin{matrix}x & y & z \\ a & a & a & [ ¬[ α1 ∧ α1 ] ∨ α1 ] \\ b & a & a & [ ¬[ α2 ∧ α1 ] ∨ α2 ] \\ c & a & a & [ ¬[ α3 ∧ α1 ] ∨ α3 ] \\ a & b & a & [ ¬[ α4 ∧ α2 ] ∨ α1 ] \\ b & b & a & [ ¬[ α5 ∧ α2 ] ∨ α2 ] \\ c & b & a & [ ¬[ α6 ∧ α2 ] ∨ α3 ] \\ a & c & a & [ ¬[ α7 ∧ α3 ] ∨ α1 ] \\ b & c & a & [ ¬[ α8 ∧ α3 ] ∨ α2 ] \\ c & c & a & [ ¬[ α9 ∧ α3 ] ∨ α3 ] \\ a & a & b & [ ¬[ α1 ∧ α4 ] ∨ α4 ] \\ b & a & b & [ ¬[ α2 ∧ α4 ] ∨ α5 ] \\ c & a & b & [ ¬[ α3 ∧ α4 ] ∨ α6 ] \\ a & b & b & [ ¬[ α4 ∧ α5 ] ∨ α4 ] \\ b & b & b & [ ¬[ α5 ∧ α5 ] ∨ α5 ] \\ c & b & b & [ ¬[ α6 ∧ α5 ] ∨ α6 ] \\ a & c & b & [ ¬[ α7 ∧ α6 ] ∨ α4 ] \\ b & c & b & [ ¬[ α8 ∧ α6 ] ∨ α5 ] \\ c & c & b & [ ¬[ α9 ∧ α6 ] ∨ α6 ] \\ a & a & c & [ ¬[ α1 ∧ α7 ] ∨ α7 ] \\ b & a & c & [ ¬[ α2 ∧ α7 ] ∨ α8 ] \\ c & a & c & [ ¬[ α3 ∧ α7 ] ∨ α9 ] \\ a & b & c & [ ¬[ α4 ∧ α8 ] ∨ α7 ] \\ b & b & c & [ ¬[ α5 ∧ α8 ] ∨ α8 ] \\ c & b & c & [ ¬[ α6 ∧ α8 ] ∨ α9 ] \\ a & c & c & [ ¬[ α7 ∧ α9 ] ∨ α7 ] \\ b & c & c & [ ¬[ α8 ∧ α9 ] ∨ α8 ] \\ c & c & c & [ ¬[ α9 ∧ α9 ] ∨ α9 ] \end{matrix} , z) , y) , x) = infel (infel (infel ( \begin{matrix}x & y & z \\ a & a & a & 1 \\ b & a & a & 1 \\ c & a & a & 1 \\ a & b & a & [ α1 ∨ ¬α2 ∨ ¬α4 ] \\ b & b & a & 1 \\ c & b & a & [ ¬α2 ∨ α3 ∨ ¬α6 ] \\ a & c & a & [ α1 ∨ ¬α3 ∨ ¬α7 ] \\ b & c & a & [ α2 ∨ ¬α3 ∨ ¬α8 ] \\ c & c & a & 1 \\ a & a & b & 1 \\ b & a & b & [ ¬α2 ∨ ¬α4 ∨ α5 ] \\ c & a & b & [ ¬α3 ∨ ¬α4 ∨ α6 ] \\ a & b & b & 1 \\ b & b & b & 1 \\ c & b & b & 1 \\ a & c & b & [ α4 ∨ ¬α6 ∨ ¬α7 ] \\ b & c & b & [ α5 ∨ ¬α6 ∨ ¬α8 ] \\ c & c & b & 1 \\ a & a & c & 1 \\ b & a & c & [ ¬α2 ∨ ¬α7 ∨ α8 ] \\ c & a & c & [ ¬α3 ∨ ¬α7 ∨ α9 ] \\ a & b & c & [ ¬α4 ∨ α7 ∨ ¬α8 ] \\ b & b & c & 1 \\ c & b & c & [ ¬α6 ∨ ¬α8 ∨ α9 ] \\ a & c & c & 1 \\ b & c & c & 1 \\ c & c & c & 1 \end{matrix} , z) , y) , x)

= infel (infel ( \begin{matrix}x & y \\ a & a & 1 \\ b & a & [ [ ¬α2 ∨ ¬α4 ∨ α5 ] ∧ [ ¬α2 ∨ ¬α7 ∨ α8 ] ] \\ c & a & [ [ ¬α3 ∨ ¬α4 ∨ α6 ] ∧ [ ¬α3 ∨ ¬α7 ∨ α9 ] ] \\ a & b & [ [ α1 ∨ ¬α2 ∨ ¬α4 ] ∧ [ ¬α4 ∨ α7 ∨ ¬α8 ] ] \\ b & b & 1 \\ c & b & [ [ ¬α2 ∨ α3 ∨ ¬α6 ] ∧ [ ¬α6 ∨ ¬α8 ∨ α9 ] ] \\ a & c & [ [ α1 ∨ ¬α3 ∨ ¬α7 ] ∧ [ α4 ∨ ¬α6 ∨ ¬α7 ] ] \\ b & c & [ [ α2 ∨ ¬α3 ∨ ¬α8 ] ∧ [ α5 ∨ ¬α6 ∨ ¬α8 ] ] \\ c & c & 1 \end{matrix} , y) , x)

= infel ( x ; a [ [ α_{1} ∨ ¬α_{2} ∨ ¬α_{4} ] ∧ [ ¬α_{4} ∨ α_{7} ∨ ¬α_{8} ] ∧ [ α_{1} ∨ ¬α_{3} ∨ ¬α_{7} ] ∧ [ α_{4} ∨ ¬α_{6} ∨ ¬α_{7} ] ] ; b [ [ ¬α_{2} ∨ ¬α_{4} ∨ α_{5} ] ∧ [ ¬α_{2} ∨ ¬α_{7} ∨ α_{8} ] ∧ [ α_{2} ∨ ¬α_{3} ∨ ¬α_{8} ] ∧ [ α_{5} ∨ ¬α_{6} ∨ ¬α_{8} ] ] ; c [ [ ¬α_{3} ∨ ¬α_{4} ∨ α_{6} ] ∧ [ ¬α_{3} ∨ ¬α_{7} ∨ α_{9} ] ∧ [ ¬α_{2} ∨ α_{3} ∨ ¬α_{6} ] ∧ [ ¬α_{6} ∨ ¬α_{8} ∨ α_{9} ] ] , x)

= [\begin{matrix}[ α_{1} ∨ ¬α_{2} ∨ ¬α_{4} ] ∧ [ ¬α_{4} ∨ α_{7} ∨ ¬α_{8} ] ∧ [ α_{1} ∨ ¬α_{3} ∨ ¬α_{7} ] ∧ [ α_{4} ∨ ¬α_{6} ∨ ¬α_{7} ] ∧ [ ¬α_{2} ∨ ¬α_{4} ∨ α_{5} ] ∧ [ ¬α_{2} ∨ ¬α_{7} ∨ α_{8} ]∧ \\ [ α_{2} ∨ ¬α_{3} ∨ ¬α_{8} ] ∧ [ α_{5} ∨ ¬α_{6} ∨ ¬α_{8} ] ∧ [ ¬α_{3} ∨ ¬α_{4} ∨ α_{6} ] ∧ [ ¬α_{3} ∨ ¬α_{7} ∨ α_{9} ] ∧ [ ¬α_{2} ∨ α_{3} ∨ ¬α_{6} ] ∧ [ ¬α_{6} ∨ ¬α_{8} ∨ α_{9} ] \end{matrix}]

PredLogInTheoAlgRel 181

Figure 30:

ptab_{ℑ} ([ φ_{refl} ∧ φ_{symm} ∧ φ_{tran} ])

= meet (ptab_{ℑ}(φ_{refl}), ptab_{ℑ}(φ_{symm}), ptab_{ℑ}(φ_{tran}),)

= meet ( [ α_{1} ∧ α_{5} ∧ α_{9} ] , [\begin{matrix}[ α_{2} ↔ α_{4} ]∧ \\ [ α_{3} ↔ α_{7} ]∧ \\ [ α_{6} ↔ α_{8} ] \end{matrix}] , [\begin{matrix}[ α_{1} ∨ ¬α_{2} ∨ ¬α_{4} ] ∧ [ ¬α_{4} ∨ α_{7} ∨ ¬α_{8} ]∧ \\ [ α_{1} ∨ ¬α_{3} ∨ ¬α_{7} ] ∧ [ α_{4} ∨ ¬α_{6} ∨ ¬α_{7} ]∧ \\ [ ¬α_{2} ∨ ¬α_{4} ∨ α_{5} ] ∧ [ ¬α_{2} ∨ ¬α_{7} ∨ α_{8} ]∧ \\ [ α_{2} ∨ ¬α_{3} ∨ ¬α_{8} ] ∧ [ α_{5} ∨ ¬α_{6} ∨ ¬α_{8} ]∧ \\ [ ¬α_{3} ∨ ¬α_{4} ∨ α_{6} ] ∧ [ ¬α_{3} ∨ ¬α_{7} ∨ α_{9} ]∧ \\ [ ¬α_{2} ∨ α_{3} ∨ ¬α_{6} ] ∧ [ ¬α_{6} ∨ ¬α_{8} ∨ α_{9} ] \end{matrix}] )

= [[ α_{1} ∧ α_{5} ∧ α_{9} ] ∧ [\begin{matrix}[ α_{2} ↔ α_{4} ]∧ \\ [ α_{3} ↔ α_{7} ]∧ \\ [ α_{6} ↔ α_{8} ] \end{matrix}] ∧ [\begin{matrix}[ α_{1} ∨ ¬α_{2} ∨ ¬α_{4} ] ∧ [ ¬α_{4} ∨ α_{7} ∨ ¬α_{8} ]∧ \\ [ α_{1} ∨ ¬α_{3} ∨ ¬α_{7} ] ∧ [ α_{4} ∨ ¬α_{6} ∨ ¬α_{7} ]∧ \\ [ ¬α_{2} ∨ ¬α_{4} ∨ α_{5} ] ∧ [ ¬α_{2} ∨ ¬α_{7} ∨ α_{8} ]∧ \\ [ α_{2} ∨ ¬α_{3} ∨ ¬α_{8} ] ∧ [ α_{5} ∨ ¬α_{6} ∨ ¬α_{8} ]∧ \\ [ ¬α_{3} ∨ ¬α_{4} ∨ α_{6} ] ∧ [ ¬α_{3} ∨ ¬α_{7} ∨ α_{9} ]∧ \\ [ ¬α_{2} ∨ α_{3} ∨ ¬α_{6} ] ∧ [ ¬α_{6} ∨ ¬α_{8} ∨ α_{9} ] \end{matrix}]]

= [\begin{matrix}[ α_{1} ∧ ¬α_{2} ∧ ¬α_{3} ∧ ¬α_{4} ∧ α_{5} ∧ ¬α_{6} ∧ ¬α_{7} ∧ ¬α_{8} ∧ α_{9} ]∨ \\ [ α_{1} ∧ ¬α_{2} ∧ ¬α_{3} ∧ ¬α_{4} ∧ α_{5} ∧ α_{6} ∧ ¬α_{7} ∧ α_{8} ∧ α_{9} ]∨ \\ [ α_{1} ∧ ¬α_{2} ∧ α_{3} ∧ ¬α_{4} ∧ α_{5} ∧ ¬α_{6} ∧ α_{7} ∧ ¬α_{8} ∧ α_{9} ]∨ \\ [ α_{1} ∧ α_{2} ∧ ¬α_{3} ∧ α_{4} ∧ α_{5} ∧ ¬α_{6} ∧ ¬α_{7} ∧ ¬α_{8} ∧ α_{9} ]∨ \\ [ α_{1} ∧ α_{2} ∧ α_{3} ∧ α_{4} ∧ α_{5} ∧ α_{6} ∧ α_{7} ∧ α_{8} ∧ α_{9} ] \end{matrix}]

29 Toy logic

\underline{Toy logic} Given two positive integers ν and μ, the toy logic of arity ν and variability μ is the following predicate logic system: ( ; 𝅝 ; ) The extended toy logic signature of ν and μ is

𝔗𝔬𝔶𝔖𝔦𝔤𝔵(ν, μ) := ( D R : \underbrace{D ↭ … ↭ D}_{ν times} v_{1} : D ⋮ v_{μ} : D )

In case μ ≤ 5 we also use the following abbreviations and write

a for v_{1}  b for v_{2}  c for v_{3}  d for v_{4}  e for v_{5}

( ; 𝅝 ; ) The toy formula set of ν and μ with identity is

ToyFormId(ν, μ) := Form(𝔗𝔬𝔶𝔖𝔦𝔤𝔵(ν, μ))

and so it comprises the following expressions

R(x_{1}, …, x_{ν})  for x_{1}, …, x_{n} ∈ {v_{1}, …, v_{μ}}
[ x_{1} = x_{2} ]  for x_{1}, x_{2} ∈ {v_{1}, …, v_{μ}}
¬φ  for φ ∈ ToyFormId(ν, μ)
[ φ_{1} ∧ … ∧ φ_{n} ]  for φ_{1}, …, φ_{n} ∈ ToyFormId(ν, μ)
[ φ_{1} ∨ … ∨ φ_{n} ]  for φ_{1}, …, φ_{n} ∈ ToyFormId(ν, μ)

We use the following common abbreviations:

false := [ ∨] true := [ ∧] [ φ_{1} → φ_{2} ] := [ ¬φ_{1} ∨ φ_{2} ] …

We also define the toy formula set of ν and μ without identity

ToyForm(ν, μ)

which is the according subset of ToyForm(ν, μ). ( ; 𝅝 ; ) All toy interpretations and toy structures of ν and μ are

ToyStruc(ν, μ) := Struc (𝔗𝔬𝔶𝔖𝔦𝔤𝔵(ν, μ))
= \{⟨D, R⟩ | D is a set , R : \underbrace{D ↭ … ↭ D}_{ν times}\}

( ; 𝅝 ; ) For every 𝔄 = ⟨D, R⟩ we put

X := [ \begin{matrix}v_{1} & ↦ & D \\ ⋮ & & ⋮ \\ v_{μ} & ↦ & D \end{matrix} ]

and define the relation set with/without identity of 𝔄

ToyRelId (𝔄) := {r_{𝔄}(φ) | φ ∈ ToyFormId (ν, μ)}
ToyRel (𝔄) := {r_{𝔄}(φ) | φ ∈ ToyForm (ν, μ)}

29

Binary endorelation S on four–element set Let S : D ↭ D with D = {1, 2, 3, 4} and S(x, y) iff x ≤ y.

29We agree that unary function symbols bind stronger than binary, i.e. “¬S ⇂ x” stands for “(¬S) ⇂ x” and not for “¬(S ⇂ x)”.

S = \begin{matrix}1 : D & 2 : D \\ 1 & 1 & 1 \\ 2 & 1 & 0 \\ 3 & 1 & 0 \\ 4 & 1 & 0 \\ 1 & 2 & 1 \\ 2 & 2 & 1 \\ 3 & 2 & 0 \\ 4 & 2 & 0 \\ 1 & 3 & 1 \\ 2 & 3 & 1 \\ 3 & 3 & 1 \\ 4 & 3 & 0 \\ 1 & 4 & 1 \\ 2 & 4 & 1 \\ 3 & 4 & 1 \\ 4 & 4 & 1 \end{matrix} ¬S = \begin{matrix}1 : D & 2 : D \\ 1 & 1 & 0 \\ 2 & 1 & 1 \\ 3 & 1 & 1 \\ 4 & 1 & 1 \\ 1 & 2 & 0 \\ 2 & 2 & 0 \\ 3 & 2 & 1 \\ 4 & 2 & 1 \\ 1 & 3 & 0 \\ 2 & 3 & 0 \\ 3 & 3 & 0 \\ 4 & 3 & 1 \\ 1 & 4 & 0 \\ 2 & 4 & 0 \\ 3 & 4 & 0 \\ 4 & 4 & 0 \end{matrix}

S = \begin{aligned}& 1 & 2 & 3 & 4 & 2 : D \\ 1 & 1 & 1 & 1 & 1 \\ 2 & 0 & 1 & 1 & 1 \\ 3 & 0 & 0 & 1 & 1 \\ 4 & 0 & 0 & 0 & 1 \\ 1 : D \end{aligned} ¬S = \begin{aligned}& 1 & 2 & 3 & 4 & 2 : D \\ 1 & 0 & 0 & 0 & 0 \\ 2 & 1 & 0 & 0 & 0 \\ 3 & 1 & 1 & 0 & 0 \\ 4 & 1 & 1 & 1 & 0 \\ 1 : D \end{aligned}

S ⇂ 2 = 1 : D 1  1 2  1 3  1 4  1  S ↾ 2 = 1 : D 1  1 2  0 3  0 4  0  ¬S ⇂ 2 = 1 : D 1  0 2  1 3  1 4  1  ¬S ↾ 2 = 1 : D 1  0 2  0 3  0 4  0

S ⇂ 1 = 2 : D 1  1 2  1 3  1 4  1  S ↾ 1 = 2 : D 1  0 2  0 3  0 4  1  ¬S ⇂ 1 = 2 : D 1  1 2  1 3  1 4  0  ¬S ↾ 1 = 2 : D 1  0 2  0 3  0 4  0

S ⇂ 2 ⇂ 1 = ⊤  S ↾ 2 ⇂ 1 = ⊤  ¬S ⇂ 2 ⇂ 1 = ⊤  ¬S ↾ 2 ⇂ 1 = ⊥
S ⇂ 2 ↾ 1 = ⊤  S ↾ 2 ↾ 1 = ⊥  ¬S ⇂ 2 ↾ 1 = ⊥  ¬S ↾ 2 ↾ 1 = ⊥
S ⇂ 1 ↾ 2 = ⊤  S ↾ 1 ⇂ 2 = ⊤  ¬S ⇂ 1 ⇂ 2 = ⊤  ¬S ↾ 1 ⇂ 2 = ⊥
S ⇂ 1 ↾ 2 = ⊤  S ↾ 1 ↾ 2 = ⊥  ¬S ⇂ 1 ↾ 2 = ⊥  ¬S ↾ 1 ↾ 2 = ⊥

Translations of S V = {a, b, c} is the variable set.

*** update the values in the table ***

a  b  c  S(a, a) S(a, b) S(a, c) S(b, a) S(b, b) S(b, c) S(c, a) S(c, b) S(c, c)

1 1 1  0  0  0  0  0  0  0  0  0
2 1 1  0  0  0  0  0  0  0  0  0
3 1 1  0  0  0  0  0  0  0  0  0
4 1 1  0  0  0  0  0  0  0  0  0
1 2 1  0  0  0  0  0  0  0  0  0
2 2 1  0  0  0  0  0  0  0  0  0
3 2 1  0  0  0  0  0  0  0  0  0
4 2 1  0  0  0  0  0  0  0  0  0
1 3 1  0  0  0  0  0  0  0  0  0
2 3 1  0  0  0  0  0  0  0  0  0
3 3 1  0  0  0  0  0  0  0  0  0
4 3 1  0  0  0  0  0  0  0  0  0
1 4 1  0  0  0  0  0  0  0  0  0
2 4 1  0  0  0  0  0  0  0  0  0
3 4 1  0  0  0  0  0  0  0  0  0
4 4 1  0  0  0  0  0  0  0  0  0
1 1 2  0  0  0  0  0  0  0  0  0
2 1 2  0  0  0  0  0  0  0  0  0
3 1 2  0  0  0  0  0  0  0  0  0
4 1 2  0  0  0  0  0  0  0  0  0
1 2 2  0  0  0  0  0  0  0  0  0
2 2 2  0  0  0  0  0  0  0  0  0
3 2 2  0  0  0  0  0  0  0  0  0
4 2 2  0  0  0  0  0  0  0  0  0
1 3 2  0  0  0  0  0  0  0  0  0
2 3 2  0  0  0  0  0  0  0  0  0
3 3 2  0  0  0  0  0  0  0  0  0
4 3 2  0  0  0  0  0  0  0  0  0
1 4 2  0  0  0  0  0  0  0  0  0
2 4 2  0  0  0  0  0  0  0  0  0
3 4 2  0  0  0  0  0  0  0  0  0
4 4 2  0  0  0  0  0  0  0  0  0
1 1 3  0  0  0  0  0  0  0  0  0
2 1 3  0  0  0  0  0  0  0  0  0
3 1 3  0  0  0  0  0  0  0  0  0
4 1 3  0  0  0  0  0  0  0  0  0
1 2 3  0  0  0  0  0  0  0  0  0
2 2 3  0  0  0  0  0  0  0  0  0
3 2 3  0  0  0  0  0  0  0  0  0
4 2 3  0  0  0  0  0  0  0  0  0
1 3 3  0  0  0  0  0  0  0  0  0
2 3 3  0  0  0  0  0  0  0  0  0
3 3 3  0  0  0  0  0  0  0  0  0
4 3 3  0  0  0  0  0  0  0  0  0
1 4 3  0  0  0  0  0  0  0  0  0
2 4 3  0  0  0  0  0  0  0  0  0
3 4 3  0  0  0  0  0  0  0  0  0
4 4 3  0  0  0  0  0  0  0  0  0
1 1 4  0  0  0  0  0  0  0  0  0
2 1 4  0  0  0  0  0  0  0  0  0
3 1 4  0  0  0  0  0  0  0  0  0
4 1 4  0  0  0  0  0  0  0  0  0
1 2 4  0  0  0  0  0  0  0  0  0
2 2 4  0  0  0  0  0  0  0  0  0
3 2 4  0  0  0  0  0  0  0  0  0
4 2 4  0  0  0  0  0  0  0  0  0
1 3 4  0  0  0  0  0  0  0  0  0
2 3 4  0  0  0  0  0  0  0  0  0
3 3 4  0  0  0  0  0  0  0  0  0
4 3 4  0  0  0  0  0  0  0  0  0
1 4 4  0  0  0  0  0  0  0  0  0
2 4 4  0  0  0  0  0  0  0  0  0
3 4 4  0  0  0  0  0  0  0  0  0
4 4 4  0  0  0  0  0  0  0  0  0

Binary endorelation T on four–element set Let T : D ↭ D with D = {1, 2, 3, 4} and T(x, y) iff x + y is even.

T = \begin{matrix}1 : D & 2 : D \\ 1 & 1 & 1 \\ 2 & 1 & 0 \\ 3 & 1 & 1 \\ 4 & 1 & 0 \\ 1 & 2 & 0 \\ 2 & 2 & 1 \\ 3 & 2 & 0 \\ 4 & 2 & 1 \\ 1 & 3 & 1 \\ 2 & 3 & 0 \\ 3 & 3 & 1 \\ 4 & 3 & 0 \\ 1 & 4 & 0 \\ 2 & 4 & 1 \\ 3 & 4 & 0 \\ 4 & 4 & 1 \end{matrix} ¬T = \begin{matrix}1 : D & 2 : D \\ 1 & 1 & 0 \\ 2 & 1 & 1 \\ 3 & 1 & 0 \\ 4 & 1 & 1 \\ 1 & 2 & 1 \\ 2 & 2 & 0 \\ 3 & 2 & 1 \\ 4 & 2 & 0 \\ 1 & 3 & 0 \\ 2 & 3 & 1 \\ 3 & 3 & 0 \\ 4 & 3 & 1 \\ 1 & 4 & 1 \\ 2 & 4 & 0 \\ 3 & 4 & 1 \\ 4 & 4 & 0 \end{matrix}

T = \begin{aligned}& 1 & 2 & 3 & 4 & 2 : D \\ 1 & 1 & 0 & 1 & 0 \\ 2 & 0 & 1 & 0 & 1 \\ 3 & 1 & 0 & 1 & 0 \\ 4 & 0 & 1 & 0 & 1 \\ 1 : D \end{aligned} ¬T = \begin{aligned}& 1 & 2 & 3 & 4 & 2 : D \\ 1 & 0 & 1 & 0 & 1 \\ 2 & 1 & 0 & 1 & 0 \\ 3 & 0 & 1 & 0 & 1 \\ 4 & 1 & 0 & 1 & 0 \\ 1 : D \end{aligned}

T ⇂ 2 = 1 : D 1  1 2  1 3  1 4  1  T ↾ 2 = 1 : D 1  0 2  0 3  0 4  0  ¬T ⇂ 2 = 1 : D 1  1 2  1 3  1 4  1  ¬T ↾ 2 = 1 : D 1  0 2  0 3  0 4  0

T ⇂ 1 = 2 : D 1  1 2  1 3  1 4  1  T ↾ 1 = 2 : D 1  0 2  0 3  0 4  0  ¬T ⇂ 1 = 2 : D 1  1 2  1 3  1 4  1  ¬T ↾ 1 = 2 : D 1  0 2  0 3  0 4  0

T ⇂ 2 ⇂ 1 = ⊤  T ↾ 2 ⇂ 1 = ⊥  ¬T ⇂ 2 ⇂ 1 = ⊤  ¬T ↾ 2 ⇂ 1 = ⊥
T ⇂ 2 ↾ 1 = ⊤  T ↾ 2 ↾ 1 = ⊥  ¬T ⇂ 2 ↾ 1 = ⊤  ¬T ↾ 2 ↾ 1 = ⊥
T ⇂ 1 ↾ 2 = ⊤  T ↾ 1 ⇂ 2 = ⊥  ¬T ⇂ 1 ⇂ 2 = ⊤  ¬T ↾ 1 ⇂ 2 = ⊥
T ⇂ 1 ↾ 2 = ⊤  T ↾ 1 ↾ 2 = ⊥  ¬T ⇂ 1 ↾ 2 = ⊤  ¬T ↾ 1 ↾ 2 = ⊥

29.1 Example: R : D ↭ D and {A, B, C} partition of D

The given situation Given the signature R : D ↭ D, the variables {x, y, …} and a formula φ over this extended signature. The goal is the construction of a set D and relation R : D ↭ D, i.e. an interpretation ℑ, such that φ becomes true. We use the following examples for φ:

(i) ∀x . ∃y . R(y, x)

(ii) *** CONTINUE HERE ***

First approach: fix D *** has been moved to finmodel.tex ***

We fix D := {a, b, c}. So

R = \begin{matrix}1 : D & 2 : D \\ a & a & β1 \\ b & a & β2 \\ c & a & β3 \\ a & b & β4 \\ b & b & β5 \\ c & b & β6 \\ a & c & β7 \\ b & c & β8 \\ c & c & β9 \end{matrix}

r_{ℑ} (∀x . ∃y . R(y, x)) = tr (R, [ \begin{matrix}1 ↦ & y \\ 2 ↦ & x \end{matrix} ])⇂ y↾ x

= \begin{matrix}y : D & x : D \\ a & a & β1 \\ b & a & β2 \\ c & a & β3 \\ a & b & β4 \\ b & b & β5 \\ c & b & β6 \\ a & c & β7 \\ b & c & β8 \\ c & c & β9 \end{matrix} ⇂ y↾ x

= a b c y ; a β1 β2 β3 ; b β4 β5 β6 ; c β7 β8 β9 ; x ⇂ y↾ x

= x ; a β1 ∨ β2 ∨ β3 ; b β4 ∨ β5 ∨ β6 ; c β7 ∨ β8 ∨ β9 ↾ x
= _{(β1 ∨ β2 ∨ β3) ∧ (β4 ∨ β5 ∨ β6) ∧ (β7 ∨ β8 ∨ β9)}

Second approach: fix a partition of D

*** CONTINUE HERE ***

\begin{matrix}1 : A & 2 : A & ♢R & □R \\ A & A & β1 & γ1 \\ B & A & β2 & γ2 \\ C & A & β3 & γ3 \\ A & B & β4 & γ4 \\ B & B & β5 & γ5 \\ C & B & β6 & γ6 \\ A & C & β7 & γ7 \\ B & C & β8 & γ8 \\ C & C & β9 & γ9 \end{matrix}

Part XIV

*** AUTO–DECONSTRUCTION OF THEORY ALGEBRAS ***

Part XV

Decompositions of relations

30 Decompositions in theory algebras

30.1 General–algebraic notions

30.1.1 Definition

Recall ???? , that an algebraic structure is an ordinary structure 𝔄 with exactly one carrier class A and where all operations are either constants of functions on A. We write

𝔄 = ⟨A, F⟩

for such an algebraic structure, where F is the operation class. And in case F = {f_{1}, …, f_{n}} is finite, we again write

𝔄 = ⟨A, f_{1}, …, f_{n}⟩

according to previous conventions ???? . For each n ∈ ℕ we also define

F^{n} := {f ∈ F | f is an n–ary function }

so that F = ⋃_{n∈ℕ} F and F^{0} is the class of constants in 𝔄.

30.1.2 Definition

Let 𝔄 = ⟨A, F⟩ be an algebraic structure, B ⊆ A and G ⊆ F. We put

G^{n} := G ∩ F^{n} for each n ∈ ℕ

and define:

im (B, G) := \{ \frac{f (b_{1}, …, b_{n})}{n ∈ ℕ, f ∈ G^{n} and b_{1}, …, b_{n} ∈ B} \}

the image of B and G

For every n ∈ ℕ we define

gen^{n}(B, G) := \begin{cases}B & if n = 0 \\ gen^{n−1}(B ∪ im (B, G) , G) & if n > 0 \end{cases}

the n–th or n–step generation of B and G.

And more general we define

gen (B, G) := ⋃{gen^{n}(B, G) | n ∈ ℕ}

the generation of B and G.

Clos (𝔄) := {C ⊆ A | im (C, F) ⊆ C}

the closed subclasses or subalgebras of 𝔄

clos_{𝔄}(B) := ⋂{C ∈ Clos (𝔄) | B ⊆ C}

the closure of B in 𝔄

30.1.3 Example

Given 𝔄 = ⟨ℚ, F⟩, where ℚ is the class of rational numbers and F := {0, 1, +, ·, −}. 0 and 1 are constants in ℚ, and +, · and − are the usual binary functions on ℚ, i.e. 0, 1 ∈ F^{0} and +, −, · ∈ F^{2}. Let B := {-2, 7}. Then

*** check and maybe improve this example ***

gen^{0}(B, F) = {-2, 7}

gen^{1}(B, F) = \{-2, 7\} ∪ \{ \begin{matrix}0, \\ 1, \\ -2 + 7, 7 + (-2), -2 + (-2), 7 + 7, \\ -2 − 7, 7 − (-2), -2 − (-2), 7 − 7, \\ -2 · 7, 7 · (-2), -2 · (-2), 7 · 7 \end{matrix} \}

= {-14, -9, -5, -4, -2, 0, 1, 2, 4, 5, 7, 49}
gen^{2}(B, F) = …
⋮  ⋮

And finally

gen (B, F) = ℤ

*** CONTINUE HERE ***

30.1.4 Lemma

*** CONTINUE HERE ***

( ; 𝅝 ; ) G^{0} ⊆ im (B, G)

( ; 𝅝 ; ) gen^{n}(B, G) ⊆ gen^{n+m}(B, G) for all n, m ∈ ℕ

( ; 𝅝 ; ) clos_{𝔄}(B) = gen (B, F)

30.1.5 Proof of 46.2.11

*** CONTINUE HERE ***

30.2 Theory–algebraic generations and closures

30.2.1 Definition boolean generations and closures

Let X = [X_{i}|i ∈ I] be a schema and R ⊆ Prel (X).

boIm (R) := \{ \begin{matrix}⊥, \\ ⊤, \\ ¬R, \\ R_{1} ⊓ … ⊓ R_{n}, \\ R_{1} ⊔ … ⊔ R_{n} \end{matrix} R, R_{1}, …, R_{n} ∈ R \}

is the boolean image of R

For every n ∈ ℕ we define

boGen^{n}(R) := \begin{cases}R & if n = 0 \\ boGen^{n−1} (R ∪ boIm (R)) & if n > 0 \end{cases}

the n–th or n–step boolean generation of R.

And more general we define

boGen (R) := ⋃{boGen^{n}(R) | n ∈ ℕ}

the boolean generation of R.

BoCl (X) := {R ⊆ Prel (X) | boIm (R) ⊆ R}

the boolean closed relation classes on X. boCl_{X}(R) := ⋂{S ∈ BoCl (X) | R ⊆ S}

the boolean closure of R on X.

30.2.2 Definition schematic generations and closures Let X = [X_{i}|i ∈ I] be a schema and R ⊆ Prel (X).

xIm (R) := \{ \begin{matrix}R↾ j, \\ R⇂ j \end{matrix} \begin{matrix}R ∈ R, \\ j ∈ I \end{matrix} \}

is the schematic image of R

For every n ∈ ℕ we define

xGen^{n}(R) := \begin{cases}R & if n = 0 \\ xGen^{n−1} (R ∪ xIm (R)) & if n > 0 \end{cases}

the n–th or n–step schematic generation of R

And more general we define

xGen (R) := ⋃{xGen^{n}(R) | n ∈ ℕ} the schematic generation of R

XCl (X) := {R ⊆ Prel (X) | xIm (R) ⊆ R} the schematically closed relation classes on X

xCl_{X}(R) := ⋂{S ∈ XCl (X) | R ⊆ S} the schematic closure of R on X

30.2.3 Definition theory–algebraic generations and closures Let X = [X_{i}|i ∈ I] be a schema and R ⊆ Prel (X).

thIm (R) := boIm (R) ∪ xIm (R)

is the theory–algebraic image of R

For every n ∈ ℕ we define

thGen^{n}(R) := \begin{cases}R & if n = 0 \\ thGen^{n−1} (R ∪ thIm (R)) & if n > 0 \end{cases}

the n–th or n–step theory–algebraic generation of R And more general we define

thGen (R) := ⋃{thGen^{n}(R) | n ∈ ℕ} the theory–algebraic generation of R

ThCl (X) := {R ⊆ Prel (X) | thIm (R) ⊆ R} the theory–algebraically closed relation classes on X

thCl_{X}(R) := ⋂{S ∈ ThCl (X) | R ⊆ S} the theory–algebraic closure of R on X

30.2.4 Lemma

*** CONTINUE HERE ***

( ; 𝅝 ; ) bCl_{X}(R) = bGen(R)

30.2.5 Proof of 34.2.4 30.2.6 Lemma

*** CONTINUE HERE ***

( ; 𝅝 ; ) xCl_{X}(R) = xGen(R)

30.2.7 Proof of 34.2.6

*** CONTINUE HERE ***

30.2.8 Lemma

*** CONTINUE HERE ***

( ; 𝅝 ; ) thCl_{X}(R) = thGen(R)

30.2.9 Proof of 34.2.8

*** CONTINUE HERE ***

*** the following is not entirely correct ***

xIm (R) = \{ \begin{matrix}R↾ j, \\ R⇂ j \end{matrix} \begin{matrix}R ∈ R, \\ j ∈ ⋃\{@ (R) | R ∈ R\} \end{matrix} \}

*** CONTINUE HERE ***

30.3 Generations and closures of first– order theory algebras

30.3.1 Repetition

Recall, that for every schema X = [X_{i}|i ∈ I] we defined

𝔗ℜ1 (X) = ⟨Prel (X) , I, ⊥, ⊤, ⊓, ⊔, ¬, ↾, ⇂, Eq⟩

*** meanwhile this has changed: I write 𝔓𝔯𝔢𝔩1 (X) and Eq is not part of the structure ***

30.3.2 Definition

Let X = [X_{i}|i ∈ I] be a given schema. We define 𝔗ℜ1′ (X) := ⟨Prel (X) , Ω_{bo} ∪ Ω_{eq} ∪ Ω_{el}⟩ the algebraic version of the first–order theory algebra of

relations of X

where Ω_{bo} := {⊥, ⊤, ⊓, ⊔, ¬} (boolean operators) Ω_{eq} := {Eq_{i,j} | i, j ∈ I} (equation relations) Ω_{el} := {(◯ 1 ↾ i) , (◯ 1 ⇂ i) | i ∈ I} (eliminators)

30.3.3 Example

If X = [\begin{matrix}a ↦ & A \\ b ↦ & B \end{matrix} ] then

𝔗ℜ1′ (X) = ⟨\begin{matrix}Prel (X) , ⊥, ⊤, ⊓, ⊔, ¬, \\ Eq_{a,a}, Eq_{b,b}, Eq_{a,b}, Eq_{b,a}, \\ ◯ 1 ↾ a, ◯ 1 ↾ b, ◯ 1 ⇂ a, ◯ 1 ⇂ b \end{matrix}⟩

*** CONTINUE HERE *** *** UPDATE; see also partitions.tex *** *** CHANGE THE LABELS ***

30.4 Disvalent disjunctions and quasi–

partitions

*** introduce ⊎ ***

30.4.1 Definition

Let X be a schema, R, S ∈ Prel (X) and R ⊆ Prel (X). We say that ( ; 𝅝 ; ) R and S are disvalent, if

R ⊓ S ≡ ⊥. ( ; 𝅝 ; ) R and S are proper disvalent, if

R ⊓ S ≡ ⊥ and R ≢ ⊥ and S ≢ ⊥. ( ; 𝅝 ; ) R is (pairwise) disvalent, if

every two different R, S ∈ R are disvalent. ( ; 𝅝 ; ) R is proper disvalent, if

every R is (pairwise) disvalent and no member of R is empty. ( ; 𝅝 ; ) R is a quasi–partition of S, if

R is (pairwise) disvalent and ⨄ R ≡ S. ( ; 𝅝 ; ) R is a proper (quasi–)partition of S, if

R is proper disvalent and ⨄ R ≡ S. ( ; 𝅝 ; ) R is a quasi–partition, if

R is a quasi–partition of ⊤. ( ; 𝅝 ; ) R is a proper partition, if

R is a proper partition of ⊤.

30.5 Quasi–foundations

30.5.1 Definition

Let X be a schema, Q ⊆ Prel (X) and R ∈ Clos (𝔗ℜ1′ (X)). We say that ( ; 𝅝 ; ) Q is a quasi–foundation for R, if for each R ∈ R there is a

Q′ ⊆ Q such that Q′ is a partition of R. ( ; 𝅝 ; ) Q is a proper foundation for R, if Q is a quasi–foundation

for R and no member of Q is empty.

30.5.2 Remark

*** we avoid “basis” because it is used diffently and mixed–up in topology etc. ***

30.6 Partitions

30.6.1 Repetition

Recall that A ⊎ B is the disjunct union of two disjunct classes A and B.

30.6.2 Definition For every class family C we define

qpart (C) := {⋂ D \ ⋃(C \ D) | D ⊆ C}

the (auto–)quasi–partition of C

part (C) := {A ∈ qpart (C) | A ≠ ∅}

the (auto–)partition of C 30.6.3 Example

*** CONTINUE HERE ***

30.6.4 Repetition

Recall, R ⊙ S is the distinct product of two distinct relations.

30.6.5 Definition

Let X = [X_{i}|i ∈ I] be a schema.

(1) Two relations R, S ∈ Prel (X) are called (semantically) disjunct, iff R ⊓ S ≡ ⊥. If furthermore both R and S are not empty, then they are proper disjunct.

(2) If R and S are indeed disjunct, then

R ⊎ S := R ⊔ S

is their disjunct sum or addition.

(3) Each relation class R ⊆ Prel (X) is called (pairwise) disjunct, iff every two different members of R are disjunct. In that case, and if no member of R is empty, then R is called proper disjunct.

(4) If R is indeed a (pairwise) disjunct relation class, then

⨄ R := ∐R

is its disjunct sum.

30.6.6 Lemma

( ; 𝅝 ; ) If R = [X, Γ] and S = [X, Σ] are two equi–schematic relations, then ( ; 𝅗𝅥 ; ) R and S are disjunct iff Γ and Σ are disjunct. ( ; 𝅗𝅥 ; ) If R and S are disjunct, then

R ⊎ S = [\begin{matrix}X \\ Γ ⊎ Σ \end{matrix}]

30.6.7 Definition

Let X be a schema and R ⊆ Prel (X). For every S ∈ Prel (X) we say that

(1) R is a quasi–partition of S, if ⨄ R ≡ S, which implies that R is (pairwise) disjunct,

(2) R is a partition of S, if R is proper disjunct and ⨄ R ≡ S.

And more general, we say that

(3) R is a quasi–partition, if ⨄ R ≡ ⊤, which implies that R is (pairwise) disjunct,

(4) R is a partition, if R is proper disjunct and ⨄ R ≡ ⊤.

And if S ⊆ Prel (X), we say that

(5) R is a partition for S, if (a) R is proper disjunct and

(b) for every S ∈ S there is a R′ ⊆ R such that ⨄ R′ ≡ S.

30.6.8 Definition

Given a schema X and R, S ⊆ Prel (X). We say that R is a semantic partition for S, if the following statements are satisfied:

( ; 𝅝 ; ) R ≢ ⊥ for each R ∈ R

( ; 𝅝 ; ) R ≠ R′ implies R ⊓ R′ ≡ ⊥ for all R, R′ ∈ R

( ; 𝅝 ; ) For each S ∈ S there is a T ⊆ R with S ≡ ∐T .

30.6.9 Definition

Let X be a schema and R ⊆ Prel (X). We define

qpart (R) := {∏S ⊓ ∏{¬T | T ∈ R \ S} | S ⊆ T }

the quasi–partition of R

part (R) := {R ∈ qpart (R) | R ≢ ⊥} the partition of R

*** beware the terminology; qpartR is not a partition of R ***

30.6.10 Lemma

( ; 𝅝 ; ) qpart (R) is a quasi–partition ( ; 𝅝 ; ) part (R) is a partition ( ; 𝅝 ; ) both qpart (R) and part (R) are closure operators on

P (Prel (X)) ( ; 𝅝 ; ) part (R) is a partition for R

30.6.11 Theorem

{∐B | B ⊆ part (R)} ≡ boGen (R)

30.6.12 Proof of ??

xxx *** CONTINUE HERE ***

30.7 Preliminaries

30.7.1 Definition

Let X be a schema and R, S ⊆ Prel (X). We define

R ≡ S iff ( \begin{matrix}∀R ∈ R . ∃S ∈ S . R ≡ S \\ and \\ ∀S ∈ S . ∃R ∈ R . S ≡ R \end{matrix} )

saying that R and S are equivalent

30.7.2 Example

*** CONTINUE HERE ***

30.7.3 Repetition

Recall ??xxx?? that ( ; 𝅝 ; ) A relation R is a singular relation iff its schema X = [ i ↦ D]

is a singular schema. If C := rng_{i}(R) = {c ∈ D | [ i ↦ c] ∈ R} then the graph of R is given by ⊗[ i ↦ C ], and we write

\begin{matrix}i : D \\ C \end{matrix}  instead of [ \begin{matrix}[ i ↦ X ] \\ ⊗[ i ↦ C ] \end{matrix} ]

( ; 𝅝 ; ) A relation R is a literal relation iff its schema X = [ i ↦ D] is a singular schema and its graph Γ = {[ i ↦ c]} is a singleton. For such a literal relation R we write

\begin{matrix}i : D \\ c \end{matrix}  instead of [ \begin{matrix}[ i ↦ X ] \\ \{[ i ↦ c]\} \end{matrix} ]

30.8 Local and overall ranges of a relation

30.8.1 Repetition Recall Thalg 17.2.11 , that for every relation R = [X, Γ] with schema X = [X_{i}|i ∈ I] and each j ∈ I we defined

rng_{j}(R) := {ξ_{j} | ξ ∈ Γ} the j–th (local) range of R

rng (R) := {ξ_{j} | j ∈ I and ξ ∈ Γ} the (overall) range of R

30.8.2 Lemma

If X = [X_{i}|i ∈ I] is a schema and R, S ∈ Rel (X) then

(1) rng_{i}(R) ⊆ X_{i} for each i ∈ I (2) R ⊆ S implies rng_{i}(R) ⊆ rng_{i}(S) for each i ∈ I (3) R ⊆ S implies rng(R) ⊆ rng(S)

(4) rng_{i}(R ∩ S) ⊆ rng_{i}(R) ∪ rng_{i}(S) for each i ∈ I (5) rng_{i}(R ∪ S) = rng_{i}(R) ∪ rng_{i}(S) for each i ∈ I (6) X_{i} \ rng_{i}(R) ⊆ rng_{i}(¬R) for each i ∈ I 30.8.3 Proof of 34.8.2 Let R = [X, Γ] and S = [X, Σ]

(1) Follows immediately from the definition rng_{i}(R) = {ξ_{i} | ξ ∈ Γ}.

(2) R ⊆ S

⇔ Γ ⊆ Σ due to def. Thalg 19.5.1 of ⊆

⇒ {ξ_{i} | ξ ∈ Γ} ⊆ {ξ_{i} | ξ ∈ Σ} ⇒ rng_{i}(R) ⊆ rng_{i}(S)

(3) R ⊆ S

⇒ rngi(R) ⊆ rngi(S) for each i ∈ I according to (2)

⇒ ⋃{rng_{i}(R) | i ∈ I} ⊆ ⋃{rng_{i}(S) | i ∈ I} ⇒ rng(R) ⊆ rng(S)

( ; 𝅝 ; ) *** CONTINUE HERE ***

30.8.4 Lemma

If X = [X_{i}|i ∈ I] is a proper schema and R, S ∈ Prel (X) then

(1) rng_{j}(R) = rng_{j}(R ∥ X) for each j ∈ @ (R)

(2) R ⊑ S implies rng_{j}(R) ⊆ rng_{j}(S) for each j ∈ (@ (R) ∩ @ (S))

( ; 𝅝 ; ) *** ⊔ ⊓ … ***

30.8.5 Proof of 34.8.4 Now let X = [X_{i}|i ∈ I] be a proper schema and R, S ∈ Prel (X).

(1) Let R = [Y, Γ] and j ∈ @ (R). We put Z := pr (X, I \ @ (R)). Because X is a proper schema, Z is proper and ⊗Z ≠ ∅ (due to Thalg ). For each υ ∈ ⊗Z and ξ ∈ Γ holds ξ_{j} = (ξ ˙∨ υ)_{j}. Therefore

rng_{j}(R) = {ξ_{j} | ξ ∈ Γ} = {(ξ ˙∨ υ)_{j})ξ ∈ Γ, υ ∈ ⊗Z | } = {ζ_{j} | ζ ∈ (Γ ⊙ ⊗Z)} due to def. Thalg 16.4.1 of ⊙

= {ζ_{j} | ζ ∈ (R ∥ X)} due to Thalg 20.1.3

(2) If j ∈ (@ (R) ∩ @ (S)) then

R ⊑ S ⇔ R ∥ X ⊆ S ∥ X due to Thalg 20.4.9(4)(a)

⇒ rng_{j}(R ∥ X) ⊆ rng_{j}(S ∥ X) due to (2) ⇒ rng_{j}(R) ⊆ rng_{j}(S) due to (4)

30.8.6 Lemma

Let R = [X, Γ] be a relation with a proper schema X = [X_{i}|i ∈ I].

( ; 𝅝 ; ) If i ∈ I then

( ; 𝅗𝅥 ; ) R↾ j ≢ ⊥ implies rng_{i}(R) = X_{i} ( ; 𝅗𝅥 ; ) R⇂ i ≢ ⊥ implies rng_{i}(R) ≠ ∅

( ; 𝅗𝅥 ; ) rng_{i}(R) = ∅ iff R ≡ ⊥

( ; 𝅝 ; ) If J ⊆ I then

( ; 𝅗𝅥 ; ) R↾ J ≢ ⊥ implies rng_{j}(R) = X_{j} for each j ∈ J ( ; 𝅗𝅥 ; ) R↾ J ≢ ⊥ implies pr (R, K) ≡ ⊤ for each K ⊆ J ( ; 𝅗𝅥 ; ) R⇂ J ≢ ⊥ implies rng_{j}(R) ≠ ∅ for each j ∈ J

30.8.7 Proof of 34.8.6

*** CONTINUE HERE ***

30.8.8 Lemma

If R = [X, Γ] is a relation with X = [X_{i}|i ∈ I] then, for each i ∈ I holds ( ; 𝅝 ; ) rng_{i}(R) = rng(pr (R, {i})) = rng(R⇂ (I \ {i}))

( ; 𝅝 ; ) pr (R, \{i\}) = R⇂ (I \ \{i\}) = \begin{matrix}i : X_{i} \\ rng_{i}(R) \end{matrix}

30.8.9 Proof of 34.8.8

*** CONTINUE HERE ***

30.9 Cartesian relations

*** update this ***

30.9.1 Repetition

( ; 𝅝 ; ) A relation R = [X, Γ] is cartesian, if Γ = ⊗Y for some Y ∈ ⊠X.

( ; 𝅝 ; ) Cart (X) := \{[\begin{matrix}Y \\ ⊗Z \end{matrix}] | Y ≤ X, Z ⊆ Y \} is the class of all carte-

sian relation of a given schema X. ( ; 𝅝 ; ) For every relation R = [X, Γ] with schema X = [X_{i}|i ∈ I], we

define its cartesian closure

cart (R) := [\begin{matrix}X \\ ⊗Y \end{matrix} ] where Y := [ rng_{i}(R) i ∈ I ]

( ; 𝅝 ; ) cart (R) is a cartesian relation ( ; 𝅝 ; ) cart : Rel (X) ⟶ Rel (X) is a closure operator in the sense

that

( ; 𝅗𝅥 ; ) R ⊆ cart (R)

( ; 𝅗𝅥 ; ) R ⊆ S implies cart (R) ⊆ cart (S) (isotony) ( ; 𝅗𝅥 ; ) cart (cart (R)) = cart (R) (idempotency)

( ; 𝅝 ; ) Let X be a schema R ∈ Prel (X) and Z ∈ Proj (X). If R is a cartesian relation, then R ∥ Z is so, too.

30.10 Range hierarchies, range partitions and range partition schemas from a relation

30.10.1 Definition

Given a relation R = [X, Γ] with schema X = [X_{i}|i ∈ I]. For each j ∈ I we define

Rh_{j}^{R} := {rng_{j}(R↾ J) | J ⊆ I \ {j}}

the j–th range hierarchy from R

Rp_{j}^{R} := part (Rh_{j}^{R})

the j–th range partition from R

So more general, we also have

Rp^{R} := [ Rp_{j}^{R} j ∈ I ]

the range partition schema from R 30.10.2 Example

Let R = [X, Γ] with schema

X = [\begin{matrix}a ↦ & A \\ b ↦ & B \\ c ↦ & C \end{matrix} ]

then there are three range hierarchies

Rh_{a}^{R} = {rng_{a}(R), rng_{a}(R↾ b), rng_{a}(R↾ c), rng_{a}(R↾ {b, c})}

Rh_{b}^{R} = {rng_{b}(R), rng_{b}(R↾ a), rng_{b}(R↾ c), rng_{b}(R↾ {a, c})}

Rh_{c}^{R} = {rng_{c}(R), rng_{c}(R↾ a), rng_{c}(R↾ b), rng_{c}(R↾ {a, b})}

The name “range hierarchy” is chosen due to the fact that it always forms a poclass with least and greatest element, when structured by the inclusion ⊆. For example, for Rh_{a}^{R} this poclass is given by the diagram

[figure: rng_{a}(R↾ ∅) = rng_{a}(R); rng_{a}(R↾ b); rng_{a}(R↾ c); rng_{a}(R↾ {b, c}) = rng(cpj (R, {a}))]

(Of course, that is the biggest version; in concrete cases, multiple nodes of this hierarchy can collapse into one.)

The range partition schema is

Rp^{R} = [ \begin{matrix}a ↦ & Rp_{a}^{R} \\ b ↦ & Rp_{b}^{R} \\ c ↦ & Rp_{c}^{R} \end{matrix} ] = [ \begin{matrix}a ↦ & part(Rh_{a}^{R}) \\ b ↦ & part(Rh_{b}^{R}) \\ c ↦ & part(Rh_{c}^{R}) \end{matrix} ]

30.10.3 Lemma

Given a relation R = [X, Γ] with schema X = [X_{i}|i ∈ I] and let j ∈ I.

(1) For all J, K ∈ P (I \ {j}) holds

J ⊆ K implies rng_{j}(K) ⊆ rng_{j}(J)

(2) When Rh_{j}^{R} is ordered by inclusion, then

( ; 𝅗𝅥 ; ) rng_{j}(R) is the greatest

( ; 𝅗𝅥 ; ) rng (cpj (R, {j})) is its least member

(3) Rp_{j}^{R} is a partition of rng_{j}(R).

30.10.4 Proof of 34.10.3

(1) J ⊆ K

⇒ R↾ K ⊑ R↾ J due to Thalg xxx

(2) *** CONTINUE HERE ***

(3) *** CONTINUE HERE ***

⇒ rngj(K) ⊆ rngj(J) due to 34.8.4(2)

30.10.5 Lemma

Given a relation R = [X, Γ] with X = [X_{i}|i ∈ I] and κ =

card (I). Then *** Update ***

(1) card (Rh_{j}^{R}) ≤ 2^{κ−1} for each j ∈ I

(2) card (Rp_{j}^{R}) ≤ 2^{2κ−1} for each j ∈ I

(3) card (⊗Rp^{R}) ≤ 2^{κ·2κ−1}

30.10.6 Proof of 34.10.5

(1) *** CONTINUE HERE ***

(2) *** CONTINUE HERE ***

(3) *** CONTINUE HERE ***

30.10.7 Remark

*** update from here *** In general, a partition of κ elements has 2^{κ} members at most (see 46.2.11). So Rp_{a}^{R} has 2^{4} = 16 members at most and we establish that in the following lemma 34.10.5. But in fact, in these kind of hierarchies produce partitions with less members than that (see exercise 34.10.7). Nevertheless, we will be satisfied with the upper bound 2^{κ} in the sequel.

*** reason about a lower upper bound for the cardinality ***

30.11 The cartesian partition and the range partition of a relation

Given a relation R = [X, Γ] with schema X = [X_{i}|i ∈ I]. We define

cp (R) := \{ [\begin{matrix}X \\ ⊗Y \end{matrix} ] Y ∈ ⊗Rp^{R} \}

the cartesian partition of R

rp (R) := {R ∩ S | S ∈ cp (R) , R ∩ S ≢ ⊥}

is the range partition of R,

30.11.1 Remark

Note, the ambiguity and difference in the title “cartesian partition of R” and “range partition of R”: only rp (R) is indeed a semantic partition of R, while cp (R) is not a partition of R, but of cart (R), as we will show next.

30.11.2 Lemma

Given a relation R = [X, Γ] with schema X = [X_{i}|i ∈ I] and κ = card (I). Then

( ; 𝅝 ; ) card (rpR) ≤ card (cp (R)) ≤ 2^{κ·2κ−1}

( ; 𝅝 ; ) cp (R) ⊆ Cart (X)

( ; 𝅝 ; ) cp (R) is proper disjunct

( ; 𝅝 ; ) cp (R) is a semantic partition of cart (R)

( ; 𝅝 ; ) rp (R) is a semantic partition of R

30.11.3 Proof of 46.2.11

( ; 𝅝 ; ) *** CONTINUE HERE ***

30.12 The partition theorems for theory–algebraic spaces

30.12.1 Definition For every relation R holds:

(1) cp (R) ⊆ thGen ({R})

(2) rp (R) ⊆ thGen ({R})

30

30.12.2 Proof of 34.12.1

Suppose R = [\begin{matrix}X \\ Γ \end{matrix}] with X = [X_{i}|i ∈ I].

The basic idea of the proof is to wrap the classes C in Rh_{j}^{R} and Rp_{j}^{R}, which are subclasses X_{j}, into members Ĉ of Rel ([ j ↦ X_{j} ]). We define

(i) r̂ng_{j} := R↾ J ⇂ (I \ {j}) for each j ∈ I and J ⊆ (I \ {j})

(ii) R̂h_{j}^{R} := {r̂ng_{j}(R↾ J) | J ⊆ (I \ {j})} for each j ∈ I

(iii) R̂p_{j}^{R} := semPart (R̂h_{j}^{R}) for each j ∈ I

(iv) R̂p^{R} := [ R̂p_{j}^{R} j ∈ I ]

(v) ĉp(R) := {⊙R | R ∈ ⊗R̂p^{R}}

Then *** CONTINUE HERE ***...

ĉp(R) = cp (R)

30.12.3 Theorem singular partition theorem

rp (R) ⊎ rp (¬R) is a partition for thGen ({R})

30.12.4 Proof of 46.2.11

*** CONTINUE HERE ***

30.12.5 Definition

Let X be a schema and R ⊆ Prel (X). We define

thPart (R) := {rp (B) | B ∈ part (R)} the theory–algebraic partition of R

30.12.6 Theorem

( ; 𝅝 ; ) thPart (R) is a partition for thGen (R)

( ; 𝅝 ; ) In other words, {∐S | S ⊆ thPart (R)} ≡ thGen (R)

( ; 𝅝 ; ) In other words, thPart (R) ≡ part (thGen (R))

30.12.7 Lemma

For every relation R and each J ⊆ @ (R) there is a S ⊆ rp (R) with R↾ J ≡ ∐S.

30.12.8 Lemma

( ; 𝅝 ; ) rp (R) is a partition of R

( ; 𝅝 ; ) rp (R) ∪ rp (¬R) is a partition for thCl ({R})

30.12.9 Proof of 46.2.11

*** CONTINUE HERE ***

30.12.10 Theorem general partition theorems

boGen (rp (R)) ≡ thGen ({R}) for every relation R.

30.12.11 Proof of 46.2.11

*** CONTINUE HERE ***

30*** In this proof I use semPart the semantic partition instead of part for simply partition; this is a disambiguitation with the set case. ***

31 Cartesian closures and compact decompositions

31.1 Cartesian closures and cartesian complements of relations

31.1.1 Definition

Let R = [X, Γ] be a relation with schema X = [X_{i}|i ∈ I]. We define

cart (R) := ⊙_{i∈I}R⇂ (I \ {i})

the cartesian closure of R

caco (R) := cart (R) ⊓ ¬R the cartesian complement of R

31.1.2 Lemma

Given a relation R = [X, Γ] with schema X = [X_{i}|i ∈ I].

( ; 𝅝 ; ) cart (R) = [ \begin{matrix}X \\ ⊗[rng_{i}(R)|i ∈ I] \end{matrix} ]

( ; 𝅝 ; ) cart (R) = [ \begin{matrix}X \\ ⊗[\{ξ_{i} | i ∈ Γ\}|i ∈ I] \end{matrix} ]

31.1.3 Lemma Closure properties

( ; 𝅝 ; ) cart (cart (R)) = cart (R)

( ; 𝅝 ; ) R ⊑ cart (R)

( ; 𝅝 ; ) R ⊑ S implies cart (R) ⊑ cart (S)

31.1.4 Lemma

Let R = [X, Γ] be a relation with schema X = [X_{i}|i ∈ I]. Then

( ; 𝅝 ; ) cart (R) = R ⊎ caco (R) ( ; 𝅝 ; ) cart (R) is a cartesian relation. ( ; 𝅝 ; ) cart (R) is compact iff I is finite. ( ; 𝅝 ; ) Equivalent are:

( ; 𝅗𝅥 ; ) R = cart (R)

( ; 𝅗𝅥 ; ) coca (R) ≡ ⊥

( ; 𝅗𝅥 ; ) R is a cartesian relation

31.1.5 Proof of 35.1.4

*** CONTINUE HERE ***

31.1.6 Definition

Let R = [X, Γ] be a relation with schema X = [X_{i}|i ∈ I]. Recall Thalg 17.7.3(7) , that we said that ( ; 𝅝 ; ) R is total in i, with i ∈ I, if rng_{i}(R) = X_{i} ( ; 𝅝 ; ) R is total, if R is total in each i ∈ I. Accordingly, ( ; 𝅝 ; ) R is not total, if rng_{i}(R) ⊂ X_{i} for some i ∈ I And we also say that ( ; 𝅝 ; ) R is nowhere total, if rng_{i}(R) ⊂ X_{i} for all i ∈ I.

31.1.7 Lemma

( ; 𝅝 ; ) ⊥ and ⊤ are both total and nowhere total. If R is a nowhere total relation, then ( ; 𝅝 ; ) cart (R) is nowhere total ( ; 𝅝 ; ) caco (R) is nowhere total

( ; 𝅝 ; ) R↾ i ≡ ⊥ for all i ∈ @ (R)

31.1.8 Proof of ??

*** CONTINUE HERE ***

32 Decompositions

32.1 General conventions

*** mention the ↿ operator here ***

32.1.1 Definition We use the following binding conventions: ( ; 𝅝 ; ) ¬◯ 1 binds stronger than ◯ 1 ⇂ ◯ 2 and ◯ 1 ↾ ◯ 2 ( ; 𝅝 ; ) ◯ 1 ⇂ ◯ 2 and ◯ 1 ↾ ◯ 2 bind stronger than ◯ 1 ⊓ ◯ 2 and ◯ 1 ⊔ ◯ 2 For example

\begin{matrix}¬◯ 1 ⇂ ◯ 2 & is & (¬◯ 1 )⇂ ◯ 2 \\ ◯ 1 ⊓ ◯ 2 ↾ ◯ 3 & is & ◯ 1 ⊓ (◯ 2 ↾ ◯ 3 ) \end{matrix}

32.2 Coelimination

31

32.2.1 Definition

Set X = [X_{i}|i ∈ I] be a schema and R ∈ Prel (X).

For every J ⊆ I we define

R ↿J := R ⊓ ¬ (R↾ J)

the complement (of the) infimum elimination or simply the coelimination of J from R or the lower remainder of R without J.

For every i ∈ I we define

R ↿i := R ↿{i} the (singular) coelimination of i from R.

32.2.2 Example

Let us consider the relation S ∈ Rel (X), where

X := [\begin{matrix}a ↦ & \{1, 2, 3\} \\ b ↦ & \{1, 2, 3\} \\ c ↦ & \{1, 2, 3\} \end{matrix}] and S := [ \begin{matrix}X \\ [\begin{matrix}a ↦ & x \\ b ↦ & y \\ c ↦ & z \end{matrix}] ↝ x ≤ y ≤ z \end{matrix} ]

Now let us construct the coelimination S ↿a of S at a. *** CONTINUE HERE ***Since X is completely finite, we can represent S by its boolean table diagram ( Thalg 17.5.4 ), but also by its double table diagram with b, c as left and a as top attribute

S = \begin{matrix}a & b & c \\ 1 & 1 & 1 & 1 \\ 2 & 1 & 1 & 0 \\ 3 & 1 & 1 & 0 \\ 1 & 2 & 1 & 0 \\ 2 & 2 & 1 & 0 \\ 3 & 2 & 1 & 0 \\ 1 & 3 & 1 & 0 \\ 2 & 3 & 1 & 0 \\ 3 & 3 & 1 & 0 \\ 1 & 1 & 2 & 1 \\ 2 & 1 & 2 & 0 \\ 3 & 1 & 2 & 0 \\ 1 & 2 & 2 & 1 \\ 2 & 2 & 2 & 1 \\ 3 & 2 & 2 & 0 \\ 1 & 3 & 2 & 0 \\ 2 & 3 & 2 & 0 \\ 3 & 3 & 2 & 0 \\ 1 & 1 & 3 & 1 \\ 2 & 1 & 3 & 0 \\ 3 & 1 & 3 & 0 \\ 1 & 2 & 3 & 1 \\ 2 & 2 & 3 & 1 \\ 3 & 2 & 3 & 0 \\ 1 & 3 & 3 & 1 \\ 2 & 3 & 3 & 1 \\ 3 & 3 & 3 & 1 \end{matrix} = \begin{aligned}& & 1 & 2 & 3 & a \\ 1 & 1 & 1 & 0 & 0 \\ 2 & 1 & 0 & 0 & 0 \\ 3 & 1 & 0 & 0 & 0 \\ 1 & 2 & 1 & 0 & 0 \\ 2 & 2 & 1 & 1 & 0 \\ 3 & 2 & 0 & 0 & 0 \\ 1 & 3 & 1 & 0 & 0 \\ 2 & 3 & 1 & 1 & 0 \\ 3 & 3 & 1 & 1 & 1 \\ b & c \end{aligned}

*** update the bit values in the double table ***

S ↾ a = \begin{matrix}b & c \\ 1 & 1 & 1 ∧ 0 ∧ 0 \\ 2 & 1 & 0 ∧ 0 ∧ 0 \\ 3 & 1 & 0 ∧ 0 ∧ 0 \\ 1 & 2 & 1 ∧ 0 ∧ 0 \\ 2 & 2 & 1 ∧ 1 ∧ 0 \\ 3 & 2 & 0 ∧ 0 ∧ 0 \\ 1 & 3 & 1 ∧ 0 ∧ 0 \\ 2 & 3 & 1 ∧ 1 ∧ 0 \\ 3 & 3 & 1 ∧ 1 ∧ 1 \end{matrix} = \begin{matrix}b & c \\ 1 & 1 & 0 \\ 2 & 1 & 0 \\ 3 & 1 & 0 \\ 1 & 2 & 0 \\ 2 & 2 & 0 \\ 3 & 2 & 0 \\ 1 & 3 & 0 \\ 2 & 3 & 0 \\ 3 & 3 & 1 \end{matrix}

31*** in the definition, X doesn’t have to be a proper schema, but in the lemmata, it is ***

S ↾ a = S ⊓ ¬ (S ↿a)

= \begin{matrix}a & b & c \\ 1 & 1 & 1 & 1 \\ 2 & 1 & 1 & 0 \\ 3 & 1 & 1 & 0 \\ 1 & 2 & 1 & 0 \\ 2 & 2 & 1 & 0 \\ 3 & 2 & 1 & 0 \\ 1 & 3 & 1 & 0 \\ 2 & 3 & 1 & 0 \\ 3 & 3 & 1 & 0 \\ 1 & 1 & 2 & 1 \\ 2 & 1 & 2 & 0 \\ 3 & 1 & 2 & 0 \\ 1 & 2 & 2 & 1 \\ 2 & 2 & 2 & 1 \\ 3 & 2 & 2 & 0 \\ 1 & 3 & 2 & 0 \\ 2 & 3 & 2 & 0 \\ 3 & 3 & 2 & 0 \\ 1 & 1 & 3 & 1 \\ 2 & 1 & 3 & 0 \\ 3 & 1 & 3 & 0 \\ 1 & 2 & 3 & 1 \\ 2 & 2 & 3 & 1 \\ 3 & 2 & 3 & 0 \\ 1 & 3 & 3 & 1 \\ 2 & 3 & 3 & 1 \\ 3 & 3 & 3 & 1 \end{matrix} ⊓ ¬ \begin{matrix}b & c \\ 1 & 1 & 0 \\ 2 & 1 & 0 \\ 3 & 1 & 0 \\ 1 & 2 & 0 \\ 2 & 2 & 0 \\ 3 & 2 & 0 \\ 1 & 3 & 0 \\ 2 & 3 & 0 \\ 3 & 3 & 1 \end{matrix} = \begin{matrix}a & b & c \\ 1 & 1 & 1 & 1 \\ 2 & 1 & 1 & 0 \\ 3 & 1 & 1 & 0 \\ 1 & 2 & 1 & 0 \\ 2 & 2 & 1 & 0 \\ 3 & 2 & 1 & 0 \\ 1 & 3 & 1 & 0 \\ 2 & 3 & 1 & 0 \\ 3 & 3 & 1 & 0 \\ 1 & 1 & 2 & 1 \\ 2 & 1 & 2 & 0 \\ 3 & 1 & 2 & 0 \\ 1 & 2 & 2 & 1 \\ 2 & 2 & 2 & 1 \\ 3 & 2 & 2 & 0 \\ 1 & 3 & 2 & 0 \\ 2 & 3 & 2 & 0 \\ 3 & 3 & 2 & 0 \\ 1 & 1 & 3 & 1 \\ 2 & 1 & 3 & 0 \\ 3 & 1 & 3 & 0 \\ 1 & 2 & 3 & 1 \\ 2 & 2 & 3 & 1 \\ 3 & 2 & 3 & 0 \\ 1 & 3 & 3 & 1 \\ 2 & 3 & 3 & 1 \\ 3 & 3 & 3 & 1 \end{matrix} ⊓ \begin{matrix}b & c \\ 1 & 1 & 1 \\ 2 & 1 & 1 \\ 3 & 1 & 1 \\ 1 & 2 & 1 \\ 2 & 2 & 1 \\ 3 & 2 & 1 \\ 1 & 3 & 1 \\ 2 & 3 & 1 \\ 3 & 3 & 0 \end{matrix}

= \begin{matrix}a & b & c \\ 1 & 1 & 1 & 1 \\ 2 & 1 & 1 & 0 \\ 3 & 1 & 1 & 0 \\ 1 & 2 & 1 & 0 \\ 2 & 2 & 1 & 0 \\ 3 & 2 & 1 & 0 \\ 1 & 3 & 1 & 0 \\ 2 & 3 & 1 & 0 \\ 3 & 3 & 1 & 0 \\ 1 & 1 & 2 & 1 \\ 2 & 1 & 2 & 0 \\ 3 & 1 & 2 & 0 \\ 1 & 2 & 2 & 1 \\ 2 & 2 & 2 & 1 \\ 3 & 2 & 2 & 0 \\ 1 & 3 & 2 & 0 \\ 2 & 3 & 2 & 0 \\ 3 & 3 & 2 & 0 \\ 1 & 1 & 3 & 1 \\ 2 & 1 & 3 & 0 \\ 3 & 1 & 3 & 0 \\ 1 & 2 & 3 & 1 \\ 2 & 2 & 3 & 1 \\ 3 & 2 & 3 & 0 \\ 1 & 3 & 3 & 1 \\ 2 & 3 & 3 & 1 \\ 3 & 3 & 3 & 1 \end{matrix} ∩ \begin{matrix}a & b & c \\ 1 & 1 & 1 & 1 \\ 2 & 1 & 1 & 1 \\ 3 & 1 & 1 & 1 \\ 1 & 2 & 1 & 1 \\ 2 & 2 & 1 & 1 \\ 3 & 2 & 1 & 1 \\ 1 & 3 & 1 & 1 \\ 2 & 3 & 1 & 1 \\ 3 & 3 & 1 & 1 \\ 1 & 1 & 2 & 1 \\ 2 & 1 & 2 & 1 \\ 3 & 1 & 2 & 1 \\ 1 & 2 & 2 & 1 \\ 2 & 2 & 2 & 1 \\ 3 & 2 & 2 & 1 \\ 1 & 3 & 2 & 1 \\ 2 & 3 & 2 & 1 \\ 3 & 3 & 2 & 1 \\ 1 & 1 & 3 & 1 \\ 2 & 1 & 3 & 1 \\ 3 & 1 & 3 & 1 \\ 1 & 2 & 3 & 1 \\ 2 & 2 & 3 & 1 \\ 3 & 2 & 3 & 1 \\ 1 & 3 & 3 & 0 \\ 2 & 3 & 3 & 0 \\ 3 & 3 & 3 & 0 \end{matrix} = \begin{matrix}a & b & c \\ 1 & 1 & 1 & 1 \\ 2 & 1 & 1 & 0 \\ 3 & 1 & 1 & 0 \\ 1 & 2 & 1 & 0 \\ 2 & 2 & 1 & 0 \\ 3 & 2 & 1 & 0 \\ 1 & 3 & 1 & 0 \\ 2 & 3 & 1 & 0 \\ 3 & 3 & 1 & 0 \\ 1 & 1 & 2 & 1 \\ 2 & 1 & 2 & 0 \\ 3 & 1 & 2 & 0 \\ 1 & 2 & 2 & 1 \\ 2 & 2 & 2 & 1 \\ 3 & 2 & 2 & 0 \\ 1 & 3 & 2 & 0 \\ 2 & 3 & 2 & 0 \\ 3 & 3 & 2 & 0 \\ 1 & 1 & 3 & 1 \\ 2 & 1 & 3 & 0 \\ 3 & 1 & 3 & 0 \\ 1 & 2 & 3 & 1 \\ 2 & 2 & 3 & 1 \\ 3 & 2 & 3 & 0 \\ 1 & 3 & 3 & 0 \\ 2 & 3 & 3 & 0 \\ 3 & 3 & 3 & 0 \end{matrix}

*** CONTINUE HERE ***

32.2.3 Definition

The particularization is a new quantification of formulas, defined as follows. If x is a variable and φ a formula, then

few x . φ stands for ((∃x . φ) ∧ ¬ (∀x . φ))

and it is read “for a few x holds φ” or “for some, but not all x holds φ”.

32.2.4 Lemma

Let x be a variable and φ a formula.

( ; 𝅝 ; ) few x . φ ⇔ few x . ¬φ

( ; 𝅝 ; ) *** CONTINUE HERE ***

32.2.5 Proof of 36.2.4

( ; 𝅝 ; ) few x . ¬φ

⇔ (∃x . ¬φ) ∧ ¬ (∀x . ¬φ) due to def. 36.2.3

⇔ (∃x . ¬φ) ∧ (∃x . (¬¬φ)) due to def. Thalg 5.5.11(1)(a)

⇔ (∃x . ¬φ) ∧ (∃x . (φ))

⇔ ¬¬ (∃x . ¬φ) ∧ (∃x . (φ))

⇔ ¬ (∀x . ¬¬φ) ∧ (∃x . (φ)) due to Thalg 5.5.11(1)(b)

⇔ ¬ (∀x . φ) ∧ (∃x . (φ))

⇔ few x . φ due to def. 36.2.3

( ; 𝅝 ; ) *** CONTINUE HERE ***

32.2.6 Lemma

For each proper schema X = [X_{i}|i ∈ I], each R ∈ Rel (X) and every i ∈ I holds:

(1) R↾ i = [ \begin{matrix}pr & (X, I \ \{i\}) \\ υ ↝ ∀x ∈ X_{i} . υ ˙∨ [ i ↦ x] ∈ R \end{matrix} ]

(2) R⇂ i = [ \begin{matrix}pr & (X, I \ \{i\}) \\ υ ↝ ∃x ∈ X_{i} . υ ˙∨ [ i ↦ x] ∈ R \end{matrix} ]

(3) R ↿i = [ \begin{matrix}X \\ ξ ↝ few x ∈ X_{i} . ξ√ [ i ↦ x] ∈ R \end{matrix} ]

(4) R ↿i⇂ i = [ \begin{matrix}pr & (X, I \ \{i\}) \\ υ ↝ few x ∈ X_{i} . υ ˙∨ [ i ↦ x] ∈ R \end{matrix} ]

32.2.7 Proof of 36.2.6

*** CONTINUE HERE ***

32.2.8 Remark

*** the double–table method for the four operations of the previous lemma ***

32.2.9 Lemma

1 Let X = [X_{i}|i ∈ I] be a proper schema, i ∈ I and R, S ∈ Prel (X). If i ∉ @ (S) then

(1) (R ⊓ S)⇂ i = R⇂ i ⊓ S

(2) (R ⊓ S)↾ i = R↾ i ⊓ S

(3) (R ⊔ S)⇂ i = R⇂ i ⊔ S

(4) (R ⊔ S)↾ i = R↾ i ⊔ S

32.2.10 Proof of 36.2.9

The statements are just special cases of 1.0.14 for J = {i}.

32.2.11 Remark

In the sequel, we investigate the properties of the coeliminations. We often present the results in combination with similar properties of the infimum elimination, most of which are known already (see Thalg 21.5 ). But it seemed useful to recall them in this context.

32.2.12 Lemma

Let X = [X_{i}|i ∈ I] be a proper schema, R ∈ Prel (X) and i ∈ I.

(1) @ (R ↿i) = @ (R)

(2) x (R ↿i) = x (R)

(3) R ↿i ⊆ R

(4) @ (R↾ i) = @ (R) \ {i}

(5) x (R↾ i) = pr (x (R) , @ (R) \ {i})

(6) R↾ i ⊑ R

32.2.13 Proof of 36.2.12

(1) *** CONTINUE HERE ***

(2) *** CONTINUE HERE ***

(3) *** update this ***

We have R ↿i ⊆ R if both (i) x (R ↿i) = R and (ii) R ↿i ⊑ R.

(i) is true because x (R ↿i) = x (R), according to 46.2.11. (ii) is true because R ↿ i = R ⊓ ¬R ↾ i, according to definition

36.2.1, So R ↿i ⊆ R, according to Thalg 24.4.24 .

(4) *** CONTINUE HERE ***

(5) *** CONTINUE HERE ***

(6) *** CONTINUE HERE ***

32.2.14 Lemma

Let X = [X_{i}|i ∈ I] be a proper schema, R ∈ Prel (X) and i ∈ I. If i ∉ @ (R) then

(1) R↾ i = R

(2) R ↿i ≡ ⊥

32.2.15 Proof of 36.2.14

(1) R↾ i

*** shorter proof: ***

i ∉ @ (R) implies {i} ∩ @ (R) = ∅, so that R ↾ i = R ↾ {i} = R, according to Thalg 21.5.3(12) .

(2) R ↿i 32.2.16 Lemma

Let X = [X_{i}|i ∈ I] be a proper schema, R ∈ Prel (X) and i ∈ I.

(1) R↾ i↾ i = R↾ i

(2) R ↿i ↿i = R ↿i

(3) R ↿i↾ i ≡ ⊥

(4) R↾ i ↿i ≡ ⊥

32.2.17 Proof of 36.2.16

(1) Already given in Thalg 21.5.3(6) . More precisely,

R↾ i↾ i

= R↾ {i}↾ {i} def. 36.2.1 = R↾ {i}↾ due to Thalg 21.5.3(6)

= R↾ i↾ again, def. 36.2.1

(2) R ↿i ↿i

= (R ⊓ ¬ (R↾ i)) ↿i def. 36.2.1 of ↿

= (R ⊓ ¬ (R↾ i)) ⊓ ¬ ((R ⊓ ¬ (R↾ i))↾ i)

def. 36.2.1 of ↿, again

= (R ⊓ ¬ (R↾ i)) ⊓ ¬ (R↾ i ⊓ ¬ (R↾ i)↾ i)

due to Thalg 21.5.7(8)

= (R ⊓ ¬ (R↾ i)) ⊓ ¬ (R↾ i ⊓ ¬ (R↾ i))

because i ∉ @ (¬ (R ↾ i)), so that

¬ (R ↾ i) ↾ i = ¬ (R ↾ i), according to Thalg coelim-redattr (1)

= (R ⊓ ¬ (R↾ i)) ⊓ ¬⊥ due to Thalg 20.4.21(21)

= (R ⊓ ¬ (R↾ i)) ⊓ ⊤ due to Thalg 19.4.8(1)

= R ⊓ ¬ (R↾ i) due to Thalg 20.4.21(1)

= R ↿i due to def. 36.2.1 of ↿

(3) R ↿i↾ i

= (R ⊓ ¬ (R↾ i))↾ i due to def. 36.2.1 of ↿

= R↾ i ⊓ ¬ (R↾ i)↾ i due to Thalg 21.5.7(8)

= R↾ i ⊓ ¬ (R↾ i)

because i ∉ @ (¬ (R ↾ i)), so that

¬ (R ↾ i) ↾ i = ¬ (R ↾ i), according to 36.2.14(1)

≡ ⊥ due to Thalg 20.4.21(21)

(4) R↾ i ↿i

= R↾ i ⊓ ¬ ((R↾ i)↾ i) def. 36.2.1 of ↿

= R↾ i ⊓ ¬ (R↾ i) due to Thalg 21.5.3(6)

≡ ⊥ due to Thalg 20.4.21(21)

32.2.18 Remark

Let X = [X_{i}|i ∈ I] be a proper schema, R ∈ Rel (X) and i some identifier. We put Y := pr (X, I \ {i}). Recall Thalg 21 , that there sometimes is a S ∈ Rel (Y) with S ≡ R, a relation where i is removed, but still has the same “semantics”. However, most of the time i is not redundant and such a relation does not always exist. In general, there is only a unique greatest lower and a unique least upper bound of R in Rel (Y), namely R↾ i and R⇂ i, respectively.

= cpj (R, @ (R) \ {i}) due to Thalg 21.4.1 of ↾ = cpj (R, @ (R)) because i ∉ @ (R)

= ¬pr (¬R, @ (R)) due to def. Thalg 21.2.2 = ¬¬R due to Thalg 21.3.3(1)(a)

= R due to Thalg 19.4.6 = R ⊓ ¬ (R↾ i) due to def. 36.2.1 = R ⊓ ¬R due to (1)

≡ ⊥ due to Thalg 20.4.21(21)

R↾ i  ⊑  R  ⊑  R⇂ i
∈  ∈  ∈
Rel (Y)  Rel (X)  Rel (Y)

Now we introduce R ↿ i as the difference of R and R ↾ i, the complement of R↾ i in R. In other words, R quasi–partitions into R↾ i and R ↿i, which is also written (see 36.2.21(1)) as

R = R↾ i ⊎ R ↿i

And since ⊤_{X} quasi–partitions into R and ¬R, we obtain a more refined quasi–partition of ⊤_{X} into four disvalent relations:

\begin{aligned}⊤_{X} & = & R ⊎ ¬R \\ & = & R↾ i ⊎ R ↿i ⊎ ¬R↾ i ⊎ ¬R↾ i \end{aligned}

We can picture this situation

⊤_{X}  ^{R  ¬R}  ^{R↾ i R ↿i ¬R↾ i ¬R ↿i } ∈ Rel (Y) } ∈ Rel (X)}

*** CONTINUE HERE ***

⊤_{Y}  ^{R↾ i ¬R↾ i R ↿i⇂ i}  \begin{matrix}R↾ i \\ ¬R⇂ i \end{matrix}  \begin{matrix}¬R↾ i \\ R⇂ i \end{matrix}

*** CONTINUE HERE ***Note, that we did not demand that i ∈ I. However, if i ∉ I anymore, then

R↾ i = R  ¬R↾ i = ¬R  R ↿i = ¬R ↿i = ⊥_{X}

and the quasi–partition is not a proper partition anymore.

32.2.19 Lemma

Let X be a proper schema, R ∈ Rel (X) and i be some identifier.

(1) R ↿i⇂ i = R⇂ i ⊓ ¬R⇂ i

(2) R ↿i⇂ i ≡ R ↿i ⊎ ¬R ↿i

(3) ¬R ↿i⇂ i = R ↿i⇂ i

(4) ¬ (R ↿i⇂ i) = R↾ i ⊎ ¬R↾ i

32.2.20 Proof of 36.2.19

*** Check the whole proof again ***

(1) R ↿i⇂ i

= (R ⊓ ¬ (R↾ i))⇂ i due to def. 36.2.1 of ↿

= (R ⊓ ¬R⇂ i)⇂ i due to Thalg 21.5.7(5)

= R⇂ i ⊓ ¬R⇂ i

due to 36.2.9(1) with i ∉ @ (¬R ⇂ i)

(2) *** maybe, it is easier to turn around this proof ***

R ↿i⇂ i = R⇂ i ⊓ ¬R⇂ i due to (1) ≡ ⊤ ⊓ R⇂ i ⊓ ¬R⇂ i ⊓ ⊤ due to Thalg 20.4.21(1)

≡ (R ⊔ ¬R) ⊓ R⇂ i ⊓ ¬R⇂ i ⊓ ⊤

because R ⊔ ¬R ≡ ⊤, according to Thalg 20.4.21(22)

≡ (R ⊔ ¬R) ⊓ R⇂ i ⊓ ¬R⇂ i ⊓ (¬R⇂ i ⊔ R⇂ i)

because R ⊑ ¬R ⇂ i, due to Thalg 21.5.3(15) , so that ⊤ ≡ ¬R ⊔ R ⊑ ¬R ⇂ i ⊔ R ⇂ i, which means that ¬R ⇂ i ⊔ R ⇂ i ≡ ⊤

≡ (R ⊔ ¬R) ⊓ (R ⊔ R⇂ i) ⊓ (¬R⇂ i ⊔ ¬R) ⊓ (¬R⇂ i ⊔ R⇂ i)

because R ⊑ R ⇂ i, according to Thalg 21.5.3(15) , so that R ⊔ R ⇂ i ≡ R ⇂ i, according to Thalg 20.4.24

≡ (R ⊓ ¬R⇂ i) ⊔ (¬R ⊓ R⇂ i)

due to the mutual distributivity of ⊓ and ⊔

≡ (R ⊓ ¬R⇂ i) ⊔ (¬R ⊓ ¬¬R⇂ i)

due to Thalg 19.4.6

≡ (R ⊓ ¬ (R↾ i)) ⊔ (¬R ⊓ ¬ (¬R↾ i))

due to Thalg 21.5.7(5) and (6)

≡ R ↿i ⊔ ¬R ↿i due to def. 36.2.1

≡ R ↿i ⊎ ¬R ↿i

because R ↿ i ⊑ R and ¬R ↿ i ⊑ ¬R and ¬R ⊓ R ≡ ⊥,
so that R ↿ i ⊓ ¬R ↿ i ≡ ⊥

(3) ¬R ↿i⇂ i = ¬R↾ i ⊎ ¬¬R↾ i due to (1) = ¬R↾ i ⊎ R↾ i due to Thalg 19.4.6

= R↾ i ⊎ ¬R↾ i due to 7.5.3(2)

= R ↿i⇂ i due to (1)

(4) ¬ (R ↿i⇂ i)

= ¬ (R⇂ i ⊓ ¬R⇂ i) due to (1) = ¬ (R⇂ i) ⊔ ¬ (¬R⇂ i) due to de Morgan’s law Thalg 20.4.21(13)

= ¬R↾ i ⊔ ¬¬R↾ i due to Thalg 21.5.7(6)

= ¬R↾ i ⊔ R↾ i due to Thalg 19.4.6

= R↾ i ⊔ ¬R↾ i due to Thalg 20.4.21(8)

= R↾ i ⊎ ¬R↾ i

because R ↾ i ⊑ R, ¬R ↾ i ⊑ ¬R and R ⊓ ¬R ≡ ⊥,
so that R ↾ i ⊓ ¬R ↾ i ≡ ⊥, too

32.2.21 Lemma

Let X be a proper schema, R ∈ Rel (X) and i be some identifier.

(1) R = R↾ i ⊎ R ↿i

(2) ¬R = ¬R↾ i ⊎ ¬R ↿i

(3) ⊤_{X} = R↾ i ⊎ R ↿i ⊎ ¬R↾ i ⊎ ¬R ↿i

32.2.22 Proof of 36.2.21

*** Update/check this proof ***

(1) R

= R ⊓ ⊤ due to Thalg 20.4.21(1)

= R ⊓ ((R↾ i) ⊎ ¬ (R↾ i)) due to 7.5.3(3) = (R ⊓ R↾ i) ⊎ (R ⊓ ¬ (R↾ i)) due to 7.5.3(4)

= R ⊓ ⊎ (R ⊓ ¬ (R↾ i))

because R ↾ i ⊑ R, so R ⊓ R ↾ i = R

= R↾ i ⊎ R ↿i due to def. 36.2.1

(2) True according to (1) with ¬R for R.

(3) ⊤_{X}

= R ⊎ ¬R due to 7.5.3(3) = (R↾ i ⊎ R ↿i) ⊎ (¬R↾ i ⊎ ¬R ↿i) due to (1) and (2)

= R↾ i ⊎ R ↿i ⊎ ¬R↾ i ⊎ ¬R ↿i due to 7.5.3(1)

32.2.23 Lemma

Let X be a proper schema, R ∈ Rel (X) and i be some identifier. We put Y := pr (X, I \ {i}).

(1) ⊤_{Y} = R↾ i ⊎ ¬R↾ i ⊎ R ↿i⇂ i

(2) R⇂ i = R↾ i ⊎ R ↿i⇂ i

(3) ¬R⇂ i = ¬R↾ i ⊎ R ↿i⇂ i

32.2.24 Proof of 36.2.23

(1) We use Thalg 20.4.9(5) to show that the equations holds, i.e. we show that both sides are (i) equivalent and (ii) have the same schema. So, (i) they are equivalent, because

⊤_{Y}

≡ ⊤X due to Thalg 20.4.4(2)

= R↾ i ⊎ R ↿i ⊎ ¬R↾ i ⊎ ¬R ↿i

due to 36.2.21(1)

= R↾ i ⊎ ¬R↾ i ⊎ (R ↿i ⊎ ¬R ↿i)

due to the commutativity and associativity 7.5.3(1) and (2) of ⊎

= R↾ i ⊎ ¬R↾ i ⊎ R ↿i⇂ i

due to 36.2.19 ??xxx??

And (ii) they have the same schema, because

x (⊤_{Y} )

= Y = Y ∨ Y ∨ Y due to Thalg 11.5.1(4)(e)

= x (R↾ i) ∨ x (¬R↾ i) ∨ x (R ↿i⇂ i) due to ??xxx??

= x (R↾ i ⊔ ¬R↾ i ⊔ R ↿i⇂ i) due to ??xxx??

= x (R↾ i ⊎ ¬R↾ i ⊎ R ↿i⇂ i) due to ??xxx??

(2) On one hand we have

⊤_{Y}

= R⇂ i ⊎ ¬ (R⇂ i) due to 7.5.3(3)

= R⇂ i ⊎ ¬R↾ i due to Thalg 21.5.7(6)

On the other hand, we know from (1) that

⊤_{Y} = R↾ i ⊎ ¬R↾ i ⊎ R ↿i⇂ i

So we have

R⇂ i ⊎ ¬R↾ i = R↾ i ⊎ ¬R↾ i ⊎ R ↿i⇂ i

which means that

R⇂ i = R↾ i ⊎ R ↿i⇂ i

according to 7.5.3 ??R ⊎ S ≡ R ⊎ T iff S ≡ T?? .

(3) ¬R⇂ i

= ¬R⇂ i ⊎ ¬R ↿i⇂ i due to (2)

= ¬R⇂ i ⊎ ¬R ↿i⇂ i due to 36.2.19(3)

32.2.25 Remark

Note, that coliminations are ( ; 𝅝 ; ) contractive in the sense that

R ↿i ⊑ R for all R and i

( ; 𝅝 ; ) not isotone in general, i.e. there are relations R and S such that

R ⊆ S is true, but R ↿i ⊆ S ↿i is not

For example, consider

R := \begin{matrix}i & j \\ a & a & 0 \\ b & a & 1 \\ a & b & 0 \\ b & b & 1 \end{matrix}  and  S := \begin{matrix}i & j \\ a & a & 1 \\ b & a & 1 \\ a & b & 0 \\ b & b & 1 \end{matrix}

with R ⊆ S. But

R ↿i := \begin{matrix}i & j \\ a & a & 0 \\ b & a & 1 \\ a & b & 0 \\ b & b & 1 \end{matrix}  and  S ↿i := \begin{matrix}i & j \\ a & a & 0 \\ b & a & 0 \\ a & b & 0 \\ b & b & 1 \end{matrix}

and thus R ↿i ⊈ S ↿i.

32.2.26 Remark

See picture 31.

                                                *** Input of coelim-partpicture.tex ***

32.2.27 Lemma

(1) ⊥ ↿i = ⊥

(2) ⊤ ↿i = ⊥

(3) ¬ (R ↿i)

= ¬R ⊎ R↾ i

= ¬R↾ i ⊎ ¬R ↿i ⊎ R↾ i

(4) (R ⊓ S) ↿i = (R↾ i ⊓ S ↿i) ⊎ (R ↿i ⊓ S ↾ i) ⊎ (R ↿i ⊓ S ↿i)

(5) (R ⊔ S) ↿i = ∗ ∗ ∗CONTINUEHERE ∗ ∗∗

32.2.28 Proof of 36.2.27

(1) ⊥ ↿i

= ⊥ ⊓ ¬⊥↾ i def. 36.2.1

≡ ⊥ due to Thalg 20.4.21(15)

(2) ⊤ ↿i

= ⊤ ⊓ ¬ (⊤↾ i) def. 36.2.1

≡ ¬ (⊤↾ i) due to Thalg 20.4.21(1)

≡ ¬⊤ due to Thalg 21.5.7(3)

= ⊥ due to Thalg 19.4.8(2)

(3) ¬ (R ↿i)

= ¬ (R ⊓ ¬ (R↾ i)) due to def. 36.2.1

= ¬R ⊔ ¬ (¬R⇂ i) due to de Morgan’s law Thalg 20.4.21(13)

= ¬R ⊔ ¬¬R↾ i due to Thalg 21.5.7(6)

= ¬R ⊔ R↾ i due to Thalg 19.4.6

= ¬R ⊎ R↾ i

because R ↾ i ⊑ R and R ⊓ ¬R ≡ ⊥, thus R ↾ i ⊓ ¬R ≡ ⊥

= (¬R↾ i ⊎ ¬R ↿i) ⊎ R↾ i due to ??

= ¬R↾ i ⊎ ¬R ↿i ⊎ R↾ i because ⊎ is associative, 46.2.11

(4) (R ⊓ S) ↿i

= (R ⊓ S) ⊓ ¬ ((R ⊓ S)↾ i) due to def. 36.2.1 = R ⊓ S ⊓ ¬ ((R ⊓ S)↾ i) because ⊓ is associative

= (R↾ i ⊎ R ↿i) ⊓ (S ↾ i ⊎ S ↿i) ⊓ ¬ ((R ⊓ S)↾ i)

because R = R ↾ i ⊎ R ↿ i due to 46.2.11

= ( \begin{matrix}(R↾ i ⊓ S ↾ i ⊓ ¬ (R↾ i)) ⊔ \\ (R ↿i ⊓ S ↾ i ⊓ ¬ (R↾ i)) ⊔ \\ (R↾ i ⊓ S ↿i ⊓ ¬ (R↾ i)) ⊔ \\ (R ↿i ⊓ S ↿i ⊓ ¬ (R↾ i)) ⊔ \\ (R↾ i ⊓ S ↾ i ⊓ ¬ (S ↾ i)) ⊔ \\ (R ↿i ⊓ S ↾ i ⊓ ¬ (S ↾ i)) ⊔ \\ (R↾ i ⊓ S ↿i ⊓ ¬ (S ↾ i)) ⊔ \\ (R ↿i ⊓ S ↿i ⊓ ¬ (S ↾ i)) \end{matrix} )

due to the distributivity law

= ( \begin{matrix}⊥⊔ \\ (R ↿i ⊓ S ↾ i) ⊔ \\ ⊥⊔ \\ (R ↿i ⊓ S ↿i) ⊔ \\ ⊥⊔ \\ ⊥⊔ \\ (R↾ i ⊓ S ↿i) ⊔ \\ (R ↿i ⊓ S ↿i) \end{matrix} )

= (R↾ i ⊓ S ↿i) ⊔ (R ↿i ⊓ S ↾ i) ⊔ (R ↿i ⊓ S ↿i)

= (R↾ i ⊓ S ↿i) ⊎ (R ↿i ⊓ S ↾ i) ⊎ (R ↿i ⊓ S ↿i)

because R ↾ i ⊓ R ↿ i ≡ ⊥ and S ↾ i ⊓ S ↿ i ≡ ⊥, so that (R ↾ i ⊓ S ↿ i) ⊓ (R ↿ i ⊓ S ↾ i) ≡ ⊥ and (R ↾ i ⊓ S ↿ i) ⊓ (R ↿ i ⊓ S ↿ i) ≡ ⊥ and (R ↿ i ⊓ S ↾ i) ⊓ (R ↿ i ⊓ S ↿ i) ≡ ⊥

(5) *** CONTINUE HERE ***

32.2.29 Remark

Given a proper schema X = [X_{i}|i ∈ I], two relations R, S ∈ Prel (X) and some i ∈ I. Recall from Thalg 21.5.7 , that we have two equations

(i) (R ⊓ S)↾ i = R↾ i ⊓ S ↾ i (ii) (R ⊔ S)⇂ i = R⇂ i ⊔ S ⇂ i

but the following two inclusions are no equations in general

(iii) R↾ i ⊔ S ↾ i ⊆ (R ⊔ S)↾ i (iv) (R ⊓ S)⇂ i ⊆ R⇂ i ⊓ S ⇂ i

Next we provide a lemma, that tells us more precisely about the difference between the left and right sides of these inclusions.

32.2.30 Lemma

Given a proper schema X = [X_{i}|i ∈ I], two relations R, S ∈ Prel (X) and some i ∈ I.

(1) (R↾ i ⊔ S ↾ i) ⊎ (R ↿i ⊔ S ↿i)↾ i = (R ⊔ S)↾ i

(2) (R ⊓ S)⇂ i ⊎ (¬R ↿i ⊔ ¬S ↿i)↾ i = R⇂ i ⊓ S ⇂ i

32.2.31 Proof of 36.2.30

(1) (R ⊔ S)↾ i

= ((R↾ i ⊎ R ↿i) ⊔ (S ↾ i ⊎ S ↿i))↾ i

= ((R↾ i ⊔ R ↿i) ⊔ (S ↾ i ⊔ S ↿i))↾ i

= ((R↾ i ⊔ S ↾ i) ⊔ (R ↿i ⊔ S ↿i))↾ i

due to the associativity Thalg 20.4.21(6)

and commutativity Thalg 20.4.21(8) of ⊔

= (R↾ i ⊔ S ↾ i) ⊔ (R ↿i ⊔ S ↿i)↾ i

due to 1.0.14(4), with i ∉ (R ↾ i ⊔ S ↾ i)

(2) ^{32} In general, if R_{1}, R_{2}, R_{3} ∈ Prel (Y) (in our case Y = pr (X, I \ {i})), then

R_{1} ⊎ R_{2} = R_{3} iff (i) R_{1} ⊆ R_{3} and (ii) R_{1} = R_{3} − R_{2}

Here, this means that (2) is true iff (i) and (ii) are true, where

(i) (R ⊓ S)⇂ i ⊆ R⇂ i ⊓ S ⇂ i (ii) (R ⊓ S)⇂ i = (R⇂ i ⊓ S ⇂ i) − (¬R ↿i ⊔ ¬S ↿i)↾ i

(i) is true according to Thalg 21.5.7(7) and a proof for (ii) is the following

(R ⊓ S)⇂ i

= ¬¬ ((R ⊓ S)⇂ i)

due to Thalg 19.4.6

= ¬ (¬ (R ⊓ S)↾ i)

due to Thalg 21.5.7(6)

= ¬ ((¬R ⊔ ¬S)↾ i)

due to Thalg 20.4.21(13)

= ¬ ((¬R↾ i ⊔ ¬S ↾ i) ⊎ (¬R ↿i ⊔ ¬S ↿i)↾ i)

due to (1)

= ¬ ((¬R↾ i ⊔ ¬S ↾ i) ⊔ (¬R ↿i ⊔ ¬S ↿i)↾ i)

due to def. 7.5.2 of ⊎

= ¬ (¬R↾ i ⊔ ¬S ↾ i) ⊓ ¬ ((¬R ↿i ⊔ ¬S ↿i)↾ i)

due to Thalg 20.4.21(14)

= (¬ (¬R↾ i) ⊓ ¬ (¬S ↾ i)) ⊓ ¬ ((¬R ↿i ⊔ ¬S ↿i)↾ i)

due to Thalg 20.4.21(14) , once more

= (¬¬R⇂ i ⊓ ¬¬S ⇂ i) ⊓ ¬ ((¬R ↿i ⊔ ¬S ↿i)↾ i)

due to Thalg 21.5.7(5)

= (R⇂ i ⊓ S ⇂ i) ⊓ ¬ ((¬R ↿i ⊔ ¬S ↿i)↾ i)

due to Thalg 19.4.6

= (R⇂ i ⊓ S ⇂ i) − (¬R ↿i ⊔ ¬S ↿i)↾ i

due to def. Thalg 20.5.2 of −

32.2.32 *** CONTINUE HERE ***

R↾ i ⊔ S ↾ i = R↾ i ⊔ S ↾ i =  R↾ i ⊔ S ↾ i
⊎  ⊎  ⊔  ⊎
R ↿i ⊔ S ↿i = R ↿i ⊔ S ↿i ⊒ (R ↿i ⊔ S ↿i)↾ i
=  =  =  =
R  ⊔  S  =  R ⊔ S  ⊒  (R ⊔ S)↾ i

*** CONTINUE HERE ***

R  ⊓  S  =  R ⊓ S  ⊑  R ⊓ S ⇂ i
⊎  ⊎  ⊎  ⊔
¬R ↿i ⊔ ¬S ↿i = ¬R ↿i ⊔ ¬S ↿i ⊒ (¬R ↿i ⊔ ¬S ↿i)↾ i
≡  ≡  ⊑  ≡
R⇂ i  ⊓  S ⇂ i  =  R⇂ i ⊓ S ⇂ i  =  R⇂ i ⊓ S ⇂ i

32*** there should be a more elegant proof for (2) ***

due to 36.2.21(1)

due to def. 7.5.2 of ⊎

*** see figures 32 and 33 ***

*** input of coelim-remain.tex ***

*** replace ⊆ by ⊑ everywhere in the following lemma and proof ***

32.2.33 Lemma

Let X = [X_{i}|i ∈ I] be a proper schema, R ∈ Prel (X) and i, j ∈ I.

(1) R↾ i↾ j = R↾ i ⊓ R↾ j

(2) R ↿i↾ j ⊑ R ↿i ⊓ R↾ j

(3) R↾ i ↿j ⊑ R↾ i But R↾ i ↿j ⊑ R ↿j is not true in general; see counter–example 46.2.11.

(4) R ↿i ↿j ⊆ R ↿i But R ↿i ↿j ⊆ R ↿j is not true in general; see counter–example 46.2.11.

32.2.34 Proof of 36.2.33

(1) This has been shown already in Thalg 21.5.7(8) .

(2) There is

(i) R ↿i↾ j ⊑ R ↿i due to Thalg 21.5.3(16)

(ii) R ↿i↾ j ⊑ R↾ j because R ↿ i ⊆ R, due to 36.2.12(3), so that R ↿ i ↾ j ⊆ R ↾ j, due to the isotony Thalg 21.5.3(19) of the infimum elimination.

And (i) and (ii) imply (2).

(3) R↾ i ↿j ⊑ R↾ i is true do to 36.2.12(3).

For an example of R ↾ i ↿ j ⋢ R ↿ j, see *** CONTINUE

HERE ***.

(4) R ↿i ↿j ⊆ R ↿i is true do to 36.2.12(3).

For an example of R ↿ i ↿ j ⋢ R ↿ j see *** the example

relation S of 46.2.11, where S ↿a↿b ⋢ S ↿b ***

\begin{matrix}⊤ & \begin{matrix}R \\ ¬R \end{matrix} & \begin{matrix}R↾ i \\ R ↿i \\ ¬R↾ i \\ ¬R ↿i \end{matrix} \\ ⊤ & ^{^{S}  ^{¬S}} & ^{^{S ↾ i}  ^{S ↿i}  ^{¬S ↾ i}  ^{¬S ↿i}} \\ \begin{matrix}R↾ i \\ R ↿i \\ ¬R↾ i \\ ¬R ↿i \end{matrix} & ^{^{S ↾ i}  ^{S ↿i}  ^{¬S ↾ i}  ^{¬S ↿i}} & ^{\begin{matrix}R↾ i \\ ⊓ \\ S ↾ i \end{matrix}  \begin{matrix}R↾ i \\ ⊓ \\ S ↿i \end{matrix} \begin{matrix}R ↿i \\ ⊓ \\ S ↾ i \end{matrix}  \begin{matrix}R ↿i \\ ⊓ \\ S ↿i \end{matrix}  \begin{matrix}R↾ i \\ ⊓ \\ ¬S ↾ i \end{matrix}  \begin{matrix}R↾ i \\ ⊓ \\ ¬S ↿i \end{matrix} \begin{matrix}R ↿i \\ ⊓ \\ ¬S ↾ i \end{matrix}  \begin{matrix}R ↿i \\ ⊓ \\ ¬S ↿i \end{matrix} \begin{matrix}¬R↾ i \\ ⊓ \\ S ↾ i \end{matrix}  \begin{matrix}¬R↾ i \\ ⊓ \\ S ↿i \end{matrix} \begin{matrix}¬R ↿i \\ ⊓ \\ S ↾ i \end{matrix}  \begin{matrix}¬R ↿i \\ ⊓ \\ S ↿i \end{matrix}  \begin{matrix}¬R↾ i \\ ⊓ \\ ¬S ↾ i \end{matrix}  \begin{matrix}¬R↾ i \\ ⊓ \\ ¬S ↿i \end{matrix} \begin{matrix}¬R ↿i \\ ⊓ \\ ¬S ↾ i \end{matrix}  \begin{matrix}¬R ↿i \\ ⊓ \\ ¬S ↿i \end{matrix}} \\ ⊤ & ^{^{R ⊓ S}  ^{R ⊓ ¬S}^{¬R ⊓ S}  ^{¬R ⊓ ¬S}} & ^{^{( \begin{matrix}R \\ ⊓ \\ S \end{matrix} ) ↾ i}  ^{( \begin{matrix}R \\ ⊓ \\ ¬S \end{matrix} ) ↾ i}^{( \begin{matrix}¬R \\ ⊓ \\ S \end{matrix} ) ↾ i}  ^{( \begin{matrix}¬R \\ ⊓ \\ ¬S \end{matrix} ) ↾ i}^{(R ⊓ S) ↿ i}  ^{(R ⊓ ¬S) ↿ i}^{(¬R ⊓ S) ↿ i}  ^{(¬R ⊓ ¬S) ↿ i}} \end{matrix}^{Figure 31:}

PredLogInTheoAlgRel 205

Figure 32:

*** CONTINUE HERE ***

\begin{matrix}b & c \\ 1 & 1 & ◯ \\ 2 & 1 & ◯ \\ 3 & 1 & ◯ \\ 1 & 2 & ◯ \\ 2 & 2 & ◯ \\ 3 & 2 & ◯ \\ 1 & 3 & ◯ \\ 2 & 3 & ◯ \\ 3 & 3 & ◯ \end{matrix}  \begin{matrix}b & c \\ 1 & 1 & ◯ \\ 2 & 1 & ◯ \\ 3 & 1 & ◯ \\ 1 & 2 & ◯ \\ 2 & 2 & ◯ \\ 3 & 2 & ◯ \\ 1 & 3 & ◯ \\ 2 & 3 & ◯ \\ 3 & 3 & ◯ \end{matrix}  \begin{matrix}b & c \\ 1 & 1 & ◯ \\ 2 & 1 & ◯ \\ 3 & 1 & ◯ \\ 1 & 2 & ◯ \\ 2 & 2 & ◯ \\ 3 & 2 & ◯ \\ 1 & 3 & ◯ \\ 2 & 3 & ◯ \\ 3 & 3 & ◯ \end{matrix}  \begin{matrix}b & c \\ 1 & 1 & ◯ \\ 2 & 1 & ◯ \\ 3 & 1 & ◯ \\ 1 & 2 & ◯ \\ 2 & 2 & ◯ \\ 3 & 2 & ◯ \\ 1 & 3 & ◯ \\ 2 & 3 & ◯ \\ 3 & 3 & ◯ \end{matrix}
R↾ i  ⊔  S ↾ i  =  R↾ i ⊔ S ↾ i  =  R↾ i ⊔ S ↾ i
⊎  ⊎  ⊎  ⊎
\begin{aligned}& & 1 & 2 & 3 & a \\ 1 & 1 & ◯ & ◯ & ◯ \\ 2 & 1 & ◯ & ◯ & ◯ \\ 3 & 1 & ◯ & ◯ & ◯ \\ 1 & 2 & ◯ & ◯ & ◯ \\ 2 & 2 & ◯ & ◯ & ◯ \\ 3 & 2 & ◯ & ◯ & ◯ \\ 1 & 3 & ◯ & ◯ & ◯ \\ 2 & 3 & ◯ & ◯ & ◯ \\ 3 & 3 & ◯ & ◯ & ◯ \\ b & c \end{aligned}  \begin{aligned}& & 1 & 2 & 3 & a \\ 1 & 1 & ◯ & ◯ & ◯ \\ 2 & 1 & ◯ & ◯ & ◯ \\ 3 & 1 & ◯ & ◯ & ◯ \\ 1 & 2 & ◯ & ◯ & ◯ \\ 2 & 2 & ◯ & ◯ & ◯ \\ 3 & 2 & ◯ & ◯ & ◯ \\ 1 & 3 & ◯ & ◯ & ◯ \\ 2 & 3 & ◯ & ◯ & ◯ \\ 3 & 3 & ◯ & ◯ & ◯ \\ b & c \end{aligned}  \begin{aligned}& & 1 & 2 & 3 & a \\ 1 & 1 & ◯ & ◯ & ◯ \\ 2 & 1 & ◯ & ◯ & ◯ \\ 3 & 1 & ◯ & ◯ & ◯ \\ 1 & 2 & ◯ & ◯ & ◯ \\ 2 & 2 & ◯ & ◯ & ◯ \\ 3 & 2 & ◯ & ◯ & ◯ \\ 1 & 3 & ◯ & ◯ & ◯ \\ 2 & 3 & ◯ & ◯ & ◯ \\ 3 & 3 & ◯ & ◯ & ◯ \\ b & c \end{aligned}  \begin{matrix}b & c \\ 1 & 1 & ◯ \\ 2 & 1 & ◯ \\ 3 & 1 & ◯ \\ 1 & 2 & ◯ \\ 2 & 2 & ◯ \\ 3 & 2 & ◯ \\ 1 & 3 & ◯ \\ 2 & 3 & ◯ \\ 3 & 3 & ◯ \end{matrix}
R ↿i  ⊔  S ↿i  =  R ↿i ⊔ S ↿i  ⊒  (R ↿i ⊔ S ↿i)↾ i
=  =  =  =
\begin{aligned}& & 1 & 2 & 3 & a \\ 1 & 1 & ◯ & ◯ & ◯ \\ 2 & 1 & ◯ & ◯ & ◯ \\ 3 & 1 & ◯ & ◯ & ◯ \\ 1 & 2 & ◯ & ◯ & ◯ \\ 2 & 2 & ◯ & ◯ & ◯ \\ 3 & 2 & ◯ & ◯ & ◯ \\ 1 & 3 & ◯ & ◯ & ◯ \\ 2 & 3 & ◯ & ◯ & ◯ \\ 3 & 3 & ◯ & ◯ & ◯ \\ b & c \end{aligned}  \begin{aligned}& & 1 & 2 & 3 & a \\ 1 & 1 & ◯ & ◯ & ◯ \\ 2 & 1 & ◯ & ◯ & ◯ \\ 3 & 1 & ◯ & ◯ & ◯ \\ 1 & 2 & ◯ & ◯ & ◯ \\ 2 & 2 & ◯ & ◯ & ◯ \\ 3 & 2 & ◯ & ◯ & ◯ \\ 1 & 3 & ◯ & ◯ & ◯ \\ 2 & 3 & ◯ & ◯ & ◯ \\ 3 & 3 & ◯ & ◯ & ◯ \\ b & c \end{aligned}  \begin{aligned}& & 1 & 2 & 3 & a \\ 1 & 1 & ◯ & ◯ & ◯ \\ 2 & 1 & ◯ & ◯ & ◯ \\ 3 & 1 & ◯ & ◯ & ◯ \\ 1 & 2 & ◯ & ◯ & ◯ \\ 2 & 2 & ◯ & ◯ & ◯ \\ 3 & 2 & ◯ & ◯ & ◯ \\ 1 & 3 & ◯ & ◯ & ◯ \\ 2 & 3 & ◯ & ◯ & ◯ \\ 3 & 3 & ◯ & ◯ & ◯ \\ b & c \end{aligned}  \begin{matrix}b & c \\ 1 & 1 & ◯ \\ 2 & 1 & ◯ \\ 3 & 1 & ◯ \\ 1 & 2 & ◯ \\ 2 & 2 & ◯ \\ 3 & 2 & ◯ \\ 1 & 3 & ◯ \\ 2 & 3 & ◯ \\ 3 & 3 & ◯ \end{matrix}
R  ⊔  S  =  R ⊔ S  ⊒  (R ⊔ S)↾ i

PredLogInTheoAlgRel 206

Figure 33:

*** CONTINUE HERE ***

\begin{aligned}& & 1 & 2 & 3 & a \\ 1 & 1 & ◯ & ◯ & ◯ \\ 2 & 1 & ◯ & ◯ & ◯ \\ 3 & 1 & ◯ & ◯ & ◯ \\ 1 & 2 & ◯ & ◯ & ◯ \\ 2 & 2 & ◯ & ◯ & ◯ \\ 3 & 2 & ◯ & ◯ & ◯ \\ 1 & 3 & ◯ & ◯ & ◯ \\ 2 & 3 & ◯ & ◯ & ◯ \\ 3 & 3 & ◯ & ◯ & ◯ \\ b & c \end{aligned}  \begin{aligned}& & 1 & 2 & 3 & a \\ 1 & 1 & ◯ & ◯ & ◯ \\ 2 & 1 & ◯ & ◯ & ◯ \\ 3 & 1 & ◯ & ◯ & ◯ \\ 1 & 2 & ◯ & ◯ & ◯ \\ 2 & 2 & ◯ & ◯ & ◯ \\ 3 & 2 & ◯ & ◯ & ◯ \\ 1 & 3 & ◯ & ◯ & ◯ \\ 2 & 3 & ◯ & ◯ & ◯ \\ 3 & 3 & ◯ & ◯ & ◯ \\ b & c \end{aligned}  \begin{aligned}& & 1 & 2 & 3 & a \\ 1 & 1 & ◯ & ◯ & ◯ \\ 2 & 1 & ◯ & ◯ & ◯ \\ 3 & 1 & ◯ & ◯ & ◯ \\ 1 & 2 & ◯ & ◯ & ◯ \\ 2 & 2 & ◯ & ◯ & ◯ \\ 3 & 2 & ◯ & ◯ & ◯ \\ 1 & 3 & ◯ & ◯ & ◯ \\ 2 & 3 & ◯ & ◯ & ◯ \\ 3 & 3 & ◯ & ◯ & ◯ \\ b & c \end{aligned}  \begin{matrix}b & c \\ 1 & 1 & ◯ \\ 2 & 1 & ◯ \\ 3 & 1 & ◯ \\ 1 & 2 & ◯ \\ 2 & 2 & ◯ \\ 3 & 2 & ◯ \\ 1 & 3 & ◯ \\ 2 & 3 & ◯ \\ 3 & 3 & ◯ \end{matrix}
R  ⊓  S  =  R ⊓ S  ⊑  R ⊓ S ⇂ i
⊎  ⊎  ⊎  ⊔
\begin{aligned}& & 1 & 2 & 3 & a \\ 1 & 1 & ◯ & ◯ & ◯ \\ 2 & 1 & ◯ & ◯ & ◯ \\ 3 & 1 & ◯ & ◯ & ◯ \\ 1 & 2 & ◯ & ◯ & ◯ \\ 2 & 2 & ◯ & ◯ & ◯ \\ 3 & 2 & ◯ & ◯ & ◯ \\ 1 & 3 & ◯ & ◯ & ◯ \\ 2 & 3 & ◯ & ◯ & ◯ \\ 3 & 3 & ◯ & ◯ & ◯ \\ b & c \end{aligned}  \begin{aligned}& & 1 & 2 & 3 & a \\ 1 & 1 & ◯ & ◯ & ◯ \\ 2 & 1 & ◯ & ◯ & ◯ \\ 3 & 1 & ◯ & ◯ & ◯ \\ 1 & 2 & ◯ & ◯ & ◯ \\ 2 & 2 & ◯ & ◯ & ◯ \\ 3 & 2 & ◯ & ◯ & ◯ \\ 1 & 3 & ◯ & ◯ & ◯ \\ 2 & 3 & ◯ & ◯ & ◯ \\ 3 & 3 & ◯ & ◯ & ◯ \\ b & c \end{aligned}  \begin{aligned}& & 1 & 2 & 3 & a \\ 1 & 1 & ◯ & ◯ & ◯ \\ 2 & 1 & ◯ & ◯ & ◯ \\ 3 & 1 & ◯ & ◯ & ◯ \\ 1 & 2 & ◯ & ◯ & ◯ \\ 2 & 2 & ◯ & ◯ & ◯ \\ 3 & 2 & ◯ & ◯ & ◯ \\ 1 & 3 & ◯ & ◯ & ◯ \\ 2 & 3 & ◯ & ◯ & ◯ \\ 3 & 3 & ◯ & ◯ & ◯ \\ b & c \end{aligned}  \begin{matrix}b & c \\ 1 & 1 & ◯ \\ 2 & 1 & ◯ \\ 3 & 1 & ◯ \\ 1 & 2 & ◯ \\ 2 & 2 & ◯ \\ 3 & 2 & ◯ \\ 1 & 3 & ◯ \\ 2 & 3 & ◯ \\ 3 & 3 & ◯ \end{matrix}
¬R ↿i  ⊔  ¬S ↿i  =  ¬R ↿i ⊔ ¬S ↿i  ⊒  (¬R ↿i ⊔ ¬S ↿i)↾ i
≡  ≡  ⊑  ≡
\begin{matrix}b & c \\ 1 & 1 & ◯ \\ 2 & 1 & ◯ \\ 3 & 1 & ◯ \\ 1 & 2 & ◯ \\ 2 & 2 & ◯ \\ 3 & 2 & ◯ \\ 1 & 3 & ◯ \\ 2 & 3 & ◯ \\ 3 & 3 & ◯ \end{matrix}  \begin{matrix}b & c \\ 1 & 1 & ◯ \\ 2 & 1 & ◯ \\ 3 & 1 & ◯ \\ 1 & 2 & ◯ \\ 2 & 2 & ◯ \\ 3 & 2 & ◯ \\ 1 & 3 & ◯ \\ 2 & 3 & ◯ \\ 3 & 3 & ◯ \end{matrix}  \begin{matrix}b & c \\ 1 & 1 & ◯ \\ 2 & 1 & ◯ \\ 3 & 1 & ◯ \\ 1 & 2 & ◯ \\ 2 & 2 & ◯ \\ 3 & 2 & ◯ \\ 1 & 3 & ◯ \\ 2 & 3 & ◯ \\ 3 & 3 & ◯ \end{matrix}  \begin{matrix}b & c \\ 1 & 1 & ◯ \\ 2 & 1 & ◯ \\ 3 & 1 & ◯ \\ 1 & 2 & ◯ \\ 2 & 2 & ◯ \\ 3 & 2 & ◯ \\ 1 & 3 & ◯ \\ 2 & 3 & ◯ \\ 3 & 3 & ◯ \end{matrix}
R⇂ i  ⊓  S ⇂ i  =  R⇂ i ⊓ S ⇂ i  =  R⇂ i ⊓ S ⇂ i

32.3 Decomposition of clos({R} , {i, j})

32.3.1 Remark

Let X = [X_{i}|i ∈ I] be a proper schema, i, j ∈ I and R ∈ Prel (X). Recall 46.2.11, that each of the two following sets is a quasi– partition

\begin{matrix}\{R↾ j ↾ i, R↾ j ↿i, R ↿j ↾ i, R ↿j ↿i\} \\ \{R↾ i↾ j, R↾ i ↿j, R ↿i↾ j, R ↿i ↿j\} \end{matrix}

Their conjunction is given by the following table

\begin{aligned}⊓ & R↾ j ↾ i & R↾ j ↿i & R ↿j ↾ i & R ↿j ↿i \\ R↾ i↾ j & \begin{matrix}= R↾ i↾ j \\ = R↾ j ↾ i \end{matrix} & ≡ ⊥ & ≡ ⊥ & ≡ ⊥ \\ R↾ i ↿j & ≡ ⊥ & = R↾ i ↿j ⊓ R↾ j ↿i & ≡ R ↿j ↾ i & ≡ ⊥ \\ R ↿i↾ j & ≡ ⊥ & ≡ R ↿i↾ j & ≡ ⊥ & ≡ ⊥_{Y} \\ R ↿i ↿j & ≡ ⊥ & ≡ ⊥ & ≡ ⊥ & = R ↿i ⊓ R ↿j \end{aligned}

33 Decompositions and normal forms

33.1 The irredundant decomposition

33.1.1 Repetition

Recall from Thalg 21.8 that for every relation R ( ; 𝅝 ; ) redAt (R) is the redundant attribute class of R ( ; 𝅝 ; ) irrAt (R) is the irredundant attribute class of R

33.1.2 Lemma the irredundant decomposition

For every relation R = [X, Γ] holds:

R = (R⇂ J) ⊙ ⊤_{Y} = (R↾ J) ⊙ ⊤_{pr(Y,J)}

where J := redAt (R)

33.1.3 Proof of 37.1.2

*** CONTINUE HERE ***

33.1.4 Example

*** CONTINUE HERE ***

33.2 The core decomposition

33.2.1 Definition

Let R = [X, Γ] be a relation with schema X = [X_{i}|i ∈ I]. If R is not empty (i.e. if Γ ≠ ∅) we define

coAtt (R) := {i ∈ I | ξ(i) = υ(i) for all ξ, υ ∈ Γ}

the core (or constant) attribute class of R

corec (R) := [ sing (ξ(i)) ξ ∈ Γ i ∈ coAtt (R]) ]

the core (or constant) record of R

corel (R) := [ \begin{matrix}pr & (X, coAtt (R)) \\ \{ & corec & (R) & \} \end{matrix} ]

the core (or constant) relation of R

33.2.2 Example

*** CONTINUE HERE ***

33.2.3 Lemma

*** CONTINUE HERE ***

( ; 𝅝 ; ) coAtt (R) = D_{Γ}^{⌣}

( ; 𝅝 ; ) corec (R) = ⋀ Γ

( ; 𝅝 ; ) pr (ξ, coAtt (R)) = pr (υ, coAtt (R)) for all ξ, υ ∈ Γ

33.2.4 Proof of 37.2.3

*** CONTINUE HERE ***

33.3 The equivalent–attribute decom-

postion

*** CONTINUE HERE ***

34 Perspectives

34.0.1 Repetition

Recall, that for every class I we defined

Part (I) :=

\{ J ⊆ P (I) \begin{matrix}∀J, K ∈ J . (J = K or J ∩ K = ∅), \\ ⋃ J = I, \\ ∅ ∉ J \end{matrix} \}

the partition class of I

◯ 1 ⊑ ◯ 2 := [ \begin{matrix}Part (I) ↭ Part (I) \\ ⟨J , K⟩ ↝ ∀J ∈ J . ∃K ∈ K . J ⊆ K \end{matrix} ]

the partition order relation over I

For all J , K ∈ Part (I) the following statements are defined to be equivalent:

( ; 𝅝 ; ) J ⊑ K

( ; 𝅝 ; ) J is finer than K ( ; 𝅝 ; ) K is coarser than K

Note that

J ⊑ K implies card (J) ≥ card (K)

Let X = [X_{i}|i ∈ I] be a schema.

Let R, S ⊆ Prel (X). We say that R and S are relatively distinct, if

R ≬ S for all R ∈ R and S ∈ S

And in that case we define their distinct product

R ⊙ S := {R ⊙ S | R ∈ R, S ∈ S}

*** big distinct product ***

34.0.2 Definition

Let X = [X_{i}|i ∈ I] be a schema, J ⊆ I and J ∈ Part (J). We define

DistRel (X, J) := ⨀_{J∈J} Rel (pr (X, J))

*** CONTINUE HERE ***

( ; 𝅝 ; ) DistRel (X, J) ⊆ Rel (pr (X, J))

34.0.3 Definition

Let X = [X_{i}|i ∈ I] be a schema and R ∈ Rel (X).

If J ⊆ I, J ⊆ Part (I) and K ⊆ J we put K′ := J \ K and define

per (R, K, K′) :=

( ⨀_{K∈K}pr (R, K)) ⊙ ( ⨀_{K∈K′}cpj (R, K))

the perspective of R at pro K and co K′.

For each J ⊆ I and every J ⊆ Part (I) we define

Per (R, J) := {per (R, K, J \ K) | K ⊆ J }

the perspective class of R and partition J.

For each J ⊆ I we define

Per (R, J) := ⋃{Per (R, J) | J ∈ Part (J)}

the perspective class of R on attributes J.

We also define

Per (R) := Per (R, I) the perspective class of R.

34.0.4 Repetition

Recall, that for two any two compatible relations R and S we defined

R ▽ S := (¬R ⊓ S) ⊔ (R ⊓ ¬S)

the opposition or symmetric difference of R and S

34.0.5 Definition

Let X = [X_{i}|i ∈ I] be a schema and R ∈ Rel (X).

If J ⊆ I, J ⊆ Part (I) and K ⊆ J we put K′ := J \ K and define

shad (R, K, K′) := R ▽ per (R, K, K′)

the shadow of R on pro K and co K′.

34.0.6 Example

Given

I = \{a, b, c\}  X = [\begin{matrix}a ↦ & A \\ b ↦ & B \\ c ↦ & C \end{matrix} ]  R ∈ Rel (X)

Part (I) has five members J_{1} := {{a} , {b} , {c}}

J_{2} := {{a, b} , {c}}

J_{3} := {{a, c} , {b}}

J_{4} := {{b, c} , {a}}

J_{5} := {{a, b, c}}

The perspective class of R is

Per (R) = Per (R, I) = Per (R, J_{1}) ∪ ⋯ ∪ Per (R, J_{5})

where

Per (R, J_{1}) = \{ \begin{matrix}per (R, ∅, \{\{a\} , \{b\} , \{c\}\}) , \\ per (R, \{\{a\}\} , \{\{b\} , \{c\}\}) , \\ per (R, \{\{b\}\} , \{\{a\} , \{c\}\}) , \\ per (R, \{\{c\}\} , \{\{a\} , \{b\}\}) , \\ per (R, \{\{a\} , \{b\}\} , \{\{c\}\}) , \\ per (R, \{\{a\} , \{c\}\} , \{\{b\}\}) , \\ per (R, \{\{b\} , \{c\}\} , \{\{a\}\}) , \\ per & (R, \{\{a\} , \{b\} , \{c\}\} , ∅) \end{matrix} \} = \{ \begin{matrix}cpj (R, \{a\}) ⊙ cpj (R, \{b\}) ⊙ cpj (R, \{c\}) , \\ pr (R, \{a\}) ⊙ cpj (R, \{b\}) ⊙ cpj (R, \{c\}) , \\ pr (R, \{b\}) ⊙ cpj (R, \{a\}) ⊙ cpj (R, \{c\}) , \\ pr (R, \{c\}) ⊙ cpj (R, \{a\}) ⊙ cpj (R, \{b\}) , \\ pr (R, \{a\}) ⊙ pr (R, \{b\}) ⊙ cpj (R, \{c\}) , \\ pr (R, \{a\}) ⊙ pr (R, \{c\}) ⊙ cpj (R, \{b\}) , \\ pr (R, \{b\}) ⊙ pr (R, \{c\}) ⊙ cpj (R, \{a\}) , \\ pr (R, \{a\}) ⊙ pr (R, \{b\}) ⊙ pr (R, \{c\}) \end{matrix} \}

Per (R, J_{2}) = \{ \begin{matrix}per (R, ∅, \{\{a, b\} , \{c\}\}) , \\ per (R, \{\{a, b\}\} , \{\{c\}\}) , \\ per (R, \{\{c\}\} , \{\{a, b\}\}) , \\ per & (R, \{\{a, b\} , \{c\}\} , ∅) \end{matrix} \} = \{ \begin{matrix}cpj (R, \{a, b\}) ⊙ cpj (R, \{c\}) , \\ pr (R, \{a, b\}) ⊙ cpj (R, \{c\}) , \\ pr (R, \{c\}) ⊙ cpj (R, \{a, b\}) , \\ pr (R, \{a, b\}) ⊙ pr (R, \{c\}) \end{matrix} \}

Per (R, J_{3}) = \{ \begin{matrix}per (R, ∅, \{\{a, c\} , \{b\}\}) , \\ per (R, \{\{a, c\}\} , \{\{b\}\}) , \\ per (R, \{\{b\}\} , \{\{a, c\}\}) , \\ per & (R, \{\{a, c\} , \{b\}\} , ∅) \end{matrix} \} = \{ \begin{matrix}cpj (R, \{a, c\}) ⊙ cpj (R, \{b\}) , \\ pr (R, \{a, c\}) ⊙ cpj (R, \{b\}) , \\ pr (R, \{b\}) ⊙ cpj (R, \{a, c\}) , \\ pr (R, \{a, c\}) ⊙ pr (R, \{b\}) \end{matrix} \}

Per (R, J_{4}) = \{ \begin{matrix}per (R, ∅, \{\{b, c\} , \{a\}\}) , \\ per (R, \{\{b, c\}\} , \{\{a\}\}) , \\ per (R, \{\{a\}\} , \{\{b, c\}\}) , \\ per & (R, \{\{b, c\} , \{a\}\} , ∅) \end{matrix} \} = \{ \begin{matrix}cpj (R, \{b, c\}) ⊙ cpj (R, \{a\}) , \\ pr (R, \{b, c\}) ⊙ cpj (R, \{a\}) , \\ pr (R, \{a\}) ⊙ cpj (R, \{b, c\}) , \\ pr (R, \{b, c\}) ⊙ pr (R, \{a\}) \end{matrix} \}

Per (R, J_{5}) = \{ \begin{matrix}per (R, ∅, \{\{a, b, c\}\}) , \\ per & (R, \{\{a, b, c\}\} , ∅) \end{matrix} \} = \{ \begin{matrix}cpj (R, \{a, b, c\}) , \\ pr & (R, \{a, b, c\}) \end{matrix} \}

*** CONTINUE HERE ***

Let X = [X_{i}|i ∈ I] be a schema, R ∈ Rel (X) and J ⊆ I, J ∈ Part (J) and K ⊆ J. We put

Y := pr (X, J) K′ := J \ K R′ := per (R, K, K′)

( ; 𝅝 ; ) Suppose J = ∅. Then J = ∅ and K = K′ = ∅ and

R′ = ⊤ ( ; 𝅝 ; ) Suppose J = I. Then Y = X and the following statements

are true.

( ; 𝅗𝅥 ; ) If K = {I} then K′ = ∅ and R′ = pr (R, I) = R ( ; 𝅗𝅥 ; ) If K′ = {I} then K = ∅ and R′ = cpj (R, I) = R

( ; 𝅗𝅥 ; ) If K = ∅ then

R′ ⊆ R

( ; 𝅗𝅥 ; ) If K′ = ∅ then

R ⊆ R′

(In fact, in this case R′ is the cartesian closure cart (R) of R; see ???? .)

( ; 𝅗𝅥 ; ) *** CONTINUE HERE ***

( ; 𝅝 ; ) And in general

( ; 𝅗𝅥 ; ) If K = ∅ then R′ ⊑ R

( ; 𝅗𝅥 ; ) If K′ = ∅ then R′ ⊒ R

( ; 𝅗𝅥 ; ) If K′ has exactly one member K′, i.e. if K′ = {K′} is a

singleton, then

R′ ≡ cpj (R, K′)

( ; 𝅗𝅥 ; ) If K′ has two or more members, then

R′ = \begin{cases}⊤_{Y} & if R ≡ ⊤ \\ ⊥_{Y} & else \end{cases}

( ; 𝅗𝅥 ; ) *** CONTINUE HERE ***

34.0.7 Lemma

Let X = [X_{i}|i ∈ I] be a schema, R ∈ Rel (X) and J ⊆ I.

If Y := pr (X, J) then

( ; 𝅝 ; ) Per (R, J) ⊆ DistRel (X, J)

( ; 𝅝 ; ) per (R, K, K′) = ⨀_{K∈K}R⇂ (I \ K) ⊙ ⨀_{K∈K′}R↾ (I \ K)

( ; 𝅝 ; ) Per (R, J) ⊆ Rel (Y)

( ; 𝅝 ; ) Per (R) ⊆ Rel (X)

( ; 𝅝 ; ) R ∈ Per (R)

( ; 𝅝 ; ) ⊥_{Y} ∈ Per (R, J) *** at least if R ≢ ⊥, ⊤ *** ( ; 𝅝 ; ) ⊤_{Y} ∈ Per (R, J) *** at least if R ≢ ⊥, ⊤ ***

( ; 𝅝 ; ) ⊥_{X} ∈ Per (R)

( ; 𝅝 ; ) ⊤_{X} ∈ Per (R)

*** the cartesian closure cart (R) is a member of Per (R) ***

Part XVI

Block algebra and compact relations

35 Block classes

35.1 Block classes

35.1.1 Definition

A block class is a class A of pairwise disjunct classes, i.e

(B = C or B ∩ C = ∅) for all B, C ∈ A

The members of A are called blocks.

If A is a block class and C = ⋃ A, then A is called a (block class) partition of C.

A block class A is called proper, if ∅ ∉ A. Otherwise, A is improper.

For every class C we define

BCP (C) := \{ \begin{matrix}A ⊆ P (C) \\ ⋃ A = C, \\ ∀A, B ∈ A . (A = B or A ∩ B = ∅) \end{matrix} \}

the (block class) partition class of C

PBCP (C) := \{ \begin{matrix}A ⊆ P (C) \\ ⋃ A = C, ∅ ≠ A, \\ ∀A, B ∈ A . (A = B or A ∩ B = ∅) \end{matrix} \}

the proper (block class) partition class of C

35.1.2 Example

Let C = {1, 2, 3, 4, 5, 6}.

(1) {{1, 3, 5} , {2, 4} , {6}} is a proper block class and a partition of C.

1 3 5  2 4  6

(2) {{1, 3, 5} , {2, 3, 4} , {6}} is not a block class, because {1, 3, 5}∩ {2, 3, 4} = {3} ≠ ∅.

1 5 3 2 4  6

(3) {∅, {1, 3, 5} , {2, 4} , {6}} is a partition of C, again.

∅ 1 3 5  2 4  6

But this time, it is an improper one, i.e. an improper block class, because in contains the empty set.

35.1.3 Example

There are 10 block class partitions of {1, 2, 3} and 5 of them are improper, the other 5 are proper:

BCP(\{1, 2, 3\}) = \{ \begin{matrix}\{∅, \{1\} , \{2\} , \{3\}\} , \\ \{∅, \{1, 2\} , \{3\}\} , \\ \{∅, \{1, 3\} , \{2\}\} , \\ \{∅, \{1\} , \{2, 3\}\} , \\ \{∅, \{1, 2, 3\}\} , \\ \{\{1\} , \{2\} , \{3\}\} , \\ \{\{1, 2\} , \{3\}\} , \\ \{\{1, 3\} , \{2\}\} , \\ \{\{1\} , \{2, 3\}\} , \\ \{ & \{1, 2, 3\} & \} \end{matrix} \}

35.1.4 Definition

If A is a block class partition of the given class C and x ∈ C,then

[ x]_{A} := (the B ∈ A with x ∈ B)

is the block of x in A.

35.1.5 Example

Once more, let us consider A = {∅, {1, 3, 5} , {2, 4} , {6}} which is a block class partition of C = {1, 2, 3, 4, 5, 6}.

∅ 1 3 5  2 4  6

We obtain

\begin{matrix}[ 1 ]_{A} = \{1, 3, 5\} [ 2 ]_{A} = \{2, 4\} [ 3 ]_{A} = \{1, 3, 5\} \\ [ 4 ]_{A} = \{2, 4\} [ 5 ]_{A} = \{1, 3, 5\} [ 6 ]_{A} = \{6\} \end{matrix}

35.1.6 Definition

For every class C we define

◯ 1 ⊴ ◯ 2 := [ \begin{matrix}P (P (C)) ↭ P (P (C)) \\ ⟨A, B⟩ ↝ ∀A ∈ A . ∀B ∈ B . A ⊆ B \end{matrix} ]

the cover relation (of C) (on P (P (C)))

*** examples and diagrams ***

35.1.7 Lemma

⟨P (P (C)) , ⊴⟩ is a quasi–ordered class, for every class C.

35.1.8 Proof of 39.1.7

*** CONTINUE HERE ***

35.1.9 Lemma

⟨PBCP (C) , ⊴⟩ is a poclass, for every class C.

35.1.10 Proof of 39.1.9

*** CONTINUE HERE ***

*** The complete distributive lattice 𝔓𝔅ℭ𝔓 (C) ***

35.1.11 Definition For every class C we define

bcp := [ \begin{matrix}P (P (C)) ⟶ P (P (C)) \\ A ↦ \{ \{C \ B | B ∈ B\} ∪ (A \ B) B ⊆ A \} \end{matrix} ]

the block class partition function

bcp := [ \begin{matrix}P (P (C)) ⟶ P (P (C)) \\ A ↦ bcp (A) \ \{∅\} \end{matrix} ]

the block class partition function

35.1.12 Example

*** CONTINUE HERE ***

C := {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

A := \{\underbrace{\{1, 4, 5, 9, 11\}}_{:=A1}, \underbrace{\{2, 6, 7, 10, 12\}}_{:=A2}, \underbrace{\{4, 6, 9, 11\}}_{:=A3}\}

                                                                                                                        *** pics/autopartition12.eps ***

35.1.13 Lemma

For every class C and each A ∈ P (P (C)) holds:

(1) bcp (A) ∈ BCP (C)

(2) pbcp (A) ∈ PBCP (C)

36 Super–schemas and block schemas

36.1 Repetitions

36.1.1 Remark Recall Thalg xxx , that a schema X = [X_{i}|i ∈ I] is called proper, if none of its domains X_{i} is empty.

36.1.2 Repetition Recall ( ; 𝅝 ; ) Thalg 9.3.3(1) A schema X = [X_{i}|i ∈ I] is called proper iff none

of the X_{i} is empty. ( ; 𝅝 ; ) Accordingly ( Thalg 12.1.12(1) ), for every schema X = [X_{i}|i ∈ I]

holds ⊗X = ∅ iff X is not a proper schema

36.1.3 Repetition Recall Thalg 14 , that the inclusion algebra of a given schema X = [X_{i}|i ∈ I] was

ℑ𝔫𝔠𝔩 (X) := ⟨Incl (X) , ⊆, [∅|I], X, ∩, ∪, ⋂, ⋃, ∁⟩

where

Incl (X) = {[Y_{i}|i ∈ I] | Y_{i} ⊆ X_{i} for all i ∈ I}

*** add examples to the previous definition ***

36.1.4 Repetition Recall Thalg 16.1.1 , that a class partition (record) of a given class C is a schema P = [P_{k}|k ∈ K] such that P_{i} ∩P_{j} = ∅ for all i, j ∈ K with i ≠ j and ⋃{P_{k} | k ∈ K} = C. Such a class partition is called proper, if P is a proper schema, i.e. if P_{k} ≠ ∅ for all k ∈ K.

36.1.5 Example Two class partition records of

C = {0, 1, 2, 3, 4, 5}

are given by

P = [ \begin{matrix}even ↦ & \{2, 4\} \\ odd ↦ & \{1, 3, 5\} \\ zero ↦ & \{0\} \end{matrix} ] and P′ = [ \begin{matrix}even ↦ & \{2, 4\} \\ odd ↦ & \{1, 3, 5\} \\ zero ↦ & \{0\} \\ negative ↦ & ∅ \\ irrational ↦ & ∅ \end{matrix} ]

P is a proper class partition of C and P′ is improper.

36.1.6 Repetition record partition

In Thalg 16.2.3 we defined a record partition of a given record ξ as a record–record π = [π_{k}|k ∈ K] such that π_{i} ≬ π_{j} for all i, j ∈ K with i ≠ j and ξ = ˙⋁ {π_{k} | k ∈ K}. Such a record partition is called proper, if π_{k} ≠ ⟨⟩ for all k ∈ K.

36.1.7 Example record partition

For example, take the record

salary := [ \begin{matrix}anne ↦ & 1500 \\ ben ↦ & 800 \\ cecil ↦ & 1400 \\ daryl ↦ & 1000 \\ edgar ↦ & 1100 \end{matrix} ]

A non–proper record partition of salary is given by

[ \begin{matrix}female ↦ & [ \begin{matrix}anne ↦ & 1500 \\ cecil ↦ & 1400 \\ daryl ↦ & 1000 \end{matrix} ] \\ male ↦ & [ \begin{matrix}ben ↦ & 800 \\ edgar ↦ & 1100 \end{matrix} ] \\ robot ↦ & ⟨⟩ \end{matrix} ]

36.2 Unions and Venn diagrams of schemas

36.2.1 Venn diagrams of schemas

If X = [X_{i}|i ∈ I] is a (totally) finite schema, it is sometimes helpful to picture it by its Venn diagram.

For example, let

X = [ \begin{matrix}a ↦ & \{1, 2, 3, 9, 10\} \\ b ↦ & \{2, 3, 4, 5, 6, 10, 11\} \\ c ↦ & \{2, 6, 7, 8, 10, 12\} \end{matrix} ]

The Venn diagram of X is given by

*** pics/blockschema1.eps ***

36.2.2 Definition

For each schema X = [X_{i}|i ∈ I] we define

⋃ X := ⋃{X_{i} | i ∈ I} the union of X

36.2.3 Example

Consider the example schema X from 40.2.1 again, then

⋃ X = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

36.3 Super–schemas

36.3.1 Definition

A super–schema is a schema [A_{i}|i ∈ I], where each A_{i} is a class family.

A super–schema [A_{i}|i ∈ I] is called

(a) proper, if it it is a proper schema, i.e. A_{i} ≠ ∅ for all i ∈ I, as defined in Thalg 9.3.3 .

(b) locally proper, if ∅ ∉ A_{i} for all i ∈ I

(c) regular, if it is both proper and locally proper

36.3.2 Example

*** example with Venn diagram ***

36.3.3 Lemma Let A be a super–schema.

(1) The following statements are equivalent: (a) A is proper

(b) ⊗A ≠ ∅

(2) The following statements are equivalent: (a) A is locally proper

(b) every Y ∈ ⊗A is proper

(c) every Y ∈ ⊛A is proper

(d) every Y ∈ ⊕A is proper

(e) ∅ ∉ ⋃ A

(3) The following statements are equivalent: (a) A is regular

(b) ⊗A is a non–empty class of proper schemas

(c) ⊛A is a non–empty class of proper schemas

(d) ⊕A is a non–empty class of proper schemas

36.3.4 Proof of 40.3.3

Let A = [A_{i}|i ∈ I] be the given super–schema.

(1) This is a repetition of Thalg 12.1.12(1) .

(2) We proof the equivalence of (a)–(e) by showing that

(a) ⇒ (b) ⇒ (c) ⇒ (d) ⇒ (a) and (a) ⇔ (e)

The single steps are as follows:

(a) ⇒ (b) According to definition 40.3.1(b)

A is locally proper ⇔ ∅ ∉ A_{i} for all i ∈ I

According to definition Thalg 12.1.2 of ⊗A

Y ∈ ⊗A ⇔ Y = [Y_{i}|i ∈ I] with Y_{i} ∈ Ai for each i ∈ I

So if A is locally proper, then Y_{i} ≠ ∅ for all i ∈ I, i.e. Y is a proper schema.

(b) ⇒ (c) Suppose, each Y = [Y_{i}|i ∈ I] is proper and Z ∈ ⊛A. According to definition Thalg 12.1.2 of ⊛A, that means that Z = [Z_{j}|j ∈ J] with J ⊆ I and Z_{j} ∈ A_{j} for all j ∈ J. But that means, that Z = pr (Y, J) for some Y ∈ ⊗A. But since Y_{j} ≠ ∅ for all j ∈ J, Z_{j} ≠ ∅ too, i.e. Z is proper as well.

(c) ⇒ (d) ⊕A ⊆ ⊛A, due to Thalg 12.1.4(1) . So if all members of ⊛A are proper schemas, then so are the members of ⊕A.

(d) ⇒ (a) Recall definition Thalg 12.1.2 , that

⊕A = {[ i ↦ A] | i ∈ I, A ∈ A_{i}}

is the singular record class. If each of these singular schemas Y = [ i ↦ A] is proper, i.e. A ≠ ∅, then ∅ ∉ A_{i}, for all i ∈ I, i.e. A is locally proper.

(a) ⇔ (e) (A is locally proper) iff (∅ ∉ A_{i} for all i ∈ I) iff

(∅ ∉ ⋃{A_{i} | i ∈ I}) iff ∅ ∉ ⋃ A.

(3) A is regular by definition 40.3.1 iff it is both proper and locally proper. The statments (b),(c),(d) are the simple combination of (1) with the corresponding statements in (2).

36.4 Power of schemas

36.4.1 Definition

For every schema X = [X_{i}|i ∈ I] we define

pow (X) := [P (X_{i}) |i ∈ I] the power of X 36.4.2 Lemma

Let X = [X_{i}|i ∈ I] be a schema, then

(1) pow (X) is proper (even if X is not)

(2) pow (X) is not locally proper, except in the trivial case X = ⟨⟩

Accordingly,

(3) pow (X) is never regular, except for X = ⟨⟩.

36.4.3 Proof of 40.4.2

The statements are immediate consequences of the according definitions.

36.4.4 Example

(1) If X := [ \begin{matrix}a ↦ & \{1, 2\} \\ b ↦ & \{2, 3\} \end{matrix} ] then

pow (X) = [ \begin{matrix}a ↦ & \{∅, \{1\} , \{2\} , \{1, 2\}\} \\ b ↦ & \{∅, \{2\} , \{3\} , \{2, 3\}\} \end{matrix} ]

(2) If X := ⟨∅, {1, 2}⟩ then

pow (X) = ⟨{∅} , {∅, {1} , {2} , {1, 2}}⟩

36.4.5 Lemma

⊗pow (X) = Incl (X), for every schema X.

36.4.6 Proof of 40.4.5

*** CONTINUE HERE ***

36.5 Block schemas

36.5.1 Definition A super–schema A is called ( ; 𝅝 ; ) a block schema, if ⋃ A is block class, ( ; 𝅝 ; ) a block schema partition of a schema X, if A is a block

schema and X = ⋓A. On the other hand, if X is a schema, then ( ; 𝅝 ; ) BXP (X) denotes the class of all the block schema parti-

tions of X. ( ; 𝅝 ; ) RBXP (X) is the class of all regular block schema parti-

tions of X

*** delete the following version of the definition ***

36.5.2 Definition

A super–schema A is a block schema, if ⋃ A is block class.

A block schema partition of a given schema X = [X_{i}|i ∈ I] is a block schema A = [A_{i}|i ∈ I], such that X_{i} = ⋃ A_{i} for all i ∈ I.

If X is a schema,

( ; 𝅝 ; ) BXP (X) denotes the class of all the block schema parti-

tions of X. ( ; 𝅝 ; ) RBXP (X) is the class of all regular block schema parti-

tions of X

36.5.3 Lemma

*** update this ***

If X = [X_{i}|i ∈ I] is a schema, then

(1) BXP (X)

= \{ [A_{i}|i ∈ I] \begin{matrix}⋃ A ∈ BCP(⋃ X), \\ ∀i ∈ I . A_{i} ∈ BCP (X_{i}) \end{matrix} \}

(2) RBXP (X)

= { [A_{i}|i ∈ I] ⋃ A ∈ PBCP(⋃ X), ∀i ∈ I . A_{i} ≠ ∅ and A_{i} ∈ PBCP (X_{i}) }

36.5.4 Proof of 40.5.3

*** CONTINUE HERE ***

36.5.5 Lemma Let X be a schema.

(1) Equivalent are: ( ; 𝅗𝅥 ; ) X is proper

( ; 𝅗𝅥 ; ) PBXP (X) ≠ ∅

(2) Equivalent are:

( ; 𝅗𝅥 ; ) X = ⟨⟩

( ; 𝅗𝅥 ; ) BXP (X) = {⟨⟩}

( ; 𝅗𝅥 ; ) PBXP (X) = {⟨⟩}

*** IMPROVE THE FOLLOWING EXAM-PLE ***

36.5.6 Example

Given the schema

X = [ \begin{matrix}a ↦ & \{1, 2, 3, 4\} \\ b ↦ & \{3, 4, 5, 6\} \end{matrix} ]

There are 8 regular block schema partitions of X, namely

\begin{matrix}[ \begin{matrix}a ↦ & \{\{1, 2\} , \{3, 4\}\} \\ b ↦ & \{\{3, 4\} , \{5, 6\}\} \end{matrix} ] & [ \begin{matrix}a ↦ & \{\{1\} , \{2\} , \{3, 4\}\} \\ b ↦ & \{\{3, 4\} , \{5, 6\}\} \end{matrix} ] \\ [ \begin{matrix}a ↦ & \{\{1, 2\} , \{3, 4\}\} \\ b ↦ & \{\{3, 4\} , \{5\} , \{6\}\} \end{matrix} ] & [ \begin{matrix}a ↦ & \{\{1, 2\} , \{3\} , \{4\}\} \\ b ↦ & \{\{3\} , \{4\} , \{5, 6\}\} \end{matrix} ] \\ [ \begin{matrix}a ↦ & \{\{1\} , \{2\} , \{3, 4\}\} \\ b ↦ & \{\{3, 4\} , \{5\} , \{6\}\} \end{matrix} ] & [ \begin{matrix}a ↦ & \{\{1, 2\} , \{3\} , \{4\}\} \\ b ↦ & \{\{3\} , \{4\} , \{5, 6\}\} \end{matrix} ] \\ [ \begin{matrix}a ↦ & \{\{1\} , \{2\} , \{3\} , \{4\}\} \\ b ↦ & \{\{3\} , \{4\} , \{5, 6\}\} \end{matrix} ] & [ \begin{matrix}a ↦ & \{\{1\} , \{2\} , \{3\} , \{4\}\} \\ b ↦ & \{\{3\} , \{4\} , \{5\} , \{6\}\} \end{matrix} ] \end{matrix}

*** CONTINUE HERE ***

More intuitively, if we represent X by a Venn diagram

                            *** pics/simplevenn.eps ***

then the eight regular block schema partitions of X are

                            *** pics/eightparts.eps ***

For each of these eight regular block schemas, there are three more block schemas which are not locally and thus not regular. For example, for the first one

[ \begin{matrix}a ↦ & \{\{1, 2\} , \{3, 4\}\} \\ b ↦ & \{\{3, 4\} , \{5, 6\}\} \end{matrix} ]

these three variations are

\begin{matrix}[ & \begin{matrix}a ↦ & \{∅, \{1, 2\} , \{3, 4\}\} \\ b ↦ & \{\{3, 4\} , \{5, 6\}\} \end{matrix} & ] \\ [ & \begin{matrix}a ↦ & \{\{1, 2\} , \{3, 4\}\} \\ b ↦ & \{∅, \{3, 4\} , \{5, 6\}\} \end{matrix} & ] \\ [ & \begin{matrix}a ↦ & \{∅, \{1, 2\} , \{3, 4\}\} \\ b ↦ & \{∅, \{3, 4\} , \{5, 6\}\} \end{matrix} & ] \end{matrix}

So alltogether, BXP (X) is made of 4 · 8 = 32 block schema partitions of X. Note, that e.g. the super–schema

[ \begin{matrix}a ↦ & \{\{1\} , \{2, 3\} , \{4\}\} \\ b ↦ & \{\{3, 4\} , \{5, 6\}\} \end{matrix} ]

is not a block schema partition of X, because it is not block schema at all, since

\begin{matrix}\{\{1\} , \{2, 3\} , \{4\}\} ∪ \{\{3, 4\} , \{5, 6\}\} \\ = \{\{1\} , \{2, 3\} , \{4\} , \{3, 4\} , \{5, 6\}\} \end{matrix}

is not a block class.

36.5.7 Proof of 40.5.5 36.5.8 Lemma

Let A be a block schema partition of a schema X.

(1) If X is proper, then A is proper, too.

(2) ⊗A ⊆ ⊗pow (X) = Incl (X)

(3) {⊗Y | Y ∈ ⊗A} is a block class partition of ⊗X.

(4) If A is regular, then {⊗Y | Y ∈ ⊗A} is a proper block class partition of ⊗X.

36.5.9 Proof of 40.5.8

*** CONTINUE HERE ***

36.5.10 Example

To illustrate the previous statements in 40.5.8, let us take

X = [ \begin{matrix}a ↦ & \{1, 2, 3\} \\ b ↦ & \{2, 3, 4\} \end{matrix} ] and A = [ \begin{matrix}a ↦ & \{\{1\} , \{2, 3\}\} \\ b ↦ & \{\{2, 3\} , \{4\}\} \end{matrix} ]

where obviously A is a block schema partition of X.

X is proper, so A must be proper, too, according to 40.5.8(1); and it is indeed. In fact, A is even regular.

Now

⊗A = \{ \begin{matrix}[ \begin{matrix}a ↦ & \{1\} \\ b ↦ & \{2, 3\} \end{matrix} ] , [ \begin{matrix}a ↦ & \{1\} \\ b ↦ & \{4\} \end{matrix} ] , \\ [ \begin{matrix}a ↦ & \{2, 3\} \\ b ↦ & \{2, 3\} \end{matrix} ] , [ \begin{matrix}a ↦ & \{2, 3\} \\ b ↦ & \{4\} \end{matrix} ] \end{matrix} \}

and

\begin{matrix}\{⊗Y | Y ∈ ⊗A\} \\ = \{ \begin{matrix}\{[ \begin{matrix}a ↦ & 1 \\ b ↦ & 2 \end{matrix} ] , [ \begin{matrix}a ↦ & 1 \\ b ↦ & 3 \end{matrix} ]\} , \\ \{[ \begin{matrix}a ↦ & 1 \\ b ↦ & 4 \end{matrix} ]\} , \\ \{[ \begin{matrix}a ↦ & 2 \\ b ↦ & 2 \end{matrix} ] , [ \begin{matrix}a ↦ & 2 \\ b ↦ & 3 \end{matrix} ] , [ \begin{matrix}a ↦ & 3 \\ b ↦ & 2 \end{matrix} ] , [ \begin{matrix}a ↦ & 3 \\ b ↦ & 3 \end{matrix} ]\} , \\ \{[ \begin{matrix}a ↦ & 2 \\ b ↦ & 4 \end{matrix} ] , [ \begin{matrix}a ↦ & 3 \\ b ↦ & 4 \end{matrix} ]\} \end{matrix} \} \end{matrix}

and that is obviously a proper block class partition of

⊗X = \{ \begin{matrix}[ \begin{matrix}a ↦ & 1 \\ b ↦ & 2 \end{matrix} ] , [ \begin{matrix}a ↦ & 1 \\ b ↦ & 3 \end{matrix} ] , [ \begin{matrix}a ↦ & 1 \\ b ↦ & 4 \end{matrix} ] , \\ [ \begin{matrix}a ↦ & 2 \\ b ↦ & 2 \end{matrix} ] , [ \begin{matrix}a ↦ & 2 \\ b ↦ & 3 \end{matrix} ] , [ \begin{matrix}a ↦ & 3 \\ b ↦ & 2 \end{matrix} ] , \\ [ \begin{matrix}a ↦ & 3 \\ b ↦ & 3 \end{matrix} ] , [ \begin{matrix}a ↦ & 2 \\ b ↦ & 4 \end{matrix} ] , [ \begin{matrix}a ↦ & 3 \\ b ↦ & 4 \end{matrix} ] \end{matrix} \}

36.5.11 Definition

Let A = [A_{i}|i ∈ I] be a block schema partition of a given schema X = [X_{i}|i ∈ I]. We each ξ ∈ ⊛X we define

[ ξ]_{A} := [ [ ξ_{i} ]_{⋃ A} i ∈ dom (ξ) ]

the block record of ξ modulo A.

36.5.12 Example

Let A be a block schema partition of X, where

X = [ \begin{matrix}a ↦ & \{1, 2, 3, 9, 10\} \\ b ↦ & \{2, 3, 4, 5, 6, 10, 11\} \\ c ↦ & \{2, 6, 7, 8, 10, 12\} \end{matrix} ]

and

A = [ \begin{matrix}a ↦ & \{\{1, 9\} , \{3\} , \{2, 10\}\} \\ b ↦ & \{\{3\} , \{4, 5\} , \{6\} , \{2, 10\} , \{11\}\} \\ c ↦ & \{\{2, 10\} , \{6\} , \{7, 8, 12\}\} \end{matrix} ]

The Venn diagram of X is given by

*** pics/blockschema1.eps ***

and the Venn diagram of A is

*** pics/blockschema2.eps ***

Obviously, A is indeed a block schema partition of X.

The union of A is

\begin{aligned}⋃ A & = & A_{a} ∪ A_{b} ∪ A_{c} \\ & = & \{\{1, 9\} , \{2, 10\} , \{3\} , \{4, 5\} , \{6\} , \{7, 8, 12\} , \{11\}\} \end{aligned}

Recall definition 39.1.4, that for every x ∈ ⋃ X = {1, 2, …, 12}, the block of x in ⋃ A is

[ x]_{⋃ A} = (the B ∈ ⋃ A with x ∈ B)

For example

[ 8 ]_{⋃ A} = {7, 8, 12} and [ 6 ]_{⋃ A} = {6}

Now, for each record

ξ = [ \begin{matrix}i_{1} & ↦ & ξ_{1} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & ξ_{n} \end{matrix} ] ∈ ⊛ [ \begin{matrix}a ↦ & \{1, 2, 3, 9, 10\} \\ b ↦ & \{2, 3, 4, 5, 6, 10, 11\} \\ c ↦ & \{2, 6, 7, 8, 10, 12\} \end{matrix} ] = ⊛X

the block record of ξ modulo A is given by

[ ξ]_{A} = [ \begin{matrix}i_{1} & ↦ & [ ξ_{1} ]_{⋃ A} \\ ⋮ & & ⋮ \\ i_{n} & ↦ & [ ξ_{n} ]_{⋃ A} \end{matrix} ]

according to 40.5.11. For example

(a) If ξ = [ \begin{matrix}a ↦ & 3 \\ b ↦ & 5 \\ c ↦ & 2 \end{matrix} ] then [ ξ]_{A} = [ \begin{matrix}a ↦ & \{3\} \\ b ↦ & \{4, 5\} \\ c ↦ & \{2, 20\} \end{matrix} ]

(b) If ξ = [ \begin{matrix}a ↦ & 2 \\ b ↦ & 2 \end{matrix} ] then [ ξ]_{A} = [ \begin{matrix}a ↦ & \{2, 10\} \\ b ↦ & \{2, 10\} \end{matrix} ]

(c) If ξ = [ b ↦ 12 ] then [ ξ]_{A} = [ b ↦ {7, 8, 12}]

(d) If ξ = ⟨⟩ then [ ξ]_{A} = ⟨⟩

(e) If ξ = [ \begin{matrix}a ↦ & 4 \\ b ↦ & 9 \\ c ↦ & 9 \end{matrix} ] then [ ξ]_{A} is undefined, because ξ ∉ ⊛X

36.5.13 Lemma

Let A be a block schema partition of a given schema X. For each ξ ∈ ⊛X holds:

[ ξ]_{A} = [ [ ξ_{i} ]_{Ai} i ∈ dom (ξ) ]

36.5.14 Proof of 40.5.13

Let X = [X_{i}|i ∈ I] and A = [A_{i}|i ∈ I] and ξ = [ξ_{j}|j ∈ J]. For each i ∈ I, A_{i} is a block class partition of X_{i}. For each i ∈ J, ξ_{i} ∈ [ ξ_{i} ]_{⋃ A}, due to definition 39.1.4. Therefore, for each i ∈ J holds

ξ_{i} ∈ [ ξ_{i} ]_{⋃ A} ∈ A_{i} ⊆ ⋃ A

and thus

[ ξ_{i} ]_{⋃ A} = [ ξ_{i} ]_{Ai}

which alltogether means that

[ ξ]_{A} = [ [ ξ_{i} ]_{⋃ A} i ∈ J ] = [ [ ξ_{i} ]_{Ai} i ∈ J ]

36.5.15 Lemma

Let A = [A_{i}|i ∈ I] be a block schema partition of a given schema X = [X_{i}|i ∈ I]. For every ξ ∈ ⊗X and each J ⊆ I holds:

pr ([ ξ]_{A}, J) = [ pr (ξ, J) ]_{pr(A,J)}

36.5.16 Proof of 40.5.15

pr ([ ξ]_{A}, J)

= pr ([ [ ξ_{i} ]_{Ai} i ∈ I ] , J) due to 40.5.13 = [ [ ξ_{j} ]_{Aj} j ∈ J ] due to def. Thalg 10.2.1

= [ pr (ξ, J) ]_{pr(A,J)}

36.5.17 Lemma Let A be a block schema partition of a schema X.

(1) For every Y ∈ ⊗A and ξ ∈ ⊗X holds: (a) ξ ∈ ⊗Y iff [ ξ]_{A} = Y iff ⊗[ ξ]_{A} = ⊗Y

(b) ξ ∉ ⊗Y iff [ ξ]_{A} ≠ Y iff ⊗[ ξ]_{A} ∩ ⊗Y = ∅

(2) ⊗X = ⨄{⊗[ ξ]_{A} | ξ ∈ ⊗X}

36.5.18 Proof of 40.5.17

According to 40.5.2, A and X must have the same domain, say I, so let A = [A_{i}|i ∈ I] and X = [X_{i}|i ∈ I].

(1) Given Y ∈ ⊗A and ξ ∈ ⊗X, then dom (Y) = dom (ξ) = I, too, so let Y = [Y_{i}|i ∈ I] and ξ = [ξ_{i}|i ∈ I].

(a) ξ ∈ ⊗Y ⇔ ξ_{i} ∈ Y_{i} for each i ∈ I ⇔ Y_{i} = (the B ∈ A_{i} with ξ_{i} ∈ B) for each i ∈ I ⇔ Y_{i} = [ ξ]_{Ai} for each i ∈ I

due to def. 39.1.4

⇔ Y = [ ξ]_{A}

Now with ξ ∈ ⊗Y, Y must be proper according to Thalg 12.1.12(1) , and so must be its identical [ ξ]_{A}. Therefore

Y = [ ξ]_{A} ⇔ ⊗Y = ⊗[ ξ]_{A} due to Thalg 12.1.17

33

(b) For each i ∈ I, A_{i} is a block class and every two of its members, including [ ξ_{i} ]_{Ai} and Y_{i}, are either equal or disjunct. Therefore

ξ ∉ ⊗Y ⇔ ξ_{i} ∉ Y_{i} for some i ∈ I ⇔ [ ξ_{i} ]_{Ai} ∩ Y_{i} = ∅ for some i ∈ I ⇔ ⊗[ ξ]_{A} ∩ ⊗Y = ∅

(2) According to 40.5.8(3), {⊗Y | Y ∈ ⊗A} is a block class partition of ⊗X. In other words, and applying the result of (1) we obtain

⊗X = ⨄{⊗Y | Y ∈ ⊗A} = ⨄{[ ξ]_{A} | ξ ∈ ⊗X} 36.5.19 Lemma Let A be a block schema partition of a given schema X.

(1) [ ⟨⟩]_{A} = ⟨⟩

(2) For every ξ ∈ ⊛X holds (a) [ ξ]_{A} ∈ ⊛A

(b) [ ξ]_{A} ∈ ⊗A iff ξ ∈ ⊗X

(c) [ ξ]_{A} ∈ ⊕A iff ξ ∈ ⊕X

(d) ξ ∈ ⊗[ ξ]_{A}

(3) If A is locally proper then (a) ⊛A = {[ ξ]_{A} | ξ ∈ ⊛X}

(b) ⊗A = {[ ξ]_{A} | ξ ∈ ⊗X}

(c) ⊕A = {[ ξ]_{A} | ξ ∈ ⊕X}

(4) On the other hand (a) ⊗X = ⨄{⊗Y | Y ∈ ⊗A}

(b) ⊛X = ⋃{⊛Y | Y ∈ ⊗A} = ⋃{⊗Y | Y ∈ ⊛A}

(c) ⊕X = ⋃{⊕Y | Y ∈ ⊗A} = ⋃{⊗Y | Y ∈ ⊕A}

34 35

36.5.20 Proof of 40.5.19

Let X = [X_{i}|i ∈ I] and A = [A_{i}|i ∈ I].

(1) By simply applying definition 40.5.11 we obtain [ ⟨⟩]_{A} = ⟨⟩.

(2) Let ξ = [ξ_{j}|j ∈ J].

(a) [ ξ]_{A}

= [ [ ξ_{j} ]_{Aj} j ∈ J ] due to 40.5.13

∈ {[Y_{j}|j ∈ J] | Y_{j} ∈ A_{j} for each j ∈ J}

⊆ {[Y_{j}|j ∈ J] | J ⊆ I, Y_{j} ∈ A_{j} for each j ∈ J}

= ⊛A due to def. Thalg 12.1.2 of ⊛A

(b) [ ξ]_{A} ∈ ⊗A

⇔ [ ξ]_{A} ∈ ⊛A and dom ([ ξ]_{A}) = dom (A) = I

due to def. Thalg 12.1.2 of ⊛A and ⊗A

⇔ dom ([ ξ]_{A}) = I

because [ ξ ]A ∈ ⊛A anyway, due to (a)

⇔ ξ ∈ {υ ∈ ⊛X | dom (υ) = I}

because dom ([ ξ ]A) = dom (ξ), due to def. 40.5.11

⇔ ξ ∈ ⊗X

again due to def. Thalg 12.1.2 of ⊛X and ⊗X

(c) [ ξ]_{A} ∈ ⊕A

⇔ [ ξ]_{A} ∈ ⊛A and dom ([ ξ]_{A}) = {i} for some i ∈ I

due to def. Thalg 12.1.2 of ⊛A and ⊕A

⇔ dom ([ ξ]_{A}) = {i} for some i ∈ I

because [ ξ ]A ∈ ⊛A anyway, due to (a)

⇔ ξ ∈ {υ ∈ ⊛X | dom (υ) = {i} for some i ∈ I}

because dom ([ ξ ]A) = dom (ξ), due to def. 40.5.11

⇔ ξ ∈ ⊕X

again due to def. Thalg 12.1.2 of ⊛X and ⊕X

(d) For each i ∈ J we have ξ_{i} ∈ [ ξ_{i} ]_{Ai} according to definition

39.1.4. So

ξ = [ξ_{i}|i ∈ J] ∈ ⊗ [ [ ξ_{i} ]_{Ai} i ∈ J ] = [ ξ]_{A}

(3) Recall 40.3.3(2), that A is proper iff each Y ∈ ⊛A is proper. And according to Thalg 12.1.12 , this is the case iff ⊗Y ≠ ∅ for all

33*** This lemma 12.1.17 still needs to be inserted; it is saying that X = Y iff ⊗X = ⊗Y for all proper X, Y *** 34*** I discovered that (3) is only correct when A is locally proper. Check all subsequent sections if this constraint is maintained! *** 35*** Note, that I changed the order of (4)(a) and (4)(b). Check in subsequent proofs! ***

Y ∈ ⊛A.

(a) We already know from (2)(a) that

{[ ξ]_{A} | ξ ∈ ⊛X} ⊆ ⊛A

On the other hand, let Y = [Y_{j}|j ∈ J] ∈ ⊛A. ⊗Y is not empty, so is at least one ξ = [ξ_{j}|j ∈ J] ∈ ⊗Y. And for this ξ holds:

[ ξ]_{A} = [ [ ξ_{j} ]_{Aj} j ∈ J ]
= [ the B ∈ A_{j} with ξ_{j} ∈ B j ∈ J ]
= [Y_{j}|j ∈ J]
= Y

In other words,

⊛A ⊆ {[ ξ]_{A} | ξ ∈ ⊛X}

holds, too.

(b) ⊗A

= {Y ∈ ⊛A | dom (Y) = I}

due to def. Thalg 12.1.2 of ⊗A and ⊛A

= {[ ξ]_{A} | ξ ∈ ⊛A, dom ([ ξ]_{A}) = I}

due to (3)(a)

= {[ ξ]_{A} | ξ ∈ ⊛X, dom (ξ) = I}

because dom (ξ) = dom ([ ξ ]A)

= {[ ξ]_{A} | ξ ∈ ⊗X}

due to def. Thalg 12.1.2 of ⊗X and ⊛X

(c) ⊕A

= {Y ∈ ⊛A | dom (Y) = {i} for some i ∈ I}

due to def. Thalg 12.1.2 of ⊕A and ⊛A

= {[ ξ]_{A} | ξ ∈ ⊛A, dom ([ ξ]_{A}) = {i} for some i ∈ I}

due to (3)(a)

= {[ ξ]_{A} | ξ ∈ ⊛X, dom (ξ) = {i} for some i ∈ I}

because dom (ξ) = dom ([ ξ ]A)

= {[ ξ]_{A} | ξ ∈ ⊕X}

due to def. Thalg 12.1.2 of ⊕X and ⊛X

(4) A pretty trivial consequence of A = [A_{i}|i ∈ I] being a block schema partition of X = [X_{i}|i ∈ I] is the fact that

(i) pr (A, J) is a block schema partition of pr (X, J) for each J ∈ P (I).

(a) We derive ⊗X = ⨄{⊗[ ξ]_{A} | ξ ∈ ⊗X} due to 40.5.17(2) = ⨄{⊗Y | Y ∈ ⊗X} due to (3)(b)

(b) Due to (i) and (a) we have (ii) ⊗pr (X, J) = ⨄{⊗Y | Y ∈ ⊗pr (A, J)} for each J ∈ P (I), so that ⊛X = ⋃{⊗Z | Z ∈ Proj (X)}

due to Thalg 12.1.4(3)

= ⋃{⊗pr (X, J) | J ∈ P (I)}

due to def. Thalg 10.2.6 of Proj (X)

= ⋃{⋃{⊗Y | Y ∈ ⊗pr (A, J)} | J ∈ P (I)}

due to (ii)

= ⋃{⊗Y | Y ∈ ⊛A}

because ⊛A = ⋃{J ∈ P (I) | ⊗pr (A, J)}

And since {⊛Y | Y ∈ ⊛A} = {⊗Y | Y ∈ ⊛A} = {⊛Y | Y ∈ ⊗A}

as an immediate consequence of definition Thalg 12.1.2 , we also have

⋃{⊗Y | Y ∈ ⊛A} = ⋃{⊛Y | Y ∈ ⊗A}

(c) Finally

⋃{⊗Y | Y ∈ ⊕A}

= ⋃{⊗Y | Y ∈ {[ i ↦ C ] | i ∈ I, C ∈ A_{i}}}

def Thalg 12.1.2 of ⊕A

= ⋃{⊗[ i ↦ C ] | i ∈ I, C ∈ A_{i}}
= ⋃{{[ i ↦ x] | x ∈ C} | i ∈ I, C ∈ A_{i}}

def. Thalg 12.1.2 of ⊗[ i ↦ C ]

= {[ i ↦ x] | i ∈ I, x ∈ C ∈ A_{i}}
= {[ i ↦ x] | i ∈ I, x ∈ ⋃ A_{i}}
= {[ i ↦ x] | i ∈ I, x ∈ X}
= ⊕X

again, due to def. Thalg 12.1.2 of ⊕X

And since (again due to def. Thalg 12.1.2 )

{⊕Y | Y ∈ ⊗A} = {⊗Y | Y ∈ ⊕A}

we also have

⊕X = ⋃{⊕Y | Y ∈ ⊗A}

36.5.21 Definition

*** define the cover relation ***

36.5.22 Remark

*** CONTINUE HERE ***

                                                                                                                      *** pics/blocklattice.eps ***

36.5.23 Definition

Let X = [X_{i}|i ∈ I] be a schema. We define

elBXP (X) := [{{x} | x ∈ X_{i}}|i ∈ I]

the elementary block schema partition of X

natBXP (X) := [ {A ∈ A | A ⊆ X_{i}} i ∈ I ]

where A := pbcp ({X_{i} | i ∈ I})

the natural block schema partition of X

36.5.24 Example Consider the example schema

X := [ \begin{matrix}a ↦ & \{1, 2, 3, 11, 12\} \\ b ↦ & \{3, 4, 5, 6, 7, 11, 12\} \\ c ↦ & \{7, 8, 9, 10, 11, 12\} \end{matrix} ]

The Venn diagram of X is given by

                                *** pics/x1.eps ***

The elementary block schema partition of X is

elBXP (X) = [ \begin{matrix}a ↦ & \{\{1\} , \{2\} , \{3\} , \{11\} , \{12\}\} \\ b ↦ & \{\{3\} , \{4\} , \{5\} , \{6\} , \{7\} , \{11\} , \{12\}\} \\ c ↦ & \{\{7\} , \{8\} , \{9\} , \{10\} , \{11\} , \{12\}\} \end{matrix} ]

with the diagram

                                                                                                                        *** pics/elbxp1.eps ***

The naturals block schema partition of X is

natBXP (X) = [ \begin{matrix}a ↦ & \{\{1, 2\} , \{3\} , \{11, 12\}\} \\ b ↦ & \{\{3\} , \{4, 5, 6\} , \{7\} , \{11, 12\}\} \\ c ↦ & \{\{7\} , \{8, 9, 10\} , \{11, 12\}\} \end{matrix} ]

with the diagram

                                                                                                                        *** pics/natbxp1.eps ***

36.5.25 Example

*** in the lattice diagram, one is the top, the other is the bottom element; make that a lemma, too ***

37 Block relations

37.1 Block relations

37.1.1 Definition

If R = [A, Γ] is a relation, such that its schema A is a block schema, then R is a block relation.

A block relation [A, Γ] is called

(1) proper (as defined in Thalg 17.2.9 ), if A is proper

(2) locally proper, if A is locally proper

(3) regular, if A is regular

For every schema X we define

BR (X) := ⋃{Rel (A) | A ∈ BXP (X)}

the block relation class of X

RBR (X) := ⋃{Rel (A) | A ∈ RBXP (X)}

the regular block relation class of X

37.1.2 Example

Let us consider the block schema partition A of X of example 40.5.10 again, where

X = [ \begin{matrix}a ↦ & \{1, 2, 3\} \\ b ↦ & \{2, 3, 4\} \end{matrix} ] and A = [ \begin{matrix}a ↦ & \{\{1\} , \{2, 3\}\} \\ b ↦ & \{\{2, 3\} , \{4\}\} \end{matrix} ]

Every relation R ∈ Rel (A) is a block relation R ∈ BR (X). In fact, R ∈ RBR (X), i.e. R is regular, because A is regular.

For example, let

R = [ \begin{matrix}[ & \begin{matrix}a ↦ & \{\{1\} , \{2, 3\}\} \\ b ↦ & \{\{2, 3\} , \{4\}\} \end{matrix} & ] \\ \{[ \begin{matrix}a ↦ & \{1\} \\ b ↦ & \{2, 3\} \end{matrix} ] , [ \begin{matrix}a ↦ & \{1\} \\ b ↦ & \{4\} \end{matrix} ] , [ \begin{matrix}a ↦ & \{2, 3\} \\ b ↦ & \{4\} \end{matrix} ]\} \end{matrix} ]

or represented by its graph table diagram (see Thalg 17.5.4 ) that is

R = \begin{matrix}a : \{\{1\} , \{2, 3\}\} & b : \{\{2, 3\} , \{4\}\} \\ \{1\} & \{2, 3\} \\ \{1\} & \{4\} \\ \{2, 3\} & \{4\} \end{matrix}

37.2 Conflation

37.2.1 Definition

If R = [A, Γ] is a block relation with A = [A_{i}|i ∈ I] then

conf (R) := [ \begin{matrix}[⋃ A_{i}|i ∈ I] \\ ⨄\{⊗Y | Y ∈ Γ\} \end{matrix} ]

is the conflation of R

37.2.2 Remark

Note, that conf (R) in 41.2.1 is well–defined. If Y, Z ∈ Γ are different, then ⊗Y and ⊗Z are disjunct (40.5.19), and ⨄{⊗Y | Y ∈ Γ} is indeed a well–defined disjunct union.

37.2.3 Example

Consider example 41.1.2 again with

X = [ \begin{matrix}a ↦ & \{1, 2, 3\} \\ b ↦ & \{2, 3, 4\} \end{matrix} ] and A = [ \begin{matrix}a ↦ & \{\{1\} , \{2, 3\}\} \\ b ↦ & \{\{2, 3\} , \{4\}\} \end{matrix} ]

and

R = \begin{matrix}a : \{\{1\} , \{2, 3\}\} & b : \{\{2, 3\} , \{4\}\} \\ \{1\} & \{2, 3\} \\ \{1\} & \{4\} \\ \{2, 3\} & \{4\} \end{matrix}

Then

conf (R) =  \begin{matrix}a : \{1, 2, 3\} & b : \{2, 3, 4\} \\ 1 & 2 \\ 1 & 3 \\ 1 & 4 \\ 2 & 3 \\ 3 & 4 \end{matrix}  ∈ Rel (X)

37.2.4 Lemma

If X is a schema and R = [A, Γ] ∈ BR (X) then

conf (R) = [ \begin{matrix}X \\ ξ ↝ [ ξ]_{A} ∈ Γ \end{matrix} ]

37.2.5 Proof of 41.2.4

Let X = [X_{i}|i ∈ I]. Then R = [A, Γ] ∈ BR (X) means that A ∈ BXP (X), according to definition 41.1.1 of BR (X). So

conf (R)

= [ \begin{matrix}[⋃ A_{i}|i ∈ I] \\ ⨄\{⊗Y | Y ∈ Γ\} \end{matrix} ]

according to def. 41.2.1 of conf

= [ \begin{matrix}X \\ ⨄\{⊗Y | Y ∈ Γ\} \end{matrix} ]

due to def. 40.5.2 of BXP (X)

= [ \begin{matrix}X \\ ξ ↝ ∃Y ∈ Γ . ξ ∈ ⊗Y \end{matrix} ]

= [ \begin{matrix}X \\ ξ ↝ [ ξ]_{A} ∈ Γ \end{matrix} ]

because ξ ∈ ⊗Y iff [ ξ ]A = Y , for all ξ ∈ ⊗X and Y ∈ ⊗A, according to 40.5.19(2)(b)

37.2.6 Lemma

Let A be a locally proper block schema. Then

R ⊆ S iff conf (R) ⊆ conf (S)

for all R, S ∈ Rel (A).

37.2.7 Proof of 41.2.8

Recall, that

A is locally proper

⇔ each Y ∈ ⊗A is proper

due to 40.3.3(2)

⇔ Y ≠ ∅ for all Y ∈ A

according to Thalg 12.1.12(1)

and that

⊗Y ∩ ⊗Z = ∅ for all Y, Z ∈ ⊗A with Y ≠ Z

So now let R = [A, Γ] and S = [A, Σ]. Then

R ⊆ S

⇔ Γ ⊆ S due to def. Thalg 19.5.1 of ⊆

⇔ ⨄{⊗Y | Y ∈ Γ} ⊆ ⨄{⊗Y | Y ∈ Σ}

due to the just mentioned facts

⇔ conf (R) ⊆ conf (S) according to def. 41.2.1 of conf

37.2.8 Corollary

*** make sure, the homomorphism notation is well–defined ***

Let A be a block schema partition of a given schema X. Then

conf : ℜ𝔢𝔩 (A) ⟶ ℜ𝔢𝔩 (X) is an embedding

37.3 The quasi–boolean lattice on block relation classes

37.3.1 Definition

For every schema X we define

◯ 1 ≾ ◯ 2 := [ \begin{matrix}BR (X) ↭ BR (X) \\ ⟨R, S⟩ ↝ conf (R) ⊆ conf (S) \end{matrix} ]

the co(nflation)–subvalence relation on BR (X)

◯ 1 ⋍ ◯ 2 := [ \begin{matrix}BR (X) ↭ BR (X) \\ ⟨R, S⟩ ↝ conf (R) = conf (S) \end{matrix} ]

the co(nflation)–equivalence relation on BR (X)

37.3.2 Example

*** CONTINUE HERE ***

37.3.3 Lemma

⟨BR (X) , ≾⟩ is a quasi–boolean lattice, for every schema X.

37.3.4 Proof of 41.3.3

*** CONTINUE HERE ***

*** THIS TITLE ELEMENTARY IS NOT A LUCKY TERM, BECAUSE AN ELEMEN-TARY RELATION IS A RELATION WITH A SINGLETON GRAPH. ***

37.3.5 Definition

For every relation R = [X, Γ] with schema X = [X_{i}|i ∈ I] we define

elBR (R) := [ \begin{matrix}[\{\{x\} | x ∈ X_{i}\}|i ∈ I] \\ \{[\{ξ_{i}\} |i ∈ I] | ξ ∈ Γ\} \end{matrix} ]

the elementary block relation of R

37.3.6 Remark

*** CONTINUE HERE ***

x (elBR (R)) = elBXP (X)

37.3.7 Example

*** Update this ***

Let us take the relation R′ ∈ Rel (X) from 41.2.3 again, i.e.

R′ = \begin{matrix}a : \{1, 2, 3\} & b : \{2, 3, 4\} \\ 1 & 2 \\ 1 & 3 \\ 1 & 4 \\ 2 & 3 \\ 3 & 4 \end{matrix}

elBR (R′) = \begin{matrix}a : \{\{1\} , \{2\} , \{3\}\} & b : \{\{2\} , \{3\} , \{4\}\} \\ \{1\} & \{2\} \\ \{1\} & \{3\} \\ \{1\} & \{4\} \\ \{2\} & \{3\} \\ \{3\} & \{4\} \end{matrix}

37.3.8 Lemma conf (elBR (R)) = R, for every schema X and R ∈ Rel (X).

37.3.9 Proof of 41.3.8

*** CONTINUE HERE ***

37.3.10 Lemma For every schema X,

conf : BR (X) ⟶ Rel (X)

is a surjection.

37.4 The natural block relation

37.4.1 Repetition Recall Thalg xxx , that for every two records ξ = [ξ_{i}|i ∈ I] and υ = [υ_{j}|j ∈ J],

ξ√ υ := [ζ_{k}|k ∈ I ∪ J] where ζ_{k} := \begin{cases}υ_{k} & if k ∈ J \\ ξ_{k} & if k ∈ (I \ J) \end{cases}

is ξ updated by υ.

For example,

[ \begin{matrix}a ↦ & 1 \\ b ↦ & 3 \\ c ↦ & 5 \end{matrix} ] √ [ \begin{matrix}a ↦ & −2 \\ b ↦ & 3 \\ d ↦ & 1 \\ e ↦ & 1 \end{matrix} ] = [ \begin{matrix}a ↦ & −2 \\ b ↦ & 3 \\ c ↦ & 5 \\ d ↦ & 1 \\ e ↦ & 1 \end{matrix} ]

37.4.2 Definition Let R = [X, Γ] be a relation with schema X = [X_{i}|i ∈ I].

(1) For each i ∈ I and all x, y ∈ X_{i} we define

x ∼_{i}^{R} y “x and y are equivalent at i modulo R”

if for all ξ ∈ ⊗X holds:

ξ√ [ i ↦ x] ∈ R iff ξ√ [ i ↦ y] ∈ R

(2) For every i ∈ I and x ∈ X_{i} we define

[ x]_{i}^{R} := {y ∈ X_{i} | y ∼_{i}^{R} x}

the equivalence class of x at i modulo R

(3) For ever i ∈ I we define

(X_{i})_{i}^{R} := {[ x]_{i}^{R} | x ∈ X_{i}}

the quotient class of X_{i} at i modulo R

(4) For every ξ ∈ ⊗X we define

ξ/R := [[ ξ_{i} ]_{i}^{R}|i ∈ I]

the quotient record of ξ modulo R

(5) We define

X/R := [(X_{i})_{i}^{R}|i ∈ I]

the quotient schema of (X modulo) R

(6) We define

Γ/R := {ξ/R | ξ ∈ Γ}

the block graph of (Γ modulo) R

(7) Finally, we define

nBR (R) := [ \begin{matrix}X/R \\ Γ/R \end{matrix} ]

the natural block relation of R

37.4.3 Example Let us take the following relation

S = [ \begin{matrix}ℤ ↭ ℤ \\ ⟨a, b⟩ ↝ a · (b − 5) < 0 \end{matrix} ]

(1) S induces two equivalence realations ∼_{1}^{S} and ∼_{2}^{S}, both on ℤ.

More precisely, if x, y ∈ ℤ then

x ∼_{1}^{S} y ⇔ ∀⟨a, b⟩ ∈ ℤ × ℤ . (⟨x, b⟩ ∈ S ↔ ⟨y, b⟩ ∈ S)
⇔ ∀b ∈ ℤ . (x · (b − 5) < 0 ↔ y · (b − 5) < 0)
⇔ ∀b ∈ ℤ . ((x < 0 ∧ b < 5) ↔ (y < 0 ∧ b < 5))
⇔ (x < 0 ↔ y < 0)
⇔ ((x < 0 ∧ y < 0) ∨ (x ≥ 0 ∧ y ≥ 0))

and similarly

x ∼_{2}^{S} y ⇔ ∀⟨a, b⟩ ∈ ℤ × ℤ . (⟨a, x⟩ ∈ S ↔ ⟨a, y⟩ ∈ S)
⇔ ∀a ∈ ℤ . (a · (x − 5) < 0 ↔ a · (x − 5) < 0)
⇔ ∀b ∈ ℤ . ((a < 0 ∧ x < 5) ↔ (a < 0 ∧ x < 5))
⇔ (x < 5 ↔ y < 5)
⇔ ((x < 5 ∧ y < 5) ∨ (x ≥ 5 ∧ y ≥ 5))

(2) Examples of equivalence classes are

\begin{aligned}[ −2 ]_{1}^{S} & = & \{y ∈ ℤ | y < 0\} \\ [ −2 ]_{2}^{S} & = & \{y ∈ ℤ | y < 5\} \\ [ 0 ]_{1}^{S} & = & \{y ∈ ℤ | y ≥ 0\} \\ [ 0 ]_{2}^{S} & = & \{y ∈ ℤ | y < 5\} \\ [ 2 ]_{1}^{S} & = & \{y ∈ ℤ | y ≥ 0\} \\ [ 2 ]_{2}^{S} & = & \{y ∈ ℤ | y < 5\} \\ [ 7 ]_{1}^{S} & = & \{y ∈ ℤ | y ≥ 0\} \\ [ 7 ]_{2}^{S} & = & \{y ∈ ℤ | y ≥ 5\} \end{aligned}

(3) If we put

\begin{matrix}ℤ^{−}:= \{y ∈ ℤ | y < 0\}  ℕ := \{0, 1, 2, 3, …\} \\ ℤ^{<5} := \{y ∈ ℤ | y < 5\}  ℤ^{≥5} := \{y ∈ ℤ | y ≥ 5\} \end{matrix}

then the two quotient classes induced by S are

\begin{aligned}(ℤ)_{1}^{S} & = & \{ℤ^{−}, ℕ\} \\ (ℤ)_{2}^{S} & = & \{ℤ^{<5}, ℤ^{≥5}\} \end{aligned}

(4) Examples of quotient records are: *** CONTINUE

HERE ***

(5) The quotient schema (of ⟨ℤ, ℤ⟩ modulo) S is

⟨ℤ, ℤ⟩ = ⟨{ℤ^{−}, ℕ} , {ℤ^{<5}, ℤ^{≥5}}⟩

and that is a totally proper block schema

(6) The graph of S is

Γ := {⟨a, b⟩ | a, b ∈ ℤ, a · (b − 5) < 0}

The block graph of (Γ modulo) S is

Γ/S = ∗ ∗ ∗CONTINUEHERE ∗ ∗∗

(7) Finally, the natural block relation of S is

nBR (S) = ∗ ∗ ∗CONTINUEHERE ∗ ∗∗

PredLogInTheoAlgRel 226

37.4.4 Lemma For every relation R = [X, Γ] with schema X = [X_{i}|i ∈ I] holds: ( ; 𝅝 ; ) ∼_{i}^{R} is an equivalence relation, for each i ∈ I ( ; 𝅝 ; ) (X_{i})_{i}^{R} is a propoper partition of X_{i}, for each i ∈ I ( ; 𝅝 ; ) X/R is a proper block schema *** locally/totally

proper? *** ( ; 𝅝 ; ) *** CONTINUE HERE ***

( ; 𝅝 ; ) conf (nBR (R)) = R

37.4.5 Proof of 41.4.4

*** CONTINUE HERE ***

PredLogInTheoAlgRel 227

38 Diamonds and boxes of relations

38.1 Diamonds and boxes

38.1.1 Definition For every relation R = [X, Γ] we define

♢R := [ \begin{matrix}pow & (X) \\ Y ↝ ⊗Y ∩ Γ ≠ ∅ \end{matrix} ] the diamond of R □R := [ \begin{matrix}pow & (X) \\ Y ↝ ⊗Y ⊆ Γ \end{matrix} ] the box of R

38.1.2 Example A simple example relation is given by the schema

X = [ \begin{matrix}man ↦ & \{aron, bert\} \\ woman ↦ & \{claire, doris\} \end{matrix} ]

and the boolean table diagram

Married = man   woman aron  claire 1 bert  claire 0 aron  doris 0 bert  doris 1

We obtain

pow (X) = [ \begin{matrix}man ↦ & \{∅, \{aron\} , \{aron\} , \{aron, bert\}\} \\ woman ↦ & \{∅, \{claire\} , \{doris\} , \{claire, doris\}\} \end{matrix} ]

and

♢Married = man           woman ∅  ∅  0 {aron}  ∅  0 {bert}  ∅  0 {aron, bert}  ∅  0 ∅  {claire}  0 {aron}  {claire}  1 {bert}  {claire}  0 {aron, bert}  {claire}  1 ∅  {doris}  0 {aron}  {doris}  0 {bert}  {doris}  1 {aron, bert}  {doris}  1 ∅  {claire, doris} 0 {aron}  {claire, doris} 1 {bert}  {claire, doris} 1 {aron, bert} {claire, doris} 1

             □Married = man           woman ∅  ∅  1 {aron}  ∅  1 {bert}  ∅  1 {aron, bert}  ∅  1 ∅  {claire}  1 {aron}  {claire}  1 {bert}  {claire}  0 {aron, bert}  {claire}  0 ∅  {doris}  1 {aron}  {doris}  0 {bert}  {doris}  1 {aron, bert}  {doris}  0 ∅  {claire, doris} 1 {aron}  {claire, doris} 0 {bert}  {claire, doris} 0 {aron, bert} {claire, doris} 0

38.1.3 Example Consider the linear order relation on integers

S := [ \begin{matrix}ℤ ↭ ℤ \\ ⟨a, b⟩ ↝ a ≤ b \end{matrix} ]

Then

\begin{aligned}♢S & = & [ \begin{matrix}P (ℤ) ↭ P (ℤ) \\ ⟨A, B⟩ ↝ ∃a ∈ A . ∃b ∈ B . a ≤ b \end{matrix} ] \\ □S & = & [ \begin{matrix}P (ℤ) ↭ P (ℤ) \\ ⟨A, B⟩ ↝ ∀a ∈ A . ∀b ∈ B . a ≤ b \end{matrix} ] \end{aligned}

so that e.g.

⟨{1, 4} , {2, 3}⟩ ∈ ♢S and ⟨{1, 4} , {2, 3}⟩ ∉ □S

38.1.4 Repetition Recall definition Thalg 9.3.3(1) , that a schema X = [X_{i}|i ∈ I] is proper, if X_{i} ≠ ∅ for all i ∈ I. For instance ( ; 𝅝 ; ) [ \begin{matrix}man ↦ & \{aron\} \\ woman ↦ & \{claire, doris\} \end{matrix} ] is proper, but ( ; 𝅝 ; ) [ \begin{matrix}man ↦ & ∅ \\ woman ↦ & \{claire\} \end{matrix} ] is not.

38.1.5 Lemma

If R = [X, Γ] is a relation andY ∈ Incl (X) then exactly one of (a),(b),(c),(d) is the case:

(a) Y ∈ ♢R and Y ∈ □R

⇔ ∅ ≠ ⊗Y ⊆ Γ

(b) Y ∉ ♢R and Y ∈ □R

⇔ ⊗Y = ∅
⇔ Y is not proper

(c) Y ∈ ♢R and Y ∉ □R

⇔ ⊗Y ∩ Γ ≠ ∅ and ⊗ Y ∩ (⊗X \ Γ) ≠ ∅

(d) Y ∉ ♢R and Y ∉ □R

⇔ ⊗Y ∩ Γ = ∅ and ⊗ Y ∩ (⊗X \ Γ) ≠ ∅

38.1.6 Proof of 42.1.5

The equivalences are immediate consequences of definition 42.1.1 of ♢R and □R. (b) repeats the general fact Thalg 12.1.12(1)

⊗Y = ∅ iff Y is not a proper schema

38.1.7 Lemma For every relation R holds:

(1) R ≡ ⊤ iff □R ≡ ⊤

(2) R ≢ ⊥ iff ♢R ≢ ⊥

38.1.8 Proof of 42.1.7

*** add justifications of the derivation steps

*** Let R = [X, Γ].

(1) We derive

R ≡ ⊤ ⇔ R = ⊤_{X} ⇔ ∀ξ ∈ ⊗X . ξ ∈ Γ ⇔ ∀Y ∈ Incl (X) . ⊗Y ⊆ Γ ⇔ □R = ⊤_{pow(X)} ⇔ □R ≡ ⊤

(2) We derive

R ≢ ⊥ ⇔ R ≠ ⊥_{X} ⇔ Γ ≠ ∅ ⇔ ∃ξ ∈ ⊗X . ξ ∈ Γ ⇔ ∃Y ∈ Incl (X) . ⊗Y ∩ Γ ≠ ∅ ⇔ ♢R ≠ ⊥_{pow(X)} ⇔ ♢R ≢ ⊥

38.1.9 Lemma

Let X be a schema. For all R, S ∈ Rel (X) holds:

(1) R ⊆ S iff ♢R ⊆ ♢S

(2) R ⊆ S iff □R ⊆ □S 38.1.10 Proof of 42.1.9

*** add justifications of the derivation steps ***

Let R = [X, Γ] and S = [X, Σ].

(1) We derive

R ⊆ S

⇔ Γ ⊆ Σ due to def. ???? of ⊆

⇔ ∀ξ ∈ ⊗X . (ξ ∈ Γ → ξ ∈ Σ)

⇔ ∀Y ∈ Incl (X) . (⊗Y ∩ Γ ≠ ∅ → ⊗Y ∩ Σ ≠ ∅)

⇔ ∀Y ∈ Incl (X) . (Y ∈ ♢R → Y ∈ ♢S)

⇔ ♢R ⊆ ♢S

(2) We derive

R ⊆ S

⇔ Γ ⊆ Σ due to def. ???? of ⊆

⇔ ∀Y ∈ Incl (X) . (⊗Y ⊆ Γ → ⊗Y ⊆ Σ) ⇔ ∀Y ∈ Incl (X) . (Y ∈ □R → Y ∈ □S) ⇔ □R ⊆ □S

38.1.11 Lemma

For every relation R = [X, Γ] holds:

(1) ¬♢R = □¬R

(2) ¬□R = ♢¬R

38.1.12 Proof of 42.1.11

*** add justifications of the derivation steps ***

For every Y ∈ Incl (X) holds:

⊗Y ∩ Γ = ∅ iff ⊗Y ⊆ (⊗X \ Γ)

A proof of (1) is therefore given by

¬♢R

= ¬[ \begin{matrix}pow & (X) \\ Y ↝ ⊗Y ∩ Γ ≠ ∅ \end{matrix} ]

= [ \begin{matrix}pow & (X) \\ Y ↝ ⊗Y ∩ Γ = ∅ \end{matrix} ]

= [ \begin{matrix}pow & (X) \\ Y ↝ ⊗Y ⊆ (⊗X \ Γ) \end{matrix} ]

= □[ \begin{matrix}X \\ ⊗X \ Γ \end{matrix} ]

= □¬R

(2) is proved similarly.

38.1.13 Lemma Let X be a schema. For each R = {R_{k} | k ∈ K} ⊆ Rel (X) holds:

(1) ♢ ⋃ R = ⋃{♢R_{k} | k ∈ K}

(2) □ ⋂ R = ⋂{□R_{k} | k ∈ K}

(3) ♢ ⋂ R ⊆ ⋂{♢R_{k} | k ∈ K}

(4) □ ⋃ R ⊇ ⋃{□R_{k} | k ∈ K}

38.1.14 Proof of 42.1.13

*** add justifications of the derivation steps ***

Let R_{k} = [X, Γ_{k}] for each k ∈ K. Then R = {R_{k} | k ∈ K},

⋂ R = [ \begin{matrix}X \\ ⋂_{k∈K}Γ_{k} \end{matrix} ] and ⋃ R = [ \begin{matrix}X \\ ⋃_{k∈K}Γ_{k} \end{matrix} ]

(1) For every Y ∈ Incl (X) holds: Y ∈ ♢ ⋃ R

⇔ ⊗Y ∩ ⋃_{k∈K}Γ_{k} ≠ ∅

⇔ ∃k ∈ K . ⊗ Y ∩ Γ_{k} ≠ ∅ ⇔ ∃k ∈ K . Y ∈ ♢R_{k}

⇔ Y ∈ ⋃_{k∈K}♢R_{k}

Therefore

♢ ⋃ R = ⋃{♢R_{k} | k ∈ K}

(2) For every Y ∈ Incl (X) holds: Y ∈ □ ⋂ R

⇔ ⊗Y ⊆ ⋂_{k∈K}Γk due to def. 42.1.1 of □

⇔ ∀k ∈ K . ⊗ Y ⊆ Γ_{k}

⇔ ∀k ∈ K . Y ∈ □Rk again, due to def. 42.1.1 ⇔ Y ∈ ⋂_{k∈K}□Rk due to def. Thalg 19.5.3 of ⋂

Therefore

□ ⋂ R = ⋂{□R_{k} | k ∈ K}

(3) For every Y ∈ Incl (X) holds: Y ∈ ♢ ⋂ R

⇔ ⊗Y ∩ ⋂_{k∈K}Γ_{k} ≠ ∅

⇔ ∃ξ ∈ ⊗Y . ξ ∈ ⋂_{k∈K}Γ_{k}

⇒ ∃ξ ∈ ⊗Y . ∀k ∈ K . ξ ∈ Γ_{k} ⇒ ∀k ∈ K . ∃ξ ∈ ⊗Y . ξ ∈ Γ_{k} ⇔ ∀k ∈ K . ⊗ Y ∩ Γ_{k} ≠ ∅ ⇔ ∀k ∈ K . Y ∈ ♢R_{k}

⇔ Y ∈ ⋂_{k∈K}♢R_{k}

Therefore

♢ ⋂ R ⊆ ⋂{♢R_{k} | k ∈ K}

(4) For every Y ∈ Incl (X) holds:

Y ∈ ⋃_{k∈K}□R_{k}

⇔ ∃k ∈ K . Y ∈ □R_{k} ⇔ ∃k ∈ K . ⊗Y ⊆ Γ_{k}

⇒ ⊗Y ⊆ ⋃_{k∈K}Γ_{k}

⇔ Y ∈ □ ⋃_{k∈K}R_{k}

Therfore

⋃{□R_{k} | k ∈ K} ⊆ □ ⋃ R

38.2 Diamond and box block relations

38.2.1 Definition

Let X = [X_{i}|i ∈ I] be a schema and R ∈ Rel (X). For every block schema partition A = [A_{i}|i ∈ I] of X we define

♢R|A := [ \begin{matrix}A \\ Y ↝ (♢R)(Y) \end{matrix} ]

the diamond block relation of R on A

□R|A := [ \begin{matrix}A \\ Y ↝ (□R)(Y) \end{matrix} ]

the box block relation R on A

*** remark about the notation ***

38.2.2 Remark

*** how e.g. ♢Married|A is constructed from ♢Married by simply deleting all the Y ∈ InclX, which don’t belong to ⊗A. *** *** CONTINUE HERE ***

Note, that if A = [A_{i}|i ∈ I] is a block schema partition of a given schema X = [X_{i}|i ∈ I] and R ∈ Rel (X), and if

♢R = [\begin{matrix}pow & (X) \\ Γ \end{matrix}] ♢R|A = [\begin{matrix}A \\ Σ \end{matrix}]

□R = [\begin{matrix}pow & (X) \\ Γ′ \end{matrix}] □R|A = [\begin{matrix}A \\ Σ′ \end{matrix}]

then

Σ ⊆ Γ and Σ′ ⊆ Γ′

But say “(♢R|A) ⊆ ♢R” does not hold, because “⊆” is only defined (in Thalg 19.5.1 ) for relations with equal schemas.

38.2.3 Example Let us consider example 42.1.2 again, where

                X = [ \begin{matrix}man ↦ & \{aron, bert\} \\ woman ↦ & \{claire, doris\} \end{matrix} ]

and the boolean table diagram

                 Married = man   woman aron  claire 1 bert  claire 0 aron  doris 0 bert  doris 1

(i) A regular block schema partition of X is given by

       A := [ \begin{matrix}man ↦ & \{\{aron\} , \{bert\}\} \\ woman ↦ & \{\{claire, doris\}\} \end{matrix} ] ∈ RBXP (X)

and we obtain

                                                                                ♢Married|A =

                                                                                                   man        woman
                                                                                                  {aron}

                                                                                                          {claire, doris} 1
                                                                                                  {bert}

                                                                                                          {claire, doris} 1

                                                                                □Married|A =

                                                                                                   man        woman
                                                                                                  {aron}

                                                                                                          {claire, doris} 0
                                                                                                  {bert}

                                                                                                          {claire, doris} 0

(ii) A block schema partition of X, which is not locally proper and thus not regular, is given by

A′ := [ \begin{matrix}man ↦ & \{\{aron\} , \{bert\}\} \\ woman ↦ & \{∅, \{claire, doris\}\} \end{matrix} ] ∈ BXP (X)

In this case

                                                                                ♢Married|A′ =

                                                                                                    man        woman
                                                                                                  {aron}  ∅  0
                                                                                                  {bert}  ∅  0
                                                                                                  {aron}

                                                                                                          {claire, doris} 1
                                                                                                  {bert}

                                                                                                          {claire, doris} 1

                                                                                □Married|A′ =

                                                                                                    man        woman
                                                                                                  {aron}  ∅  1
                                                                                                  {bert}  ∅  1
                                                                                                  {aron}

                                                                                                          {claire, doris} 0
                                                                                                  {bert}

                                                                                                          {claire, doris} 0

38.2.4 Example

Z := {N, Z, E, O} is a block partition class of the integers ℤ where

( ; 𝅝 ; ) N := {…, −3, −2, −1} (“negatives”)

( ; 𝅝 ; ) Z := {0} (“zero”)

( ; 𝅝 ; ) E := {2, 4, 6, 8, …} (“even”)

( ; 𝅝 ; ) O := {1, 3, 5, 7, …} (“odd”)

Let R be the usual linear order on ℤ, i.e.

R := [\begin{matrix}ℤ ↭ ℤ \\ ⟨a, b⟩ ↝ a ≤ b \end{matrix}]

The schema of R is X := ⟨ℤ, ℤ⟩ and a proper block schema partition of X is given by A := ⟨Z, Z⟩. We obtain

♢R|A = \begin{matrix}1 : Z & 2 : Z \\ N & N & 1 \\ Z & N & 0 \\ E & N & 0 \\ O & N & 0 \\ N & Z & 1 \\ Z & Z & 1 \\ E & Z & 0 \\ O & Z & 0 \\ N & E & 1 \\ Z & E & 1 \\ E & E & 1 \\ O & E & 1 \\ N & O & 1 \\ Z & O & 1 \\ E & O & 1 \\ O & O & 1 \end{matrix} □R|A = \begin{matrix}1 : Z & 2 : Z \\ N & N & 0 \\ Z & N & 0 \\ E & N & 0 \\ O & N & 0 \\ N & Z & 1 \\ Z & Z & 1 \\ E & Z & 0 \\ O & Z & 0 \\ N & E & 1 \\ Z & E & 1 \\ E & E & 0 \\ O & E & 0 \\ N & O & 1 \\ Z & O & 1 \\ E & O & 0 \\ O & O & 0 \end{matrix}

Let us consider the schema X = ⟨ℤ, ℤ⟩ and its block schema partition A = ⟨Z, Z⟩ from the previous example 42.2.4 again. Recall definition Thalg 19.2.1 of the identity relation Id_{X}, in this case this is the usual identity relation on integers

Id_{⟨ℤ,ℤ⟩} = [\begin{matrix}ℤ ↭ ℤ \\ ⟨a, b⟩ ↝ a = b \end{matrix}]

Then

♢Id_{X}|A = \begin{matrix}1 : Z & 2 : Z \\ N & N & 1 \\ Z & N & 0 \\ E & N & 0 \\ O & N & 0 \\ N & Z & 1 \\ Z & Z & 1 \\ E & Z & 0 \\ O & Z & 0 \\ N & E & 0 \\ Z & E & 0 \\ E & E & 1 \\ O & E & 0 \\ N & O & 0 \\ Z & O & 0 \\ E & O & 0 \\ O & O & 1 \end{matrix} □Id_{X}|A = \begin{matrix}1 : Z & 2 : Z \\ N & N & 0 \\ Z & N & 0 \\ E & N & 0 \\ O & N & 0 \\ N & Z & 0 \\ Z & Z & 1 \\ E & Z & 0 \\ O & Z & 0 \\ N & E & 0 \\ Z & E & 0 \\ E & E & 0 \\ O & E & 0 \\ N & O & 0 \\ Z & O & 0 \\ E & O & 0 \\ O & O & 0 \end{matrix}

38.2.6 boolean table representations of block relations

There is an intuitive method to explain the construction of block relations by performing all operations on the boolean table diagrams ( Thalg 17.5.4 ). Let us explain this by means of a given example relation.

A completely finite schema is given by

X = [ \begin{matrix}i ↦ & \{a, b, c\} \\ j ↦ & \{a, b, c\} \\ k ↦ & \{a, b, c\} \end{matrix} ]

Each relation R ∈ Rel (X) can then be written as

R = \begin{matrix}i & j & k \\ a & a & a & β1 \\ b & a & a & β2 \\ c & a & a & β3 \\ a & b & a & β4 \\ b & b & a & β5 \\ c & b & a & β6 \\ a & c & a & β7 \\ b & c & a & β8 \\ c & c & a & β9 \\ a & a & b & β10 \\ b & a & b & β11 \\ c & a & b & β12 \\ a & b & b & β13 \\ b & b & b & β14 \\ c & b & b & β15 \\ a & c & b & β16 \\ b & c & b & β17 \\ c & c & b & β18 \\ a & a & c & β19 \\ b & a & c & β20 \\ c & a & c & β21 \\ a & b & c & β22 \\ b & b & c & β23 \\ c & b & c & β24 \\ a & c & c & β25 \\ b & c & c & β26 \\ c & c & c & β27 \end{matrix} with β_{1}, …, β_{27} ∈ 𝔹

A proper block schema partition of X is given by

A = [ \begin{matrix}i ↦ & \{\{a\} , \{b, c\}\} \\ j ↦ & \{\{a\} , \{b, c\}\} \\ k ↦ & \{\{a\} , \{b, c\}\} \end{matrix} ]

We obtain

♢R|A = \begin{matrix}i & j & k \\ \{a\} & \{a\} & \{a\} & β_{1} \\ \{b, c\} & \{a\} & \{a\} & β_{2} ∨ β_{3} \\ \{a\} & \{b, c\} & \{a\} & β_{4} ∨ β_{7} \\ \{b, c\} & \{b, c\} & \{a\} & β_{5} ∨ β_{6} ∨ β_{8} ∨ β_{9} \\ \{a\} & \{a\} & \{b, c\} & β_{10} ∨ β_{19} \\ \{b, c\} & \{a\} & \{b, c\} & β_{11} ∨ β_{12} ∨ β_{20} ∨ β_{21} \\ \{a\} & \{b, c\} & \{b, c\} & β_{13} ∨ β_{16} ∨ β_{22} ∨ β_{25} \\ \{b, c\} & \{b, c\} & \{b, c\} & \begin{matrix}β_{14} ∨ β_{15} ∨ β_{17} ∨ β_{18}∨ \\ β_{23} ∨ β_{24} ∨ β_{26} ∨ β_{27} \end{matrix} \end{matrix}

□R|A = \begin{matrix}i & j & k \\ \{a\} & \{a\} & \{a\} & β_{1} \\ \{b, c\} & \{a\} & \{a\} & β_{2} ∧ β_{3} \\ \{a\} & \{b, c\} & \{a\} & β_{4} ∧ β_{7} \\ \{b, c\} & \{b, c\} & \{a\} & β_{5} ∧ β_{6} ∧ β_{8} ∧ β_{9} \\ \{a\} & \{a\} & \{b, c\} & β_{10} ∧ β_{19} \\ \{b, c\} & \{a\} & \{b, c\} & β_{11} ∧ β_{12} ∧ β_{20} ∧ β_{21} \\ \{a\} & \{b, c\} & \{b, c\} & β_{13} ∧ β_{16} ∧ β_{22} ∧ β_{25} \\ \{b, c\} & \{b, c\} & \{b, c\} & \begin{matrix}β_{14} ∧ β_{15} ∧ β_{17} ∧ β_{18}∧ \\ β_{23} ∧ β_{24} ∧ β_{26} ∧ β_{27} \end{matrix} \end{matrix}

An improper block schema partition of X is given by

A′ = [ \begin{matrix}i ↦ & \{\{a\} , \{b, c\}\} \\ j ↦ & \{\{a\} , \{b, c\}\} \\ k ↦ & \{∅, \{a\} , \{b, c\}\} \end{matrix} ]

We obtain

♢R|A′ = \begin{matrix}i & j & k \\ \{a\} & \{a\} & ∅ & 0 \\ \{b, c\} & \{a\} & ∅ & 0 \\ \{a\} & \{b, c\} & ∅ & 0 \\ \{b, c\} & \{b, c\} & ∅ & 0 \\ \{a\} & \{a\} & \{a\} & β_{1} \\ \{b, c\} & \{a\} & \{a\} & β_{2} ∨ β_{3} \\ \{a\} & \{b, c\} & \{a\} & β_{4} ∨ β_{7} \\ \{b, c\} & \{b, c\} & \{a\} & β_{5} ∨ β_{6} ∨ β_{8} ∨ β_{9} \\ \{a\} & \{a\} & \{b, c\} & β_{10} ∨ β_{19} \\ \{b, c\} & \{a\} & \{b, c\} & β_{11} ∨ β_{12} ∨ β_{20} ∨ β_{21} \\ \{a\} & \{b, c\} & \{b, c\} & β_{13} ∨ β_{16} ∨ β_{22} ∨ β_{25} \\ \{b, c\} & \{b, c\} & \{b, c\} & \begin{matrix}β_{14} ∨ β_{15} ∨ β_{17} ∨ β_{18}∨ \\ β_{23} ∨ β_{24} ∨ β_{26} ∨ β_{27} \end{matrix} \end{matrix}

□R|A′ = \begin{matrix}i & j & k \\ \{a\} & \{a\} & ∅ & 1 \\ \{b, c\} & \{a\} & ∅ & 1 \\ \{a\} & \{b, c\} & ∅ & 1 \\ \{b, c\} & \{b, c\} & ∅ & 1 \\ \{a\} & \{a\} & \{a\} & β_{1} \\ \{b, c\} & \{a\} & \{a\} & β_{2} ∧ β_{3} \\ \{a\} & \{b, c\} & \{a\} & β_{4} ∧ β_{7} \\ \{b, c\} & \{b, c\} & \{a\} & β_{5} ∧ β_{6} ∧ β_{8} ∧ β_{9} \\ \{a\} & \{a\} & \{b, c\} & β_{10} ∧ β_{19} \\ \{b, c\} & \{a\} & \{b, c\} & β_{11} ∧ β_{12} ∧ β_{20} ∧ β_{21} \\ \{a\} & \{b, c\} & \{b, c\} & β_{13} ∧ β_{16} ∧ β_{22} ∧ β_{25} \\ \{b, c\} & \{b, c\} & \{b, c\} & \begin{matrix}β_{14} ∧ β_{15} ∧ β_{17} ∧ β_{18}∧ \\ β_{23} ∧ β_{24} ∧ β_{26} ∧ β_{27} \end{matrix} \end{matrix}

38.2.7 Lemma For every block relation R = [A, Γ] holds:

□R|A ⊆ ♢R|A iff A is locally proper

38.2.8 Proof of 42.2.7 Recall 40.3.3(2), that

A is locally proper iff every Y ∈ ⊗A is proper

and 42.1.5(b), that for all Y ∈ ⊗A holds

(Y ∈ □R and Y ∉ ♢R) iff Y is not proper

Alltogether, that means that

□R|A ⊆ ♢R|A iff ∀Y ∈ ⊗A . (Y ∈ □R|A implies Y ∈ ♢R|A)

due to definition Thalg 19.5.1 of ⊆

iff ∀Y ∈ ⊗A . (Y ∈ □R implies Y ∈ ♢R)

iff A is locally proper

38.2.9 Lemma Let X be a schema, A ∈ BXP (X) and R = [X, Γ] ∈ Rel (X). Then

(1) ♢R|A = [ \begin{matrix}& A \\ \{ & [ ξ]_{A} ξ ∈ Γ & \} \end{matrix} ]

(2) □R|A = [ \begin{matrix}A \\ Y ↝ ⊗Y ⊆ Γ \end{matrix} ]

38.2.10 Proof of 42.2.9

(1) We derive ♢R|A

= [ \begin{matrix}A \\ Y ↝ (♢R)(Y) \end{matrix} ]

= [ \begin{matrix}A \\ Y ↝ ⊗Y ∩ Γ ≠ ∅ \end{matrix} ]

due to def. 42.1.1 of ♢R

= [ \begin{matrix}& A \\ \{ & Y ∈ ⊗A ⊗Y ∩ Γ ≠ ∅ & \} \end{matrix} ]

change of notation ( Thalg 17.3.5 )

= [ \begin{matrix}& A \\ \{ & [ ξ]_{A} ξ ∈ ⊗X, [ ξ]_{A} ∩ Γ ≠ ∅ & \} \end{matrix} ]

due to 40.5.19(3)(b),

saying that ⊗A = {[ ξ ]A | ξ ∈ ⊗X}

= [ \begin{matrix}& A \\ \{ & [ ξ]_{A} ξ ∈ ⊗X, ∃υ ∈ Γ . υ ∈ [ ξ]_{A} & \} \end{matrix} ]

= [ \begin{matrix}& A \\ \{ & [ ξ]_{A} ξ ∈ Γ & \} \end{matrix} ]

because ξ ∈ [ ξ ]A

(2) We derive □R|A

= [ \begin{matrix}A \\ Y ↝ (□R)(Y) \end{matrix} ]

due to def. 42.2.1 of □R|A

= [ \begin{matrix}A \\ Y ↝ ⊗Y ⊆ Γ \end{matrix} ]

due to def. 42.1.1 of □R

38.2.11 Lemma

Let X be a schema, A ∈ BXP (X) and R ∈ Rel (X). Then conf (□R|A) ⊆ R ⊆ conf (♢R|A)

38.2.12 Proof of 42.2.11

Suppose

X = [X_{i}|i ∈ I]  R = [\begin{matrix}X \\ Γ \end{matrix}]  A = [A_{i}|i ∈ I]

For every ξ ∈ ⊗X holds ξ ∈ [ ξ]_{A}, so that

(i) [ ξ]_{A} ⊆ Γ implies ξ ∈ Γ (ii) ξ ∈ Γ implies [ ξ]_{A} ∩ Γ ≠ ∅

We first proof the left inclusion of lemma 42.2.11:

conf (□R|A) = [ \begin{matrix}X \\ ξ ↝ [ ξ]_{A} ∈ (□R|A) \end{matrix} ]

= [ \begin{matrix}X \\ ξ ↝ [ ξ]_{A} ∈ □R \end{matrix} ]

= [ \begin{matrix}X \\ ξ ↝ [ ξ]_{A} ⊆ Γ \end{matrix} ]

due to def. 42.2.1 of ♢R|A

due to lemma 41.2.4 due to definition 42.2.1 of □R|A

due to definition 42.1.1 of □R

⊆ [ \begin{matrix}X \\ ξ ↝ (ξ ∈ Γ) \end{matrix} ] due to (i)

= R

A proof for the right inclusion is the following:

R = [ \begin{matrix}X \\ ξ ↝ (ξ ∈ Γ) \end{matrix} ]

⊆ [ \begin{matrix}X \\ ξ ↝ [ ξ]_{A} ∩ Γ ≠ ∅ \end{matrix} ] due to (ii)

= [ \begin{matrix}X \\ ξ ↝ [ ξ]_{A} ∈ ♢R \end{matrix} ] due to definition 42.1.1 of ♢R

= [ \begin{matrix}X \\ ξ ↝ [ ξ]_{A} ∈ (♢R|A) \end{matrix} ]

due to definition 42.2.1 of ♢R|A

= conf (♢R|A) due to lemma 41.2.4

38.2.13 Lemma Let X be a schema and A ∈ BXP (X). For all R ∈ Rel (X) and S ∈ Rel (A) holds:

(1) conf (S) ⊆ R iff S ⊆ □R|A

(2) R ⊆ conf (S) iff ♢R|A ⊆ S

38.2.14 Proof of 42.2.13

Let R = [X, Γ] and S = [A, Σ].

(1) conf (S) ⊆ R

⇔ [\begin{matrix}X \\ ⋃\{⊗Y | Y ∈ Σ\} \end{matrix}] ⊆ [\begin{matrix}X \\ Γ \end{matrix}]

⇔ ⋃{⊗Y | Y ∈ Σ} ⊆ Γ ⇔ ∀Y ∈ ⊗A . (Y ∈ Σ implies ⊗ Y ⊆ Γ) ⇔ Σ ⊆ {Y ∈ ⊗A | ⊗Y ⊆ Γ}

⇔ [\begin{matrix}A \\ Σ \end{matrix}] ⊆ [\begin{matrix}A \\ Y ↝ ⊗Y ⊆ Γ \end{matrix}]

⇔ S ⊆ □R|A

(2) R ⊆ conf (S)

⇔ [\begin{matrix}X \\ Γ \end{matrix}] ⊆ [\begin{matrix}X \\ ⋃\{⊗Y | Y ∈ Σ\} \end{matrix}]

⇔ Γ ⊆ ⋃{⊗Y | Y ∈ Σ} ⇔ ∀ξ ∈ ⊗X . (ξ ∈ Γ implies ∃Y ∈ Σ . ξ ∈ ⊗Y) ⇔ ∀ξ ∈ ⊗X . (ξ ∈ Γ implies [ ξ]_{A} ∈ Σ) ⇔ {[ ξ]_{A} | ξ ∈ Γ} ⊆ Σ

⇔ [\begin{matrix}A \\ \{[ ξ]_{A} | ξ ∈ Γ\} \end{matrix}] ⊆ [\begin{matrix}A \\ Σ \end{matrix}]

again, due to def. Thalg 19.5.1 of ⊆

⇔ ♢R|A ⊆ S

due to 42.2.9(1)

38.2.15 Lemma Let X be a schema, A ∈ BXP (X) and R ∈ Rel (X). Then

(1) □R|A = ⋃{S ∈ Rel (A) | conf (S) ⊆ R}

(2) ♢R|A = ⋂{S ∈ Rel (A) | R ⊆ conf (S)}

38.2.16 Proof of 42.2.15 Let R = [X, Γ].

(1) For every S = [A, Σ] ∈ Rel (A) holds conf (S) ⊆ R

⇔ ⨄{⊗Y | Y ∈ Σ} ⊆ Γ due to def. 41.2.1 of conf (S)

⇔ ⊗Y ⊆ Γ for all Y ∈ Σ

⇔ Y ∈ □R|A for all Y ∈ Σ due to 42.2.9(2)

⇔ S ⊆ □R|A

Thus □R|A = ⋃{S ∈ Rel (A) | S ⊆ □R|A}

because □R|A ∈ Rel (S)

= ⋃{S ∈ Rel (A) | conf (S) ⊆ R}

(2) For every S = [A, Σ] ∈ Rel (A) holds R ⊆ conf (S) ⇔ Γ ⊆ ⨄{⊗Y | Y ∈ Σ}

due to def. 41.2.1 of conf (S)

⇔ ∀ξ ∈ Γ . ∃Y ∈ Σ . ξ ∈ ⊗Y

because the union ⨄{⊗Y | Y ∈ Σ} is disjunct

⇔ ∀ξ ∈ Γ . [ ξ]_{A} ∈ Σ

because ξ ∈ ⊗Y iff [ ξ ]A = Y , due to 40.5.19(2)(b)

⇔ {[ ξ]_{A} | ξ ∈ Γ} ⊆ Σ

⇔ ♢R|A ⊆ S due to 42.2.9(1)

Thus ♢R|A = ⋂{S ∈ Rel (A) | ♢R|A ⊆ S} = ⋂{S ∈ Rel (A) | R ⊆ conf (S)}

38.2.17 Lemma Let A = [A_{i}|i ∈ I] be a block schema partition of a schema X = [X_{i}|i ∈ I]. For all R, S ∈ Rel (X) holds:

(1) R ⊆ S implies ♢R|A ⊆ ♢S|A

(2) R ⊆ S implies □R|A ⊆ □S|A

38.2.18 Proof of 42.2.17 Let R = [X, Γ] and S = [X, Σ].

(1) R ⊆ S ⇒ Γ ⊆ Σ ⇒ {[ ξ]_{A} | Ξ ∈ Γ} ⊆ {[ ξ]_{A} | ξ ∈ Σ}

(2) R ⊆ S ⇒ Γ ⊆ Σ ⇒ {Y ∈ ⊗A | ⊗Y ⊆ Γ} ⊆ {Y ∈ ⊗A | ⊗Y ⊆ Σ}

due to def. 41.2.1 of conf (S)

due to def. Thalg 19.5.1 of ⊆ again, due to def. Thalg 19.5.1 of ⊆

due to 42.2.9(2)

due to def. 41.2.1 of conf (S)

due to def. Thalg 19.5.1 of ⊆ because (ξ ∈ ⊗Y iff [ ξ ]A = Y ), for all ξ ∈ ⊗X and Y ∈ ⊗A, due to 40.5.17(1)(a)

⇒ ♢R|A ⊆ ♢S|A due to 42.2.9(1)

⇒ □R|A ⊆ □S|A due to 42.2.9(2)

38.2.19 Lemma

Let A = [A_{i}|i ∈ I] be a block schema partition of a schema X = [X_{i}|i ∈ I]. For each R ∈ Rel (X) holds:

(1) R ≡ ⊤ iff □R|A ≡ ⊤

(2) R ≢ ⊥ iff ♢R|A ≢ ⊥

38.2.20 Proof of 42.2.19

Let R = [X, Γ].

(1) R ≡ ⊤ ⇔ Γ = ⊗X ⇔ ⊗Y ⊆ Γ for all Y ∈ ⊗A

because ⊗X = ⨄{⊗Y | Y ∈ ⊗A}, due to 40.5.19(4)(b)

⇔ (□R)(Y) for all Y ∈ ⊗A

due to def. 42.1.1 of □R

⇔ □R|A ≡ ⊤

(2) R ≢ ⊥ ⇔ ∃ξ ∈ ⊗X . ξ ∈ Γ ⇔ ∃ξ ∈ ⊗X . ⊗ [ ξ]_{A} ∩ Γ ≠ ∅

because ξ ∈ ⊗[ ξ ]A for all ξ ∈ ⊗X, due to 40.5.19(2)(d)

⇔ ∃Y ∈ ⊗A . ⊗ Y ∩ Γ ≠ ∅

because ⊗A = {[ ξ ]A | ξ ∈ ⊗A}, due to 40.5.19(3)(d)

⇔ ∃Y ∈ ⊗A . (♢R)(Y) due to def. 42.1.1 of ♢R

⇔ ♢R|A ≢ ⊥

38.2.21 Lemma

Let A = [A_{i}|i ∈ I] be a block schema partition of a schema X = [X_{i}|i ∈ I]. For each R = {R_{k} | k ∈ K} ⊆ Rel (X) holds:

(1) ♢(⋃ R)|A = ⋃{(♢R_{k}|A) | k ∈ K}

(2) □(⋂ R)|A = ⋂{(□R_{k}|A) | k ∈ K}

(3) ♢(⋂ R)|A ⊆ ⋂{(♢R_{k}|A) | k ∈ K}

(4) □(⋃ R)|A ⊇ ⋃{(□R_{k}|A) | k ∈ K}

38.2.22 Repetition

Recall, that the following statements generally hold for each class B and every class family C = {C_{l} | l ∈ L}.

(1) B ∩ ⋃ C ≠ ∅ iff ∃l ∈ L . B ∩ C_{l} ≠ ∅

(2) B ⊆ ⋂ C iff ∀l ∈ L . B ⊆ C_{l}

(3) B ∩ ⋂ C ≠ ∅ implies ∀l ∈ L . B ∩ C_{l} ≠ ∅

(4) ∃l ∈ L . B ⊆ C_{k} implies B ⊆ ⋃ C

38.2.23 Proof of 42.2.21

Let R_{k} = [X, Γ_{k}] for each k ∈ K.

(1) ♢( ⋃_{k∈K}R_{k})|A

= [ \begin{matrix}A \\ Y ↝ ⊗Y ∩ ( ⋃_{k∈K}Γ_{k}) ≠ ∅ \end{matrix} ]

due to def. 42.2.1 and 42.1.1

= [ \begin{matrix}A \\ Y ↝ ∃k ∈ K . ⊗ Y ∩ Γ_{k} ≠ ∅ \end{matrix} ]

due to 42.2.22(1)

= ⋃_{k∈K}[ \begin{matrix}A \\ Y ↝ ⊗Y ∩ Γ_{k} ≠ ∅ \end{matrix} ]

due to def. Thalg 19.5.3 of ⋃, again

= ⋃_{k∈K} (♢R_{k}|A)

due to def. 42.2.1 and 42.1.1, again

(2) □( ⋂_{k∈K}R_{k})|A

= □[ \begin{matrix}X \\ ⋂_{k∈K} & Γ_{k} \end{matrix} ]|A due to def. Thalg 19.5.3 of ⋂

= [ \begin{matrix}A \\ Y ↝ ⊗Y ⊆ ⋂_{k∈K}Γ_{k} \end{matrix} ]

due to def. 42.2.1 and 42.1.1

= [ \begin{matrix}A \\ Y ↝ ∀k ∈ K . ⊗ Y ⊆ Γ_{k} \end{matrix} ]

due to 42.2.22(2)

= ⋂_{k∈K}[ \begin{matrix}A \\ Y ↝ ⊗Y ⊆ Γ_{k} \end{matrix} ]

due to def. Thalg 19.5.3 of ⋂, again

= ⋂_{k∈K}(□R_{k}|A)

due to def. 42.2.1 and 42.1.1, again

(3) ♢( ⋂_{k∈K}R_{k})|A

= ♢[ \begin{matrix}X \\ ⋂_{k∈K}Γ_{k} \end{matrix} ]|A due to def. Thalg 19.5.3 of ⋂

= [ \begin{matrix}A \\ Y ↝ ⊗Y ∩ ⋂_{k∈K}Γ_{k} ≠ ∅ \end{matrix} ]

due to def. 42.2.1 and 42.1.1

⊆ [ \begin{matrix}A \\ Y ↝ ∀k ∈ K . ⊗ Y ∩ Γ_{k} ≠ ∅ \end{matrix} ]

due to 42.2.22(3)

= ⋂_{k∈K}[ \begin{matrix}A \\ Y ↝ ⊗Y ∩ Γ_{k} ≠ ∅ \end{matrix} ]

due to def. Thalg 19.5.3 of ⋂, again

= ⋂_{k∈K}(♢R_{k}|A)

due to def. 42.2.1 and 42.1.1, again

(4)  ⋃_{k∈K}(□R_{k}|A)

= ♢[ \begin{matrix}X \\ ⋃_{k∈K}Γ_{k} \end{matrix} ]|A due to def. Thalg 19.5.3 of ⋃

= ⋃_{k∈K}[ \begin{matrix}A \\ Y ↝ ⊗Y ⊆ Γ_{k} \end{matrix} ]

due to def. 42.2.1 and 42.1.1

= [ \begin{matrix}A \\ Y ↝ ∃k ∈ K . ⊗ Y ⊆ Γ_{k} \end{matrix} ]

due to def. Thalg 19.5.3 of ⋃

⊆ [ \begin{matrix}A \\ Y ↝ ⊗Y ⊆ ⋃_{k∈K}Γ_{k} \end{matrix} ]

due to 42.2.22(4)

= □[ \begin{matrix}X \\ ⋃_{k∈K}Γ_{k} \end{matrix} ]|A

due to def. 42.2.1 and 42.1.1, again

= □( ⋃_{k∈K}R_{k})|A

due to def. Thalg 19.5.3 of ⋃, again

38.2.24 Lemma

Let A = [A_{i}|i ∈ I] be a block schema partition of a schema X = [X_{i}|i ∈ I]. For each R ∈ Rel (X) holds:

(1) ¬(♢R|A) = □(¬R)|A

(2) ¬(□R|A) = ♢(¬R)|A

38.2.25 Repetition

Recall, that for each class C and all A, B ∈ P (C) holds:

(1) A ∩ B = ∅ iff A ⊆ C \ B

(2) A ⊈ B iff A ∩ (C \ B) ≠ ∅

38.2.26 Proof of 42.2.24

Let R = [X, Γ].

(1) ¬(♢R|A)

= ¬[ \begin{matrix}A \\ Y ↝ ⊗Y ∩ Γ ≠ ∅ \end{matrix} ]

= [ \begin{matrix}A \\ Y ↝ ⊗Y ∩ Γ = ∅ \end{matrix} ]

= [ \begin{matrix}A \\ Y ↝ ⊗Y ⊆ (⊗X \ Γ) \end{matrix} ]

= □[ \begin{matrix}X \\ ⊗X \ Γ \end{matrix} ]|A

= □(¬R)|A

(2) ¬(□R|A)

= ¬[ \begin{matrix}A \\ Y ↝ ⊗Y ⊆ Γ \end{matrix} ]

due to def. 42.2.1 and 42.1.1

= [ \begin{matrix}A \\ Y ↝ ⊗Y ⊈ Γ \end{matrix} ]

due to def. Thalg 19.4.1 of ¬

= [ \begin{matrix}A \\ Y ↝ ⊗Y ∩ (⊗X \ Γ) ≠ ∅ \end{matrix} ]

due to 42.2.25(2)

= ♢[ \begin{matrix}X \\ ⊗X \ Γ \end{matrix} ]|A

due to def. 42.2.1 and 42.1.1

= ♢(¬R)|A

again, due to def. Thalg 19.4.1 of ¬

38.2.27 Lemma

Let A = [A_{i}|i ∈ I] be a block schema partition of a schema X = [X_{i}|i ∈ I] and J ⊆ I. We put

A′ := pr (A, I \ J) and A′′ := pr (A, J)

For each R ∈ Rel (X) holds:

(1) (♢R|A)⇂ J = ♢(R⇂ J)|A′

(2) (□R|A)↾ J = □(R↾ J)|A′ If A′′ is locally proper then

(3) (□R|A)⇂ J ⊆ □(R⇂ J)|A′

(4) (♢R|A)↾ J ⊇ ♢(R↾ J)|A′ If A′′ is proper, but not locally proper, then

(5) (□R|A)⇂ J = ⊤_{A′}

(6) (♢R|A)↾ J = ⊥_{A′} And if A′′ is not proper, then

(7) (♢R|A)⇂ J = (□R|A)⇂ J = ⊥_{A′}

(8) (♢R|A)↾ J = (□R|A)↾ J = ⊤_{A′}

38.2.28 Proof of 42.2.27

Let R = [X, Γ].

(1) (♢R|A)⇂ J

= [ \begin{matrix}A \\ \{[ ξ]_{A} | ξ ∈ Γ\} \end{matrix} ]⇂ J

due to 42.2.9(1)

= pr ([ \begin{matrix}A \\ \{[ ξ]_{A} | ξ ∈ Γ\} \end{matrix} ], I \ J)

= [ \begin{matrix}pr & (A, I \ J) \\ \{pr ([ ξ]_{A}, I \ J) | ξ ∈ Γ\} \end{matrix} ]

= [ \begin{matrix}& A′ \\ \{ & [ pr (ξ, I \ J) ]_{A′} ξ ∈ Γ & \} \end{matrix} ]

due to 40.5.15

due to def. 42.2.1 and 42.1.1 due to def. Thalg 19.4.1 of ¬

due to 42.2.25(1)

due to def. 42.2.1 and 42.1.1 again, due to def. Thalg 19.4.1 of ¬

due to def. Thalg 21.4.1 due to def. Thalg 21.2.2 and Thalg 16.5.1

= ♢[ \begin{matrix}pr & (X, I \ J) \\ \{ & pr (ξ, I \ J) ξ ∈ Γ & \} \end{matrix} ]|A′

due to 42.2.9(1), again

= ♢pr ([\begin{matrix}X \\ Γ \end{matrix}], I \ J) |A′

due to def. Thalg 21.2.2 and Thalg 16.5.1 , again

= ♢(R⇂ J)|A′

due to def. Thalg 21.4.1 , again

(2) (□R|A)↾ J

= ¬¬ ((□R|A)↾ J) due to Thalg 19.4.6 = ¬ ((¬(□R|A))⇂ J) due to Thalg 21.5.7(5) = ¬ ((♢(¬R)|A)⇂ J) due to 42.2.24(2) = ¬ (♢((¬R)⇂ J)|A′) due to (1) = ¬ (♢¬(R↾ J)|A′) due to Thalg 21.5.7(5) , again = ¬¬ (□(R↾ J)|A′) due to 42.2.24(2), again = □(R↾ J)|A′ due to Thalg 19.4.6 , again

(3) Now, pr (A, J) is locally proper, which means that each Z ∈ ⊗pr (A, J) is proper, according to 40.3.3(2). So, for every Y ∈ ⊗A holds:

(i) pr (Y, J) is proper and so

pr (⊗Y, I \ J) = ⊗pr (Y, I \ J)

according to 1.0.8

36

(ii) ⊗Y ⊆ Γ ⇒ {pr (ξ, I \ J) | ξ ∈ ⊗Y } ⊆ {pr (ξ, I \ J) | ξ ∈ Γ}

⇒ pr (⊗Y, I \ J) ⊆ pr (Γ, I \ J) due to def. Thalg 16.5.1

From (ii) we derive

\{ \frac{Y ∈ ⊗A}{⊗Y ⊆ Γ} \} ⊆ \{ \frac{Y ∈ ⊗A}{pr (⊗Y, I \ J) ⊆ pr (Γ, I \ J)} \}

which means that

\{ pr (Y, I \ J) \begin{matrix}Y ∈ ⊗A, \\ ⊗Y ⊆ Γ \end{matrix} \}

⊆ \{ pr (Y, I \ J) \begin{matrix}Y ∈ ⊗A, \\ pr (⊗Y, I \ J) ⊆ pr (Γ, I \ J) \end{matrix} \}

= \{ pr (Y, I \ J) \begin{matrix}Y ∈ ⊗A, \\ ⊗pr (Y, I \ J) ⊆ pr (Γ, I \ J) \end{matrix} \}

due to (i)

= \{ Z \begin{matrix}Z ∈ ⊗A′, \\ ⊗Z ⊆ pr (Γ, I \ J) \end{matrix} \}

We can now proof (3) as follows:

(□R|A)⇂ J = pr (□R|A, I \ J)

due to def. Thalg 21.4.1

= pr ([\begin{matrix}A \\ Y ↝ ⊗Y ⊆ Γ \end{matrix}], I \ J)

due to 42.2.9(2)

= [ \begin{matrix}& A′ \\ \{ & pr (Y, I \ J) Y ∈ ⊗A, ⊗Y ⊆ Γ & \} \end{matrix} ]

due to def. Thalg 21.2.2 and Thalg 16.5.1

⊆ [ \begin{matrix}& A′ \\ \{ & Z Z ∈ ⊗A′, ⊗Z ⊆ pr (Γ, I \ J) & \} \end{matrix} ]

= [ \begin{matrix}A′ \\ Z ↝ ⊗Z ⊆ pr (Γ, I \ J) \end{matrix} ]

= □pr (R, I \ J) |A′

due to 42.2.9(2), again

= □(R⇂ J)|A′

due to def. Thalg 21.4.1 , again

(4) We derive ¬((♢R|A)↾ J) = (¬(♢R|A))⇂ J due to Thalg 21.5.7(5)

= (□(¬R)|A)⇂ J due to 42.2.24(1)

⊆ □((¬R)↾ J)|A′ due to (3) = □(¬(R⇂ J))|A′ due to Thalg 21.5.7(6)

= ¬♢(R⇂ J)|A′ due to 42.2.24(1)

So alltogether

¬((♢R|A)↾ J) ⊆ ¬♢(R⇂ J)|A′

which means that

(♢R|A)↾ J ⊇ ♢(R⇂ J)|A′

according to Thalg 20.4.24 .

(5) Now A′′ is proper, but not locally proper. Thus (i) ⊗A′′ ≠ ∅, due to Thalg 12.1.12(1) , and (ii) there is at least one Z ∈ ⊗A′′, which is not proper, be-

cause there is a j ∈ J with ∅ ∈ A′′_{j} and Z_{j} := ∅. And for such a Z and each Y ∈ ⊗A′, Y ˙∨ Z is not proper either, and ⊗(Y ˙∨ Z) = ∅.

We derive (□R|A)⇂ J = pr (□R|A, I \ J)

due to def. Thalg 21.4.1

= [ \begin{matrix}A′ \\ Y ↝ ∃Z ∈ ⊗A′′ . Y ˙∨ Z ∈ □R|A \end{matrix} ]

due to Thalg 21.2.7(1)

= [ \begin{matrix}A′ \\ Y ↝ ∃Z ∈ ⊗A′′ . ⊗ (Y ˙∨ Z) ⊆ Γ \end{matrix} ]

due to 42.2.9(2)

= ⊤_{A′}

because there is a Z ∈ ⊗A′′ with ⊗(Y ˙∨ Z) = ∅ ⊆ Γ

(6) Similar to (5) we derive (♢R|A)↾ J = cpj (♢R|A, I \ J)

due to def. Thalg 21.4.1

= [ \begin{matrix}A′ \\ Y ↝ ∀Z ∈ ⊗A′′ . Y ˙∨ Z ∈ ♢R|A \end{matrix} ]

due to Thalg 21.2.7(2)

= [ \begin{matrix}A′ \\ Y ↝ ∀Z ∈ ⊗A′′ . ⊗ (Y ˙∨ Z) ∩ Γ ≠ ∅ \end{matrix} ]

due to 42.2.1 and 42.1.1

= ⊥_{A′}

because there is a Z ∈ ⊗A′′ with ⊗(Y ˙∨ Z) ∩ Γ = ∅ ∩ Γ = ∅

36*** Currently, 1.0.8 is part of file moresyntax.tex and it need to be added to distinctops.tex as 16.5.4 *** (7) If A′′ is not proper, then ⊗A′′ = ∅, according to Thalg 12.1.12(1) .

And then

(□R|A)⇂ J

= pr ((□R|A), (I \ J)) due to def. Thalg 21.4.1

= [ \begin{matrix}A′ \\ Y ↝ ∃Z ∈ ⊗pr (A, J) . Y ˙∨ Z ∈ □R|A \end{matrix} ]

due to Thalg 21.2.7(1)

= [ \begin{matrix}A′ \\ Y ↝ false \end{matrix} ] because ⊗pr (A, J) = ⊗A′′ = ∅

= ⊥_{A′}

(8) As in (7): if A′′ is not proper, then ⊗A′′ = ∅, according to Thalg 12.1.12(1) . And then

(♢R|A)↾ J

= cpj ((♢R|A), (I \ J)) due to def. Thalg 21.4.1

= [ \begin{matrix}A′ \\ Y ↝ ∀Z ∈ ⊗pr (A, J) . Y ˙∨ Z ∈ ♢R|A \end{matrix} ]

due to Thalg 21.2.7(1)

= [ \begin{matrix}A′ \\ Y ↝ true \end{matrix} ] because ⊗pr (A, J) = ⊗A′′ = ∅

= ⊤_{A′}

38.2.29 Remark

*** CONTINUE HERE ***

Mention, that for (3) and (4) the premise of pr (A, J) being locally proper is important, because otherwise, there are counterexamples for (3) and (4) . See example 42.3.1.

*** MOVE THE FOLLOWING TO AN EAR-LIER PLACE ***

38.2.30 Definition

A schema X = [X_{i}|i ∈ I] is called elementary iff X_{i} is a singleton, for each i ∈ I.

38.2.31 Lemma

X is elementary iff ⊗X is a singleton, for every schema X.

*** MOVE THE FOLLOWING TO

                                                  powschema.tex ***

38.2.32 Definition

For every super–schema A = [A|i ∈ I] we define

Elm_{A} := [ \begin{matrix}A \\ Y ↝ Y is elementary \end{matrix} ]

the elementary property relation of A

Proper_{A} := [ \begin{matrix}A \\ Y ↝ Y is proper \end{matrix} ]

the proper property relation of A

Det_{A} := [ \begin{matrix}A \\ Y ↝ card (⊗Y) ≤ 1 \end{matrix} ]

the determined property relation of A

38.2.33 Lemma

( ; 𝅝 ; ) Elm_{A} = [ \begin{matrix}A \\ Y ↝ ⊗Y is a singleton \end{matrix} ]

( ; 𝅝 ; ) Proper_{A} = [ \begin{matrix}A \\ Y ↝ ⊗Y = ∅ \end{matrix} ]

( ; 𝅝 ; ) Det_{A} = [ \begin{matrix}A \\ Y ↝ ∏_{i∈I}card (Y (i)) ≤ 1 \end{matrix} ]

38.2.34 Lemma

Let A = [A_{i}|i ∈ I] be a block schema partition of a schema X = [X_{i}|i ∈ I].

(1) ♢Id_{X}|A = Id_{A}

(2) □Id_{X}|A = Id_{A} ∩ Det_{A} = Id_{A} ∩ Elm_{A}

38.2.35 Proof of 42.2.34

*** CONTINUE HERE ***

38.3 Case study

38.3.1 Example

*** update this ***

34 35 36

Let us illustrate the results of 42.2.27 and exercise the operations on block relations. We take a completely finite schema X, consider all involved relations in a very general fashion and present them in figure ?? and ??. A completely finite schema X and an improper block schema partition A of X are given by

X = [ \begin{matrix}i ↦ & \{a, b, c\} \\ j ↦ & \{a, b, c\} \\ k ↦ & \{a, b, c\} \end{matrix} ] and A = [ \begin{matrix}i ↦ & \{\{a\} , \{b, c\}\} \\ j ↦ & \{∅, \{a\} , \{b, c\}\} \\ k ↦ & \{∅, \{a\} , \{b, c\}\} \end{matrix} ]

Each relation R ∈ Rel (X) was given by its boolean table diagram ( Thalg 17.5.4 )

R = \begin{matrix}i & j & k \\ a & a & a & β1 \\ b & a & a & β2 \\ ⋮ & ⋮ & ⋮ & ⋮ \\ b & c & c & β26 \\ c & c & c & β27 \end{matrix} with β_{1}, …, β_{27} ∈ 𝔹

We choose to eliminate k and therefore we rewrite R once again as the double table ( Thalg 17.6.1 ) with i and j on the left and k at the top (see ??). From this double table we can easily read off the eliminations R ⇂ k and R ↾ k. We also eliminate k from the block schema A,

C := pr (A, \{i, j, k\} \ \{k\}) = [ \begin{matrix}i ↦ & \{\{a\} , \{b, c\}\} \\ j ↦ & \{∅, \{a\} , \{b, c\}\} \end{matrix} ]

and take R⇂ k and R↾ k to produce

♢(R⇂ k)|C ♢(R↾ k)|C □(R⇂ k)|C □(R↾ k)|C

displayed in figure ??.

On the other hand, we start again with R, generate ♢R|A and □R|A and then eliminate k, ending up with four block relations

(♢R|A)⇂ k (♢R|A)↾ k (□R|A)⇂ k (□R|A)↾ k

Comparing these with the other four relations indeed confirms the statements of 42.2.27, i.e. we can easily see that

(1) (♢R|A)⇂ k = ♢(R⇂ k)|C

(2) (□R|A)↾ k = □(R↾ k)|C

(3) (♢R|A)↾ k ⊆ ♢(R↾ k)|C

(4) (□R|A)⇂ k ⊇ □(R⇂ k)|C

*** CONTINUE HERE ***

(1) (♢R|A)⇂ k = ♢(R⇂ k)|C

(2) (□R|A)↾ k = □(R↾ k)|C

(3) (♢R|A)↾ k ⊆ ♢(R↾ k)|C

(4) (□R|A)⇂ k ⊇ □(R⇂ k)|C

(1) (♢R|B)⇂ k = ♢(R⇂ k)|C

(2) (□R|B)↾ k = □(R↾ k)|C

(3) (♢R|B)↾ k ⊇ ♢(R↾ k)|C

(4) (□R|B)⇂ k ⊆ □(R⇂ k)|C

Figure 34: Example 42.3.1

\begin{matrix}X = [ \begin{matrix}i ↦ & \{a, b, c\} \\ j ↦ & \{a, b, c\} \\ k ↦ & \{a, b, c\} \end{matrix} ]  A = [ \begin{matrix}i ↦ & \{\{a\} , \{b, c\}\} \\ j ↦ & \{∅, \{a\} , \{b, c\}\} \\ k ↦ & \{∅, \{a\} , \{b, c\}\} \end{matrix} ]  B = [ \begin{matrix}i ↦ & \{\{a\} , \{b, c\}\} \\ j ↦ & \{∅, \{a\} , \{b, c\}\} \\ k ↦ & \{\{a\} , \{b, c\}\} \end{matrix} ]  C = [ \begin{matrix}i ↦ & \{\{a\} , \{b, c\}\} \\ j ↦ & \{∅, \{a\} , \{b, c\}\} \end{matrix} ] \\ R = \begin{matrix}i & j & k \\ a & a & a & β1 \\ b & a & a & β2 \\ c & a & a & β3 \\ a & b & a & β4 \\ b & b & a & β5 \\ c & b & a & β6 \\ a & c & a & β7 \\ b & c & a & β8 \\ c & c & a & β9 \\ a & a & b & β10 \\ b & a & b & β11 \\ c & a & b & β12 \\ a & b & b & β13 \\ b & b & b & β14 \\ c & b & b & β15 \\ a & c & b & β16 \\ b & c & b & β17 \\ c & c & b & β18 \\ a & a & c & β19 \\ b & a & c & β20 \\ c & a & c & β21 \\ a & b & c & β22 \\ b & b & c & β23 \\ c & b & c & β24 \\ a & c & c & β25 \\ b & c & c & β26 \\ c & c & c & β27 \end{matrix} = \begin{aligned}& & a & b & c & k \\ a & a & β1 & β10 & β19 \\ b & a & β2 & β11 & β20 \\ c & a & β3 & β12 & β21 \\ a & b & β4 & β13 & β22 \\ b & b & β5 & β14 & β23 \\ c & b & β6 & β15 & β24 \\ a & c & β7 & β16 & β25 \\ b & c & β8 & β17 & β26 \\ c & c & β9 & β18 & β27 \\ i & j \end{aligned}  \begin{matrix}R⇂ k = \begin{matrix}i & j \\ a & a & β1 ∨ β10 ∨ β19 \\ b & a & β2 ∨ β11 ∨ β20 \\ c & a & β3 ∨ β12 ∨ β21 \\ a & b & β4 ∨ β13 ∨ β22 \\ b & b & β5 ∨ β14 ∨ β23 \\ c & b & β6 ∨ β15 ∨ β24 \\ a & c & β7 ∨ β16 ∨ β25 \\ b & c & β8 ∨ β17 ∨ β26 \\ c & c & β9 ∨ β18 ∨ β27 \end{matrix} \\ R↾ k = \begin{matrix}i & j \\ a & a & β1 ∧ β10 ∧ β19 \\ b & a & β2 ∧ β11 ∧ β20 \\ c & a & β3 ∧ β12 ∧ β21 \\ a & b & β4 ∧ β13 ∧ β22 \\ b & b & β5 ∧ β14 ∧ β23 \\ c & b & β6 ∧ β15 ∧ β24 \\ a & c & β7 ∧ β16 ∧ β25 \\ b & c & β8 ∧ β17 ∧ β26 \\ c & c & β9 ∧ β18 ∧ β27 \end{matrix} \end{matrix} \\ ♢(R⇂ k)|C = \begin{matrix}i & j \\ \{a\} & ∅ & 0 \\ \{b, c\} & ∅ & 0 \\ \{a\} & \{a\} & β1 ∨ β10 ∨ β19 \\ \{b, c\} & \{a\} & \begin{matrix}(β2 ∨ β11 ∨ β20)∨ \\ (β3 ∨ β12 ∨ β21) \end{matrix} \\ \{a\} & \{b, c\} & \begin{matrix}(β4 ∨ β13 ∨ β22)∨ \\ (β7 ∨ β16 ∨ β25) \end{matrix} \\ \{b, c\} & \{b, c\} & \begin{matrix}(β5 ∨ β14 ∨ β23)∨ \\ (β6 ∨ β15 ∨ β24)∨ \\ (β8 ∨ β17 ∨ β26)∨ \\ (β9 ∨ β18 ∨ β27) \end{matrix} \end{matrix}  ♢(R↾ k)|C = \begin{matrix}i & j \\ \{a\} & ∅ & 0 \\ \{b, c\} & ∅ & 0 \\ \{a\} & \{a\} & β1 ∧ β10 ∧ β19 \\ \{b, c\} & \{a\} & \begin{matrix}(β2 ∧ β11 ∧ β20)∨ \\ (β3 ∧ β12 ∧ β21) \end{matrix} \\ \{a\} & \{b, c\} & \begin{matrix}(β4 ∧ β13 ∧ β22)∨ \\ (β7 ∧ β16 ∧ β25) \end{matrix} \\ \{b, c\} & \{b, c\} & \begin{matrix}(β5 ∧ β14 ∧ β23)∨ \\ (β6 ∧ β15 ∧ β24)∨ \\ (β8 ∧ β17 ∧ β26)∨ \\ (β9 ∧ β18 ∧ β27) \end{matrix} \end{matrix} \\ □(R⇂ k)|C = \begin{matrix}i & j \\ \{a\} & ∅ & 1 \\ \{b, c\} & ∅ & 1 \\ \{a\} & \{a\} & β1 ∨ β10 ∨ β19 \\ \{b, c\} & \{a\} & \begin{matrix}(β2 ∨ β11 ∨ β20)∧ \\ (β3 ∨ β12 ∨ β21) \end{matrix} \\ \{a\} & \{b, c\} & \begin{matrix}(β4 ∨ β13 ∨ β22)∧ \\ (β7 ∨ β16 ∨ β25) \end{matrix} \\ \{b, c\} & \{b, c\} & \begin{matrix}(β5 ∨ β14 ∨ β23)∧ \\ (β6 ∨ β15 ∨ β24)∧ \\ (β8 ∨ β17 ∨ β26)∧ \\ (β9 ∨ β18 ∨ β27) \end{matrix} \end{matrix}  □(R↾ k)|C = \begin{matrix}i & j \\ \{a\} & ∅ & 1 \\ \{b, c\} & ∅ & 1 \\ \{a\} & \{a\} & β1 ∧ β10 ∧ β19 \\ \{b, c\} & \{a\} & \begin{matrix}(β2 ∧ β11 ∧ β20)∧ \\ (β3 ∧ β12 ∧ β21) \end{matrix} \\ \{a\} & \{b, c\} & \begin{matrix}(β4 ∧ β13 ∧ β22)∧ \\ (β7 ∧ β16 ∧ β25) \end{matrix} \\ \{b, c\} & \{b, c\} & \begin{matrix}(β5 ∧ β14 ∧ β23)∧ \\ (β6 ∧ β15 ∧ β24)∧ \\ (β8 ∧ β17 ∧ β26)∧ \\ (β9 ∧ β18 ∧ β27) \end{matrix} \end{matrix} \end{matrix}

Figure 35:_{\begin{matrix}♢R|A = \begin{matrix}i & j & k \\ \{a\} & ∅ & ∅ & 0 \\ \{b, c\} & ∅ & ∅ & 0 \\ \{a\} & \{a\} & ∅ & 0 \\ \{b, c\} & \{a\} & ∅ & 0 \\ \{a\} & \{b, c\} & ∅ & 0 \\ \{b, c\} & \{b, c\} & ∅ & 0 \\ \{a\} & ∅ & \{a\} & 0 \\ \{b, c\} & ∅ & \{a\} & 0 \\ \{a\} & \{a\} & \{a\} & β_{1} \\ \{b, c\} & \{a\} & \{a\} & β_{2} ∨ β_{3} \\ \{a\} & \{b, c\} & \{a\} & β_{4} ∨ β_{7} \\ \{b, c\} & \{b, c\} & \{a\} & β_{5} ∨ β_{6} ∨ β_{8} ∨ β_{9} \\ \{a\} & ∅ & \{b, c\} & 0 \\ \{b, c\} & ∅ & \{b, c\} & 0 \\ \{a\} & \{a\} & \{b, c\} & β_{10} ∨ β_{19} \\ \{b, c\} & \{a\} & \{b, c\} & β_{11} ∨ β_{12} ∨ β_{20} ∨ β_{21} \\ \{a\} & \{b, c\} & \{b, c\} & β_{13} ∨ β_{16} ∨ β_{22} ∨ β_{25} \\ \{b, c\} & \{b, c\} & \{b, c\} & β_{14} ∨ β_{15} ∨ β_{17} ∨ β_{18} ∨ β_{23} ∨ β_{24} ∨ β_{26} ∨ β_{27} \end{matrix} = \begin{aligned}& & ∅ & \{a\} & \{b, c\} & k \\ \{a\} & ∅ & 0 & 0 & 0 \\ \{b, c\} & ∅ & 0 & 0 & 0 \\ \{a\} & \{a\} & 0 & β_{1} & β_{10} ∨ β_{19} \\ \{b, c\} & \{a\} & 0 & β_{2} ∨ β_{3} & \begin{matrix}β_{11} ∨ β_{12}∨ \\ β_{20} ∨ β_{21} \end{matrix} \\ \{a\} & \{b, c\} & 0 & β_{4} ∨ β_{7} & \begin{matrix}β_{13} ∨ β_{16}∨ \\ β_{22} ∨ β_{25} \end{matrix} \\ \{b, c\} & \{b, c\} & 0 & \begin{matrix}β_{5} ∨ β_{6}∨ \\ β_{8} ∨ β_{9} \end{matrix} & \begin{matrix}β_{14} ∨ β_{15}∨ \\ β_{17} ∨ β_{18}∨ \\ β_{23} ∨ β_{24}∨ \\ β_{26} ∨ β_{27} \end{matrix} \\ i & j \end{aligned} \\ □R|A = \begin{matrix}i & j & k \\ \{a\} & ∅ & ∅ & 1 \\ \{b, c\} & ∅ & ∅ & 1 \\ \{a\} & \{a\} & ∅ & 1 \\ \{b, c\} & \{a\} & ∅ & 1 \\ \{a\} & \{b, c\} & ∅ & 1 \\ \{b, c\} & \{b, c\} & ∅ & 1 \\ \{a\} & ∅ & \{a\} & 1 \\ \{b, c\} & ∅ & \{a\} & 1 \\ \{a\} & \{a\} & \{a\} & β_{1} \\ \{b, c\} & \{a\} & \{a\} & β_{2} ∧ β_{3} \\ \{a\} & \{b, c\} & \{a\} & β_{4} ∧ β_{7} \\ \{b, c\} & \{b, c\} & \{a\} & β_{5} ∧ β_{6} ∧ β_{8} ∧ β_{9} \\ \{a\} & ∅ & \{b, c\} & 1 \\ \{b, c\} & ∅ & \{b, c\} & 1 \\ \{a\} & \{a\} & \{b, c\} & β_{10} ∧ β_{19} \\ \{b, c\} & \{a\} & \{b, c\} & β_{11} ∧ β_{12} ∧ β_{20} ∧ β_{21} \\ \{a\} & \{b, c\} & \{b, c\} & β_{13} ∧ β_{16} ∧ β_{22} ∧ β_{25} \\ \{b, c\} & \{b, c\} & \{b, c\} & β_{14} ∧ β_{15} ∧ β_{17} ∧ β_{18} ∧ β_{23} ∧ β_{24} ∧ β_{26} ∧ β_{27} \end{matrix} = \begin{aligned}& & ∅ & \{a\} & \{b, c\} & k \\ \{a\} & ∅ & 1 & 1 & 1 \\ \{b, c\} & ∅ & 1 & 1 & 1 \\ \{a\} & \{a\} & 1 & β_{1} & β_{10} ∧ β_{19} \\ \{b, c\} & \{a\} & 1 & β_{2} ∧ β_{3} & \begin{matrix}β_{11} ∧ β_{12}∧ \\ β_{20} ∧ β_{21} \end{matrix} \\ \{a\} & \{b, c\} & 1 & β_{4} ∧ β_{7} & \begin{matrix}β_{13} ∧ β_{16}∧ \\ β_{22} ∧ β_{25} \end{matrix} \\ \{b, c\} & \{b, c\} & 1 & \begin{matrix}β_{5} ∧ β_{6}∧ \\ β_{8} ∧ β_{9} \end{matrix} & \begin{matrix}β_{14} ∧ β_{15}∧ \\ β_{17} ∧ β_{18}∧ \\ β_{23} ∧ β_{24}∧ \\ β_{26} ∧ β_{27} \end{matrix} \\ i & j \end{aligned} \\ ♢R|B = \begin{matrix}i & j & k \\ \{a\} & ∅ & \{a\} & 0 \\ \{b, c\} & ∅ & \{a\} & 0 \\ \{a\} & \{a\} & \{a\} & β_{1} \\ \{b, c\} & \{a\} & \{a\} & β_{2} ∨ β_{3} \\ \{a\} & \{b, c\} & \{a\} & β_{4} ∨ β_{7} \\ \{b, c\} & \{b, c\} & \{a\} & β_{5} ∨ β_{6} ∨ β_{8} ∨ β_{9} \\ \{a\} & ∅ & \{b, c\} & 0 \\ \{b, c\} & ∅ & \{b, c\} & 0 \\ \{a\} & \{a\} & \{b, c\} & β_{10} ∨ β_{19} \\ \{b, c\} & \{a\} & \{b, c\} & β_{11} ∨ β_{12} ∨ β_{20} ∨ β_{21} \\ \{a\} & \{b, c\} & \{b, c\} & β_{13} ∨ β_{16} ∨ β_{22} ∨ β_{25} \\ \{b, c\} & \{b, c\} & \{b, c\} & β_{14} ∨ β_{15} ∨ β_{17} ∨ β_{18} ∨ β_{23} ∨ β_{24} ∨ β_{26} ∨ β_{27} \end{matrix} = \begin{aligned}& & \{a\} & \{b, c\} & k \\ \{a\} & ∅ & 0 & 0 \\ \{b, c\} & ∅ & 0 & 0 \\ \{a\} & \{a\} & β_{1} & β_{10} ∨ β_{19} \\ \{b, c\} & \{a\} & β_{2} ∨ β_{3} & \begin{matrix}β_{11} ∨ β_{12}∨ \\ β_{20} ∨ β_{21} \end{matrix} \\ \{a\} & \{b, c\} & β_{4} ∨ β_{7} & \begin{matrix}β_{13} ∨ β_{16}∨ \\ β_{22} ∨ β_{25} \end{matrix} \\ \{b, c\} & \{b, c\} & \begin{matrix}β_{5} ∨ β_{6}∨ \\ β_{8} ∨ β_{9} \end{matrix} & \begin{matrix}β_{14} ∨ β_{15}∨ \\ β_{17} ∨ β_{18}∨ \\ β_{23} ∨ β_{24}∨ \\ β_{26} ∨ β_{27} \end{matrix} \\ i & j \end{aligned} \\ □R|B = \begin{matrix}i & j & k \\ \{a\} & ∅ & \{a\} & 1 \\ \{b, c\} & ∅ & \{a\} & 1 \\ \{a\} & \{a\} & \{a\} & β_{1} \\ \{b, c\} & \{a\} & \{a\} & β_{2} ∧ β_{3} \\ \{a\} & \{b, c\} & \{a\} & β_{4} ∧ β_{7} \\ \{b, c\} & \{b, c\} & \{a\} & β_{5} ∧ β_{6} ∧ β_{8} ∧ β_{9} \\ \{a\} & ∅ & \{b, c\} & 1 \\ \{b, c\} & ∅ & \{b, c\} & 1 \\ \{a\} & \{a\} & \{b, c\} & β_{10} ∧ β_{19} \\ \{b, c\} & \{a\} & \{b, c\} & β_{11} ∧ β_{12} ∧ β_{20} ∧ β_{21} \\ \{a\} & \{b, c\} & \{b, c\} & β_{13} ∧ β_{16} ∧ β_{22} ∧ β_{25} \\ \{b, c\} & \{b, c\} & \{b, c\} & β_{14} ∧ β_{15} ∧ β_{17} ∧ β_{18} ∧ β_{23} ∧ β_{24} ∧ β_{26} ∧ β_{27} \end{matrix} = \begin{aligned}& & \{a\} & \{b, c\} & k \\ \{a\} & ∅ & 0 & 0 \\ \{b, c\} & ∅ & 0 & 0 \\ \{a\} & \{a\} & β_{1} & β_{10} ∧ β_{19} \\ \{b, c\} & \{a\} & β_{2} ∧ β_{3} & \begin{matrix}β_{11} ∧ β_{12}∧ \\ β_{20} ∧ β_{21} \end{matrix} \\ \{a\} & \{b, c\} & β_{4} ∧ β_{7} & \begin{matrix}β_{13} ∧ β_{16}∧ \\ β_{22} ∧ β_{25} \end{matrix} \\ \{b, c\} & \{b, c\} & \begin{matrix}β_{5} ∧ β_{6}∧ \\ β_{8} ∧ β_{9} \end{matrix} & \begin{matrix}β_{14} ∧ β_{15}∧ \\ β_{17} ∧ β_{18}∧ \\ β_{23} ∧ β_{24}∧ \\ β_{26} ∧ β_{27} \end{matrix} \\ i & j \end{aligned} \end{matrix}}

Figure 36:_{\begin{matrix}(♢R|A)⇂ k = \begin{matrix}i & j \\ \{a\} & ∅ & 0 ∨ 0 ∨ 0 \\ \{b, c\} & ∅ & 0 ∨ 0 ∨ 0 \\ \{a\} & \{a\} & 0 ∨ β_{1} ∨ (β_{10} ∨ β_{19}) \\ \{b, c\} & \{a\} & \begin{matrix}0∨ \\ (β_{2} ∨ β_{3})∨ \\ (β_{11} ∨ β_{12} ∨ β_{20} ∨ β_{21}) \end{matrix} \\ \{a\} & \{b, c\} & \begin{matrix}0∨ \\ (β_{4} ∨ β_{7})∨ \\ (β_{13} ∨ β_{16} ∨ β_{22} ∨ β_{25}) \end{matrix} \\ \{b, c\} & \{b, c\} & \begin{matrix}0∨ \\ (β_{5} ∨ β_{6} ∨ β_{8} ∨ β_{9})∨ \\ ( & \begin{matrix}β_{14} ∨ β_{15} ∨ β_{17} ∨ β_{18}∨ \\ β_{23} ∨ β_{24} ∨ β_{26} ∨ β_{27} \end{matrix} & ) \end{matrix} \end{matrix}  (♢R|A)↾ k = \begin{matrix}i & j \\ \{a\} & ∅ & 0 ∧ 0 ∧ 0 \\ \{b, c\} & ∅ & 0 ∧ 0 ∧ 0 \\ \{a\} & \{a\} & 0 ∧ β_{1} ∧ (β_{10} ∨ β_{19}) \\ \{b, c\} & \{a\} & \begin{matrix}0∧ \\ (β_{2} ∨ β_{3})∧ \\ (β_{11} ∨ β_{12} ∨ β_{20} ∨ β_{21}) \end{matrix} \\ \{a\} & \{b, c\} & \begin{matrix}0∧ \\ (β_{4} ∨ β_{7})∧ \\ (β_{13} ∨ β_{16} ∨ β_{22} ∨ β_{25}) \end{matrix} \\ \{b, c\} & \{b, c\} & \begin{matrix}0∧ \\ (β_{5} ∨ β_{6} ∨ β_{8} ∨ β_{9})∧ \\ ( & \begin{matrix}β_{14} ∨ β_{15} ∨ β_{17} ∨ β_{18}∨ \\ β_{23} ∨ β_{24} ∨ β_{26} ∨ β_{27} \end{matrix} & ) \end{matrix} \end{matrix} = ⊥_{C} \\ (□R|A)⇂ k = \begin{matrix}i & j \\ \{a\} & ∅ & 1 ∨ 1 ∨ 1 \\ \{b, c\} & ∅ & 1 ∨ 1 ∨ 1 \\ \{a\} & \{a\} & 1 ∨ β_{1} ∨ (β_{10} ∧ β_{19}) \\ \{b, c\} & \{a\} & \begin{matrix}1∨ \\ (β_{2} ∧ β_{3})∨ \\ (β_{11} ∧ β_{12} ∧ β_{20} ∧ β_{21}) \end{matrix} \\ \{a\} & \{b, c\} & \begin{matrix}1∨ \\ (β_{4} ∧ β_{7})∨ \\ (β_{13} ∧ β_{16} ∧ β_{22} ∧ β_{25}) \end{matrix} \\ \{b, c\} & \{b, c\} & \begin{matrix}1∨ \\ (β_{5} ∧ β_{6} ∧ β_{8} ∧ β_{9})∨ \\ ( & \begin{matrix}β_{14} ∧ β_{15} ∧ β_{17} ∧ β_{18}∧ \\ β_{23} ∧ β_{24} ∧ β_{26} ∧ β_{27} \end{matrix} & ) \end{matrix} \end{matrix} = ⊤_{C}  (□R|A)↾ k = \begin{matrix}i & j \\ \{a\} & ∅ & 1 ∧ 1 ∧ 1 \\ \{b, c\} & ∅ & 1 ∧ 1 ∧ 1 \\ \{a\} & \{a\} & 1 ∧ β_{1} ∧ (β_{10} ∧ β_{19}) \\ \{b, c\} & \{a\} & \begin{matrix}1∧ \\ (β_{2} ∧ β_{3})∧ \\ (β_{11} ∧ β_{12} ∧ β_{20} ∧ β_{21}) \end{matrix} \\ \{a\} & \{b, c\} & \begin{matrix}1∧ \\ (β_{4} ∧ β_{7})∧ \\ (β_{13} ∧ β_{16} ∧ β_{22} ∧ β_{25}) \end{matrix} \\ \{b, c\} & \{b, c\} & \begin{matrix}1∧ \\ (β_{5} ∧ β_{6} ∧ β_{8} ∧ β_{9})∧ \\ ( & \begin{matrix}β_{14} ∧ β_{15} ∧ β_{17} ∧ β_{18}∧ \\ β_{23} ∧ β_{24} ∧ β_{26} ∧ β_{27} \end{matrix} & ) \end{matrix} \end{matrix} \\ (♢R|B)⇂ k = \begin{matrix}i & j \\ \{a\} & ∅ & 0 ∨ 0 \\ \{b, c\} & ∅ & 0 ∨ 0 \\ \{a\} & \{a\} & β_{1} ∨ (β_{10} ∨ β_{19}) \\ \{b, c\} & \{a\} & \begin{matrix}(β_{2} ∨ β_{3})∨ \\ (β_{11} ∨ β_{12} ∨ β_{20} ∨ β_{21}) \end{matrix} \\ \{a\} & \{b, c\} & \begin{matrix}(β_{4} ∨ β_{7})∨ \\ (β_{13} ∨ β_{16} ∨ β_{22} ∨ β_{25}) \end{matrix} \\ \{b, c\} & \{b, c\} & \begin{matrix}(β_{5} ∨ β_{6} ∨ β_{8} ∨ β_{9})∨ \\ ( & \begin{matrix}β_{14} ∨ β_{15} ∨ β_{17} ∨ β_{18}∨ \\ β_{23} ∨ β_{24} ∨ β_{26} ∨ β_{27} \end{matrix} & ) \end{matrix} \end{matrix}  (♢R|B)↾ k = \begin{matrix}i & j \\ \{a\} & ∅ & 0 ∧ 0 \\ \{b, c\} & ∅ & 0 ∧ 0 \\ \{a\} & \{a\} & β_{1} ∧ (β_{10} ∨ β_{19}) \\ \{b, c\} & \{a\} & \begin{matrix}(β_{2} ∨ β_{3})∧ \\ (β_{11} ∨ β_{12} ∨ β_{20} ∨ β_{21}) \end{matrix} \\ \{a\} & \{b, c\} & \begin{matrix}(β_{4} ∨ β_{7})∧ \\ (β_{13} ∨ β_{16} ∨ β_{22} ∨ β_{25}) \end{matrix} \\ \{b, c\} & \{b, c\} & \begin{matrix}(β_{5} ∨ β_{6} ∨ β_{8} ∨ β_{9})∧ \\ ( & \begin{matrix}β_{14} ∨ β_{15} ∨ β_{17} ∨ β_{18}∨ \\ β_{23} ∨ β_{24} ∨ β_{26} ∨ β_{27} \end{matrix} & ) \end{matrix} \end{matrix} \\ (□R|B)⇂ k = \begin{matrix}i & j \\ \{a\} & ∅ & 1 ∨ 1 \\ \{b, c\} & ∅ & 1 ∨ 1 \\ \{a\} & \{a\} & β_{1} ∨ (β_{10} ∧ β_{19}) \\ \{b, c\} & \{a\} & \begin{matrix}(β_{2} ∧ β_{3})∨ \\ (β_{11} ∧ β_{12} ∧ β_{20} ∧ β_{21}) \end{matrix} \\ \{a\} & \{b, c\} & \begin{matrix}(β_{4} ∧ β_{7})∨ \\ (β_{13} ∧ β_{16} ∧ β_{22} ∧ β_{25}) \end{matrix} \\ \{b, c\} & \{b, c\} & \begin{matrix}(β_{5} ∧ β_{6} ∧ β_{8} ∧ β_{9})∨ \\ ( & \begin{matrix}β_{14} ∧ β_{15} ∧ β_{17} ∧ β_{18}∧ \\ β_{23} ∧ β_{24} ∧ β_{26} ∧ β_{27} \end{matrix} & ) \end{matrix} \end{matrix}  (□R|B)↾ k = \begin{matrix}i & j \\ \{a\} & ∅ & 1 ∧ 1 \\ \{b, c\} & ∅ & 1 ∧ 1 \\ \{a\} & \{a\} & β_{1} ∧ (β_{10} ∧ β_{19}) \\ \{b, c\} & \{a\} & \begin{matrix}(β_{2} ∧ β_{3})∧ \\ (β_{11} ∧ β_{12} ∧ β_{20} ∧ β_{21}) \end{matrix} \\ \{a\} & \{b, c\} & \begin{matrix}(β_{4} ∧ β_{7})∧ \\ (β_{13} ∧ β_{16} ∧ β_{22} ∧ β_{25}) \end{matrix} \\ \{b, c\} & \{b, c\} & \begin{matrix}(β_{5} ∧ β_{6} ∧ β_{8} ∧ β_{9})∧ \\ ( & \begin{matrix}β_{14} ∧ β_{15} ∧ β_{17} ∧ β_{18}∧ \\ β_{23} ∧ β_{24} ∧ β_{26} ∧ β_{27} \end{matrix} & ) \end{matrix} \end{matrix} \end{matrix}}

Part XVII

Block model construction and the decidablility of predicate logic

39 Para–bi–tables and their algebra

39.0.2 Repetition ( ; 𝅝 ; ) Recall Thalg xxx , that C^{2} := C × C, for every class C. ( ; 𝅝 ; ) Recall Thalg xxx , that [x|I] is the univalent record [i ↦ x|i ∈ I],

i.e. a record with the same value x for every index i ∈ I. ( ; 𝅝 ; ) Recall Thalg xxx , that for each pair ⟨x, y⟩ we have ⟨x, y⟩(1) = x

and ⟨x, y⟩(2) = y

39.0.3 Definition A para–bi–table is a function

T : ⊗[Σ|I] ⟶ Prop (A)^{2}

based on three finite and pairwise disjunct sets of identifiers:

(1) @ (T) := I is the attribute class

(2) Bsy (T) := Σ is the block symbol class

(3) Atf (T) := A is the atom (formula) class

For every para–bi–table T : ⊗[Σ|I] ⟶ Prop (A)^{2} we define

T^{□} := [ \begin{matrix}⊗[Σ|I] ⟶ Prop (A) \\ Y ↦ T (Y) (1) \end{matrix} ]

the box para–table of T

T^{♢} := [ \begin{matrix}⊗[Σ|I] ⟶ Prop (A) \\ Y ↦ T (Y) (1) \end{matrix} ]

the diamond para–table of T If T : ⊗[Σ|I] ⟶ Prop (A)^{2} is a para–bi–table with

I = {i_{1}, …, i_{n}} and Σ = {S_{1}, …, S_{k}} then T is often represented by its (para–bi–table) diagram

i1 … in
S1 … S1 T □ ([\begin{matrix}i1 & ↦ & S1 \\ ⋮ & & ⋮ \\ in & ↦ & S1 \end{matrix} ])  T ♢ ([\begin{matrix}i1 & ↦ & S1 \\ ⋮ & & ⋮ \\ in & ↦ & S1 \end{matrix} ])
S2 … S1 T □ ([\begin{matrix}i1 & ↦ & S2 \\ ⋮ & & ⋮ \\ in & ↦ & S1 \end{matrix} ])  T ♢ ([\begin{matrix}i1 & ↦ & S2 \\ ⋮ & & ⋮ \\ in & ↦ & S1 \end{matrix} ])
⋮  ⋮  ⋮  ⋮
Sk-1 … Sk T □ ([\begin{matrix}i1 & ↦ & Sk-1 \\ ⋮ & & ⋮ \\ in & ↦ & Sk \end{matrix} ]) T ♢ ([\begin{matrix}i1 & ↦ & Sk-1 \\ ⋮ & & ⋮ \\ in & ↦ & Sk \end{matrix} ])
Sk … Sk T □ ([\begin{matrix}i1 & ↦ & Sk \\ ⋮ & & ⋮ \\ in & ↦ & Sk \end{matrix} ])  T ♢ ([\begin{matrix}i1 & ↦ & Sk \\ ⋮ & & ⋮ \\ in & ↦ & Sk \end{matrix} ])

39.0.4 Example

*** CONTINUE HERE ***

Part XVIII

Operationalizators and applicators

40 Various functionalizations and relationalizations

40.1 Ordinary functionalizations and relationalizations

40.1.1 Repetition

( ; 𝅝 ; ) Recall ??, that the ordinary operator class of a given class Car of carrier classes is

Oops (Car) = \{ \begin{matrix}c : C, \\ f : D_{1} × … × D_{n} −−→ C, \\ R : D_{1} ↭ … ↭ D_{n} \\ C, D_{1}, …, D_{n} ∈ Car \end{matrix} \}

( ; 𝅝 ; ) Recall, that for every partial function

f : D_{1} × … × D_{n} −−→ C

we have dom (f) = D_{1} × … × D_{n} the domain of f cod (f) = C the codomain of f

( ; 𝅝 ; ) Also recall, that for every ordinary relation

R : D_{1} ↭ … ↭ D_{n}

we have dom (R) = D_{1} × … × D_{n} the domain of R

40.1.2 Definition

For every ordinary operator o ∈ Oops (Car), Car a given class of carrier classes, we define

dom (o) the domain of o

cod (o) the codomain o as follows:

(i) If o is a constant of type C, then

\begin{aligned}dom (o) & := & ⟨⟩ \\ cod (o) & := & C \end{aligned}

(ii) If o : D_{1} × … × D_{n} −−→ C is a partial function, then

\begin{aligned}dom (o) & = & D_{1} × … × D_{n} \\ cod (o) & = & C \end{aligned}

as already defined. (iii) If o : D_{1} ↭ … ↭ D_{n} is an n–ary relation, then

dom (o) = D_{1} × … × D_{n}

as already defined, and

cod (o) := ⟨⟩

40.1.3 Definition

For every ordinary operator o ∈ Oops (Car), Car a given class of carrier classes, we define

todom (o) the total domain of o as follows:

(i) If o is a constant of type C, then

todom (o) := C

(ii) If o : D_{1} × … × D_{n} −−→ C is a partial function, then

todom (o) := D_{1} × … × D_{n} × C

(iii) If o : D_{1} ↭ … ↭ D_{n} is an n–ary relation, then

todom (o) := D_{1} × … × D_{n}

*** examples ***

40.1.4 Definition

For every ordinary operator o ∈ Oops (Car), Car a given class of carrier classes, we define

ofun (o) the ordinary function(alization) of o

orel (o) the ordinary relation(alization) of o as follows:

(i) If o : C is a constant, then

ofun (o) := [ \begin{matrix}\{⟨⟩\} ⟶ C \\ ⟨⟩ ↦ o \end{matrix} ]

orel (o) := [ \begin{matrix}PtyC \\ \{o\} \end{matrix} ]

(ii) If o : D_{1} × … × D_{n} −−→ C is a partial function, then

ofun (o) := o

orel (o) := [ \begin{matrix}D_{1} ↭ … ↭ D_{n} ↭ C \\ ⟨x_{1}, …, x_{n}, y⟩ ↝ o (x_{1}, …, x_{n}) = y \end{matrix} ]

(iii) If o : D_{1} ↭ … ↭ D_{n} is an n–ary relation, then

ofun (o) := [ \begin{matrix}D_{1} × … × D_{n} −−→ \{⟨⟩\} \\ ⟨x_{1}, …, x_{n}⟩ \\ ↦ \begin{cases}⟨⟩ & if ⟨x_{1}, …, x_{n}⟩ ∈ o \\ undefined & else \end{cases} \end{matrix} ]

orel (o) := o

40.1.5 Example

Given a ternary functions on the naturals numbers

f := [ \begin{matrix}ℕ × ℕ × ℕ ⟶ ℕ \\ ⟨a, b, c⟩ ↦ a · b + c \end{matrix} ]

The ordinary relationalization of f is

orel (f) = [ \begin{matrix}ℕ ↭ ℕ ↭ ℕ ↭ ℕ \\ ⟨a, b, c, d⟩ ↦ a · b + c = d \end{matrix} ]

40.1.6 Lemma

orel (ofun (R)) = R for each R : D_{1} ↭ … ↭ D_{n}

40.1.7 Proof of 44.1.6

*** CONTINUE HERE ***

40.1.8 Remark

If R : D_{1} ↭ … ↭ D_{n} and we would have defined ofun (R) : D_{1} ×…×D_{n−1} −−→ D_{n}, then we would have lost some information and 44.1.6 would not be true in general anymore.

*** example ***

*** examples ***

40.2 Schematic functionalizations and relationalizations

40.2.1 Repetition

*** on identifiers *** *** the ◯ 1 . ◯ 2 notation ***

40.2.2 Definition

Let ℑ be an interpretation. For every operator symbol o ∈ Osy (ℑ) we define two schemas

dox_{ℑ}(o) the domain schema of o (under ℑ)

cox_{ℑ}(o) the codomain schema of o (under ℑ)

as follows:

(i) If o is a constant with sig_{ℑ}(o) = C, then

dox_{ℑ}(o) := ⟨⟩
cox_{ℑ}(o) := [ o ↦ car_{ℑ}(C) ]

(ii) If o is a (partial) function symbol with sig_{ℑ}(o) = ⟨⟨D_{1}, …, D_{n}⟩, C⟩, then

dox_{ℑ}(o) := [ \begin{matrix}o.1 & ↦ & car_{ℑ}(D_{1}) \\ ⋮ & & ⋮ \\ o.n & ↦ & car_{ℑ}(D_{n}) \end{matrix} ]

cox_{ℑ}(o) := [ o ↦ car_{ℑ}(C) ]

(iii) If o is a relation symbol with sig_{ℑ}(o) = ⟨D_{1}, …, D_{n}⟩, then

dox_{ℑ}(o) := [ \begin{matrix}o.1 & ↦ & car_{ℑ}(D_{1}) \\ ⋮ & & ⋮ \\ o.n & ↦ & car_{ℑ}(D_{n}) \end{matrix} ]

cox_{ℑ}(o) := ⟨⟩

We also define

x_{ℑ}(o) := dox_{ℑ}(o) ˙∨ cox_{ℑ}(o)

the (overall) schema of o (under ℑ)

40.2.3 Example

*** CONTINUE HERE ***

40.2.4 Lemma

dox_{ℑ}(o) ≬ cox_{ℑ}(o) for each o ∈ Osy (ℑ).

40.2.5 Proof of 44.2.4

*** CONTINUE HERE ***

40.2.6 Definition

Let ℑ be an interpretation. For every operator symbol o ∈ Osy (ℑ) we define

xfun_{ℑ}(o) : ⊗dox_{ℑ}(o) −−→ ⊗cox_{ℑ}(o)

the schematic functionalization of o in ℑ as follows:

(i) If o is a constant with

dox_{ℑ}(o) = ⟨⟩ and cox_{ℑ}(o) = [ o ↦ C ]

then

xfun_{ℑ}(o) := [ \begin{matrix}⊗dox_{ℑ}(o) −−→ ⊗cox_{ℑ}(o) \\ ⟨⟩ ↦ op_{ℑ}(o) \end{matrix} ]

(ii) If o is a (partial) function symbol with

dox_{ℑ}(o) = [ \begin{matrix}o.1 & ↦ & D_{1} \\ ⋮ & & ⋮ \\ o.n & ↦ & D_{n} \end{matrix} ] and cox_{ℑ}(o) = [ o ↦ C ]

then xfun_{ℑ}(o) :=

⊗dox_{ℑ}(o) −−→ ⊗cox_{ℑ}(o)

[ \begin{matrix}o.1 & ↦ & x_{1} \\ ⋮ & & ⋮ \\ o.n & ↦ & x_{n} \end{matrix} ] ↦ [ o ↦ op_{ℑ}(o)(x_{1}, …, x_{n}) ]

(iii) If o is a relation symbol

dox_{ℑ}(o) = [ \begin{matrix}o.1 & ↦ & D_{1} \\ ⋮ & & ⋮ \\ o.n & ↦ & D_{n} \end{matrix} ] and cox_{ℑ}(o) = ⟨⟩

then xfun_{ℑ}(o) :=

⊗dox_{ℑ}(o) −−→ ⊗cox_{ℑ}(o)

[ \begin{matrix}o.1 & ↦ & x_{1} \\ ⋮ & & ⋮ \\ o.n & ↦ & x_{n} \end{matrix} ] ↦ \{ \begin{matrix}⟨⟩ if ⟨x_{1}, …, x_{n}⟩ ∈ op_{ℑ}(o) \\ undefined & else \end{matrix}

40.2.7 Definition Let ℑ be an interpretation. For every operator symbol o ∈ Osy (ℑ) we define

xrel_{ℑ}(o) : Rel (x_{ℑ}(o))

the schematic relationalization of o in ℑ as follows:

(i) If o is a constant with

dox_{ℑ}(o) = ⟨⟩ and cox_{ℑ}(o) = [ o ↦ C ]

then

xrel_{ℑ}(o) := [ \begin{matrix}[ o ↦ car_{ℑ}(o) ] \\ \{[ o ↦ op_{ℑ}(o) ]\} \end{matrix} ] (ii) If o is a (partial) function symbol with

dox_{ℑ}(o) = [ \begin{matrix}o.1 & ↦ & D_{1} \\ ⋮ & & ⋮ \\ o.n & ↦ & D_{n} \end{matrix} ] and cox_{ℑ}(o) = [ o ↦ C ]

then xrel_{ℑ}(o) :=

[ \begin{matrix}o.1 & ↦ & D_{1} \\ ⋮ & & ⋮ \\ o.n & ↦ & D_{n} \\ o & ↦ & C \end{matrix} ]

[ \begin{matrix}o.1 & ↦ & x_{1} \\ ⋮ & & ⋮ \\ o.n & ↦ & x_{n} \\ o & ↦ & y \end{matrix} ] ↝ op_{ℑ}(o)(x_{1}, …, x_{n}) = y

(iii) If o is a relation symbol with

dox_{ℑ}(o) = [ \begin{matrix}o.1 & ↦ & D_{1} \\ ⋮ & & ⋮ \\ o.n & ↦ & D_{n} \end{matrix} ] and cox_{ℑ}(o) = ⟨⟩

then xrel_{ℑ}(o) :=

[ \begin{matrix}o.1 & ↦ & D_{1} \\ ⋮ & & ⋮ \\ o.n & ↦ & D_{n} \end{matrix} ]

[ \begin{matrix}o.1 & ↦ & x_{1} \\ ⋮ & & ⋮ \\ o.n & ↦ & x_{n} \end{matrix} ] ↝ ⟨x_{1}, …, x_{n}⟩ ∈ op_{ℑ}(o)

40.2.8 Example

Given the interpretation (symbolized structure)

ℑ = [ \begin{matrix}S ↦ & ℤ \\ zero ↦ & 0 : ℤ \\ unit ↦ & 1 : ℤ \\ add ↦ & [\begin{matrix}ℤ × ℤ ⟶ ℤ \\ ⟨a, b⟩ ↦ a + b \end{matrix}] \\ mult ↦ & [\begin{matrix}ℤ × ℤ ⟶ ℤ \\ ⟨a, b⟩ ↦ a · b \end{matrix}] \\ min ↦ & [\begin{matrix}ℤ ⟶ ℤ \\ a ↦ -a \end{matrix}] \\ Smeq ↦ & [\begin{matrix}ℤ ↭ ℤ \\ ⟨a, b⟩ ↝ a ≤ b \end{matrix}] \end{matrix} ]

The schematic relationalizations of its operators are:

PredLogInTheoAlgRel 248

xrel_{ℑ}(zero) = [ \begin{matrix}[ zero ↦ ℤ] \\ [ zero ↦ a] ↝ a = 0 \end{matrix} ] xrel_{ℑ}(unit) = [ \begin{matrix}[ unit ↦ ℤ] \\ [ unit ↦ a] ↝ a = 1 \end{matrix} ]

xrel_{ℑ}(add) = [ \begin{matrix}[ & add.1 ↦ ℤ add.2 ↦ ℤ add ↦ ℤ & ] \\ [ \begin{matrix}add.1 ↦ & a \\ add.2 ↦ & b \\ add ↦ & c \end{matrix} ] ↝ a + b = c \end{matrix} ]

xrel_{ℑ}(mult) = [ \begin{matrix}[ & mult.1 ↦ ℤ mult.2 ↦ ℤ mult ↦ ℤ & ] \\ [ \begin{matrix}mult.1 ↦ & a \\ mult.2 ↦ & b \\ mult ↦ & c \end{matrix} ] ↝ a · b = c \end{matrix} ]

xrel_{ℑ}(min) = [ \begin{matrix}[ & \begin{matrix}min.1 ↦ & ℤ \\ min ↦ & ℤ \end{matrix} & ] \\ [ \begin{matrix}min.1 ↦ & a \\ min ↦ & b \end{matrix} ] ↝ b = -a \end{matrix} ]

xrel_{ℑ}(Smeq) = [ \begin{matrix}[ & Smeq.1 ↦ ℤ Smeq.2 ↦ ℤ & ] \\ [ \begin{matrix}Smeq.1 ↦ & a \\ Smeq.2 ↦ & b \end{matrix} ] ↝ a ≤ b \end{matrix} ]

or in alternative generalized table notation these are: xrel_{ℑ}(zero) = \begin{matrix}zero : ℤ \\ 0 \end{matrix} xrel_{ℑ}(unit) = \begin{matrix}unit : ℤ \\ 1 \end{matrix}

xrel_{ℑ}(add) = add.1 : ℤ add.2 : ℤ add : ℤ a  b  c a + b = c
xrel_{ℑ}(mult) = mult.1 : ℤ mult.2 : ℤ mult : ℤ a  b  c a · b = c

xrel_{ℑ}(min) = \begin{matrix}min.1 : ℤ & min : ℤ \\ a & b \\ b = -a \end{matrix} xrel_{ℑ}(Smeq) = Smeq.1 : ℤ Smeq.2 : ℤ a b a ≤ b The schematic functionalizations of its operators are: ^{37}

xfun_{ℑ}(zero) = [ \begin{matrix}⊗⟨⟩ ⟶ ⊗[ zero ↦ ℤ] \\ ⟨⟩ ↦ [ zero ↦ 0 ] \end{matrix} ]

xfun_{ℑ}(unit) = [ \begin{matrix}⊗⟨⟩ ⟶ ⊗[ unit ↦ ℤ] \\ ⟨⟩ ↦ [ unit ↦ 1 ] \end{matrix} ]

xfun_{ℑ}(add) = [ \begin{matrix}⊗ [ \begin{matrix}add.1 ↦ & ℤ \\ add.2 ↦ & ℤ \end{matrix} ] ⟶ ⊗[ add ↦ ℤ] \\ [ \begin{matrix}add.1 ↦ & a \\ add.2 ↦ & b \end{matrix} ] ↦ [ add ↦ a + b] \end{matrix} ]

xfun_{ℑ}(mult) = [ \begin{matrix}⊗ [ \begin{matrix}mult.1 ↦ & ℤ \\ mult.2 ↦ & ℤ \end{matrix} ] ⟶ ⊗[ mult ↦ ℤ] \\ [ \begin{matrix}mult.1 ↦ & a \\ mult.2 ↦ & b \end{matrix} ] ↦ [ mult ↦ a · b] \end{matrix} ]

xfun_{ℑ}(min) = [ \begin{matrix}⊗[ min.1 ↦ ℤ] ⟶ ⊗[ min ↦ ℤ] \\ [ min.1 ↦ a] ↦ [ min ↦ a] \end{matrix} ]

xfun_{ℑ}(Smeq) = [ \begin{matrix}⊗ [ \begin{matrix}Smeq.1 ↦ & ℤ \\ Smeq.2 ↦ & ℤ \end{matrix} ] −−→ ⊗⟨⟩ \\ [ \begin{matrix}Smeq.1 ↦ & a \\ Smeq.2 ↦ & b \end{matrix} ] ↦ \begin{cases}⟨⟩ & if a ≤ b \\ undefined & else \end{cases} \end{matrix} ]

40.3 The relationalization of a symbolized structure / an interpretation

40.3.1 Definition

xrel(ℑ) := ⊙{xrel_{ℑ}(o) | o ∈ Osy (ℑ)} the relationalization of ℑ

37Recall, that ⊗⟨⟩ = {⟨⟩}.

41 Operator modifications

41.1 Curry–functions

41.1.1 Repetition

Recall: ( ; 𝅝 ; ) Function appplications are left–associative by default, i.e.

f(x_{1})(x_{2}) … (x_{n})

stands for

(((f(x_{1}))(x_{2}))(x_{3}))(x_{4})

( ; 𝅝 ; ) The function type constructor is right–associative, i.e.

A_{1} ⟶ A_{2} ⟶ A_{3} ⟶ A_{n}

stands for

A_{1} ⟶ (A_{2} ⟶ (A_{3} ⟶ A_{n}))

41.1.2 Introduction

The “curryfication” or “schönfinkeln” of an ordinary function

f : D_{1} × … × D_{n} ⟶ C

is the transformation of f into

f′ : D_{1} ⟶ … ⟶ D_{n} ⟶ C

such that

f(a_{1}, …, a_{n}) = f′(a_{1})(a_{2}) … (a_{n})

for all arguments.

For example, consider the usual addition on integers

f = [\begin{matrix}ℤ × ℤ ⟶ ℤ \\ ⟨a, b⟩ ↦ a + b \end{matrix}]

The “curryfication” of f is

f′ = [\begin{matrix}ℤ ⟶ ℤ ⟶ ℤ \\ a ↦ [ \begin{matrix}ℤ ⟶ ℤ \\ b ↦ a + b \end{matrix} ] \end{matrix}]

We have e.g.

f′(5)(3) = [\begin{matrix}ℤ ⟶ ℤ ⟶ ℤ \\ a ↦ [ \begin{matrix}ℤ ⟶ ℤ \\ b ↦ a + b \end{matrix} ] \end{matrix}](5)(3)

= [\begin{matrix}ℤ ⟶ ℤ \\ b ↦ 5 + b \end{matrix}](3)

= 8
= f(5, 3)

The curry function f′ allows us to partition the arguments ⟨a, b⟩ of f into pieces and compute the results piecewise: f′(5) is a function of type ℤ ⟶ ℤ and f′(3)(5) is an integer.

The following recursive definition 45.1.3 curryfication is a little more general, as it allows the original function to be a partial function. And in 45.1.12 we extend the same ideal to ordinary relations.

41.1.3 Definition

For every partial function f : D_{1} × … × D_{n} −−→ C we define

curry (f) : D_{1} ⟶ … ⟶ D_{n} −−→ C

the curry function of f as follows:

(i) If n = 1 then

curry (f) := f

(ii) If n > 1 then

curry (f) :=

[ \begin{matrix}D_{1} ⟶ D_{2} ⟶ … ⟶ D_{n} −−→ C \\ x_{1} ↦ curry ([ \begin{matrix}D_{2} × … × D_{n} −−→ C \\ ⟨x_{2}, …, x_{n}⟩ ↦ f (x_{1}, …, x_{n}) \end{matrix} ]) \end{matrix} ]

41.1.4 Example

Given a ternary functions on the integers

f := [ \begin{matrix}ℤ × ℤ × ℤ ⟶ ℤ \\ ⟨a, b, c⟩ ↦ a · b + c \end{matrix} ]

An example application of f to one member of its domain is

f(2, 3, 4) = 2 · 3 + 4 = 10

The curry function of f is given by

curry (f) = [ \begin{matrix}ℤ ⟶ ℤ ⟶ ℤ ⟶ ℤ \\ a ↦ curry ([ \begin{matrix}ℤ × ℤ ⟶ ℤ \\ ⟨b, c⟩ ↦ a · b + c \end{matrix} ]) \end{matrix} ]

= [ \begin{matrix}ℤ ⟶ ℤ ⟶ ℤ ⟶ ℤ \\ a ↦ [ \begin{matrix}ℤ ⟶ ℤ ⟶ ℤ \\ b ↦ [ \begin{matrix}ℤ ⟶ ℤ \\ c ↦ a · b + c \end{matrix} ] \end{matrix} ] \end{matrix} ]

Example applications are

curry (f) (2) = [ \begin{matrix}ℤ ⟶ ℤ ⟶ ℤ \\ b ↦ [ \begin{matrix}ℤ ⟶ ℤ \\ c ↦ 2 · b + c \end{matrix} ] \end{matrix} ]

curry (f) (2)(3) = [ \begin{matrix}ℤ ⟶ ℤ \\ c ↦ 6 + c \end{matrix} ]

curry (f) (2)(3)(4) = 10

41.1.5 Lemma

Let f : D_{1} × … × D_{n} −−→ C.

( ; 𝅝 ; ) For every ⟨x_{1}, …, x_{n}⟩ ∈ D_{1} × … × D_{n} holds:

f (x_{1}, …, x_{n}) = curry (f) (x_{1})(x_{2}) … (x_{n}) ( ; 𝅝 ; ) If f is a total function, i.e. if f : D_{1} × … × D_{n} ⟶ C, then

curry (f) : D_{1} ⟶ … ⟶ D_{n} ⟶ C.

41.1.6 Proof of 45.1.5

*** CONTINUE HERE ***

41.1.7 Definition

For every R : D_{1} ↭ … ↭ D_{n} with n ≥ 2 we define

curry (R) : D_{1} ⟶ … ⟶ D_{n−1} −−→ D_{n}

the curry function of R as follows:

(i) If n = 2 then

curry (R) := [ \begin{matrix}D_{1} −−→ D_{2} \\ x ↦ the y ∈ D_{2} with ⟨x, y⟩ ∈ R \end{matrix} ]

(ii) If n > 2 then

curry (R) :=

[ \begin{matrix}D_{1} ⟶ … ⟶ D_{n−1} −−→ D_{n} \\ x_{1} ↦ curry ([ \begin{matrix}D_{2} ↭ … ↭ D_{n} \\ ⟨x_{2}, …, x_{n}⟩ ↝ ⟨x_{1}, …, x_{n}⟩ ∈ R \end{matrix} ]) \end{matrix} ]

41.1.8 Example Let us consider

R := [ \begin{matrix}ℤ ↭ ℤ ↭ ℤ ↭ ℤ \\ ⟨a, b, c, d⟩ ↝ a · b + c = d \end{matrix} ]

then

curry (R)

= [ \begin{matrix}ℤ ⟶ ℤ ⟶ ℤ −−→ ℤ \\ a ↦ curry ([ \begin{matrix}ℤ ↭ ℤ ↭ ℤ \\ ⟨b, c, d⟩ ↝ a · b + c = d \end{matrix} ]) \end{matrix} ]

= [ \begin{matrix}ℤ ⟶ ℤ ⟶ ℤ −−→ ℤ \\ a ↦ [ \begin{matrix}ℤ ⟶ ℤ −−→ ℤ \\ b ↦ curry ([ \begin{matrix}ℤ ↭ ℤ \\ ⟨c, d⟩ ↝ a · b + c = d \end{matrix} ]) \end{matrix} ] \end{matrix} ]

= [ \begin{matrix}ℤ ⟶ ℤ ⟶ ℤ −−→ ℤ \\ a ↦ [ \begin{matrix}ℤ ⟶ ℤ −−→ ℤ \\ b ↦ [ \begin{matrix}ℤ −−→ ℤ \\ c ↦ the d ∈ ℤ with a · b + c = d \end{matrix} ] \end{matrix} ] \end{matrix} ]

41.1.9 Remark

Note, that the relation R from example 45.1.8 is the ordinary relationalization of the example function f in 45.1.4, i.e. R = orel (f), and that both f and R have the same curry function. This is a general fact.

41.1.10 Lemma

curry (orel (f)) = curry (f) for every f : D_{1} × … × D_{n} ⟶ C.

41.1.11 Proof of 45.1.10

*** CONTINUE HERE ***

*** alternative version of curry (R) ***

PredLogInTheoAlgRel 251

41.1.12 Definition For every R : D_{1} ↭ … ↭ D_{n} with n ≥ 1 we define

curry (R) : D_{1} ⟶ … ⟶ D_{n} −−→ {⟨⟩}

the curry function of R as follows:

(i) If n = 1 then

curry (R) := [ \begin{matrix}D_{1} −−→ \{⟨⟩\} \\ x ↦ \begin{cases}⟨⟩ & if x ∈ R \\ undefined & if x ∉ R \end{cases} \end{matrix} ]

(ii) If n > 2 then curry (R) :=

[ \begin{matrix}D_{1} ⟶ … ⟶ D_{n} −−→ \{⟨⟩\} \\ x_{1} ↦ curry ([ \begin{matrix}D_{2} ↭ … ↭ D_{n} \\ ⟨x_{2}, …, x_{n}⟩ ↝ ⟨x_{1}, …, x_{n}⟩ ∈ R \end{matrix} ]) \end{matrix} ]

42 Applications

42.1 Record applicators

42.1.1 Definition

Let R = [X, Γ] be a relation with schema X = [X_{i}|i ∈ I]. We define

R ∘ ◯ 1 := [ \begin{matrix}⊛X ⟶ Prel (X) \\ ξ ↦ [ \begin{matrix}pr & (X, I \ dom (ξ)) \\ υ ↝ ξ ˙∨ υ ∈ Γ \end{matrix} ] \end{matrix} ]

the record applicator of R

For each relation R and records ξ_{1}, …, ξ_{n} we write

R ∘ ξ_{1} ∘ … ∘ ξ_{n} for (… ((R ∘ ξ_{1}) ∘ ξ_{2}) ∘ …) ∘ ξ_{n}

whenever the right side is defined.

42.1.2 Example

Once more, let us take our example relation

R := [ \begin{matrix}ℤ ↭ ℤ ↭ ℤ ↭ ℤ \\ ⟨a, b, c, d⟩ ↝ a · b + c = d \end{matrix} ]

Recall Thalg 9.2.1 , that each tuple is a special record. In particular

⟨a, b, c, d⟩ = [ \begin{matrix}1 ↦ & a \\ 2 ↦ & b \\ 3 ↦ & c \\ 4 ↦ & c \end{matrix} ] and ⟨ℤ, ℤ, ℤ, ℤ⟩ = [ \begin{matrix}1 ↦ & ℤ \\ 2 ↦ & ℤ \\ 3 ↦ & ℤ \\ 4 ↦ & ℤ \end{matrix} ]

Thus (see Thalg 17.3.1 ), each ordinary relation like the example R is a special schematic relation

R = [ \begin{matrix}[ & \begin{matrix}1 ↦ & ℤ \\ 2 ↦ & ℤ \\ 3 ↦ & ℤ \\ 4 ↦ & ℤ \end{matrix} & ] \\ [ \begin{matrix}1 ↦ & a \\ 2 ↦ & b \\ 3 ↦ & c \\ 4 ↦ & d \end{matrix} ] ↝ a · b + c = d \end{matrix} ]

in schema–predicator form ( Thalg 17.3.4 ), which is

R = \begin{aligned}1 : ℤ & 2 : ℤ & 3 : ℤ & 4 : ℤ \\ a & b & c & d \\ & a · b + c = d \end{aligned}

in generalized table notation ( Thalg 17.5.8 ).

Now if ξ = ⟨ξ_{1}, ξ_{2}, ξ_{3}, ξ_{4}⟩ ∈ ⊗X = ℤ^{4} then

R ∘ ξ = [ \begin{matrix}⟨⟩ \\ ⟨⟩ ↝ ξ_{1} · ξ_{2} + ξ_{3} = ξ_{4} \end{matrix} ]

Recall definition Thalg 19.3.1 , that

⊥ = [\begin{matrix}⟨⟩ \\ ⟨⟩ ↝ false \end{matrix}] = [\begin{matrix}⟨⟩ \\ ∅ \end{matrix}] and ⊤ = [\begin{matrix}⟨⟩ \\ ⟨⟩ ↝ true \end{matrix}] = [\begin{matrix}⟨⟩ \\ \{⟨⟩\} \end{matrix}]

so that

R ∘ ξ = \begin{cases}⊤ & if ξ_{1} · ξ_{2} + ξ_{3} = ξ_{4} \\ ⊥ & else \end{cases}

For example

R ∘ ⟨7, −6, 13, −21⟩ = ⊤ and R ∘ ⟨−5, −5, −5, −5⟩ = ⊥

This way, the record application is a generalization of the membership relation Thalg 17.2.5 , i.e.

R ∘ ξ = ⊤ iff ξ ∈ R for all ξ ∈ ⊗X

But the application is not only a variation of the membership relation, it is a true generalization, because R ∘ ξ is not only defined for ξ ∈ ⊗X, but for all ξ ∈ ⊛X. For example,

R ∘ ⟨7, −6⟩ = R ∘ [ \begin{matrix}1 ↦ & 7 \\ 2 ↦ & −6 \end{matrix} ] = \begin{matrix}3 : ℤ & 4 : ℤ \\ c & d \\ −42 + c = d \end{matrix}

and

R ∘ ⟨7⟩ = R ∘ [ 1 ↦ 7 ] = \begin{matrix}2 : ℤ & 3 : ℤ & 4 : ℤ \\ b & c & d \\ 7 · b + c = d \end{matrix}

Another property of the application is the fact, that its arguments can be split into distinct records. For example

[ \begin{matrix}1 ↦ & 7 \\ 2 ↦ & −6 \end{matrix} ] = [ 1 ↦ 7 ] ˙∨ [ 2 ↦ −6 ]

and

R ∘ [ 1 ↦ 7 ] ∘ [ 2 ↦ −6 ] = \begin{matrix}2 : ℤ & 3 : ℤ & 4 : ℤ \\ b & c & d \\ 7 · b + c = d \end{matrix} ∘ [ 2 ↦ −6 ]

= \begin{matrix}3 : ℤ & 4 : ℤ \\ c & d \\ −42 + c = d \end{matrix}

= R ∘ [ \begin{matrix}1 ↦ & 7 \\ 2 ↦ & −6 \end{matrix} ]

Besides, the application is commutative in the sense that e.g.

R ∘ [ 1 ↦ 7 ] ∘ [ 2 ↦ −6 ] = R ∘ [ 2 ↦ −6 ] ∘ [ 1 ↦ 7 ]

42.1.3 Lemma

For every relation R = [X, Γ] and each ξ ∈ ⊛X holds:

(1) R ∘ ξ = ⊤ iff ξ ∈ R

(2) R ∘ ξ = ⊥ iff ξ ∉ R

42.1.4 Proof of 46.1.3

Let X = [X_{i}|i ∈ I] and ξ = [ξ_{j}|j ∈ J]. According to definition Thalg 12.1.2 , ξ ∈ ⊛X means that J ⊆ I. There is

R ∘ ξ ∈ {⊥, ⊤} ⇔ R ∘ ξ ∈ Rel (⟨⟩) due to Thalg 17.5.7 and 19.3.1

⇔ x (R ∘ ξ) = ⟨⟩

⇔ pr (X, I \ J) = ⟨⟩ due to def. 46.1.1 of R ∘ ξ

⇔ J = I ⇔ ξ ∈ ⊗X

And if indeed ξ ∈ ⊗X, then

R ∘ ξ

= [\begin{matrix}pr & (X, I \ I) \\ υ ↝ ξ ˙∨ υ ∈ Γ \end{matrix}] according to def. 46.1.1

= [\begin{matrix}⟨⟩ \\ ⟨⟩ ↝ ξ ˙∨ ⟨⟩ ∈ Γ \end{matrix}]

= [\begin{matrix}⟨⟩ \\ ⟨⟩ ↝ ξ ∈ Γ \end{matrix}] due to Thalg 11.5.1(5)(d)

= \begin{cases}⊤ & if ξ ∈ Γ, i.e. if ξ ∈ R \\ ⊥ & if ξ ∉ Γ, i.e. if ξ ∉ R \end{cases}

42.1.5 Repetition

Recall Thalg 10.3.3 and 10.3.2 , that ξ, υ, ζ are pairwise distinct, written ξ ≬ υ ≬ ζ iff their domains dom (ξ) , dom (υ) , dom (ζ) are pairwise disjunct.

42.1.6 Lemma

Let R = [X, Γ] be a relation. Then

(1) R ∘ ⟨⟩ = R If ξ_{1}, …, ξ_{n} ∈ ⊛X are pairwise distinct, then

(2) R ∘ ξ_{1} ∘ … ∘ ξ_{n} = R ∘ (ξ_{1} ˙∨ … ˙∨ ξ_{n}) For every bijection f : {1, …, n} ⟶ {1, …, n} holds

(3) R ∘ ξ_{1} ∘ … ∘ ξ_{n} = R ∘ ξ_{f(1)} ∘ … ∘ ξ_{f(n)} 42.1.7 Proof of 46.1.6

Let X = [X_{i}|i ∈ I].

(1) R ∘ ⟨⟩ = [\begin{matrix}pr & (X, I \ ∅) \\ υ ↝ ⟨⟩ ˙∨ υ ∈ Γ \end{matrix}] = [\begin{matrix}X \\ υ ↝ υ ∈ Γ \end{matrix}] = R

Let dom (ξ_{i}) = J_{i} for each of the given ξ_{1}, …, ξ_{n} ∈ ⊛X. They ought to be pairwise distinct, which means that the J_{1}, …, J_{n} are pairwise disjunct subclasses of I. We obtain

(2) R ∘ ξ_{1} ∘ … ∘ ξ_{n} = (R ∘ ξ_{1}) ∘ ξ_{2} ∘ … ∘ ξ_{n}

= [ \begin{matrix}pr & (X, I \ J_{1}) \\ υ ↝ ξ_{1} ˙∨ υ ∈ Γ \end{matrix} ] ∘ ξ_{2} ∘ … ∘ ξ_{n}

= [ \begin{matrix}pr & (X, (I \ J_{1}) \ J_{2}) \\ υ ↝ ξ_{2} ˙∨ (ξ_{1} ˙∨ υ) ∈ Γ \end{matrix} ] ∘ ξ_{3} ∘ … ∘ ξ_{n}

= [ \begin{matrix}pr & (X, I \ (J_{1} ⊎ J_{2})) \\ υ ↝ ξ_{2} ˙∨ ξ_{1} ˙∨ υ ∈ Γ \end{matrix} ] ∘ ξ_{3} ∘ … ∘ ξ_{n}

= …

= [ \begin{matrix}pr & (X, I \ (J_{1} ⊎ … ⊎ J_{n})) \\ υ ↝ ξ_{n} ˙∨ … ˙∨ ξ_{1} ˙∨ υ ∈ Γ \end{matrix} ]

= [\begin{matrix}X \\ Γ \end{matrix}] ∘ (ξ_{1} ˙∨ … ˙∨ ξ_{n})

(3) R ∘ ξ_{1} ∘ … ∘ ξ_{n}

= [ \begin{matrix}pr & (X, I \ (J_{1} ⊎ … ⊎ J_{n})) \\ υ ↝ ξ_{n} ˙∨ … ˙∨ ξ_{1} ˙∨ υ ∈ Γ \end{matrix} ] as in (2)

= [ \begin{matrix}pr & (X, I \ (J_{1} ⊎ … ⊎ J_{n})) \\ υ ↝ ξ_{f(n)} ˙∨ … ˙∨ ξ_{f(1)} ˙∨ υ ∈ Γ \end{matrix} ]

because ˙∨ is commutative

= R ∘ ξ_{f(1)} ∘ … ∘ ξ_{f(n)}

42.1.8 Lemma

Let R = [X, Γ] be a relation with schema X = [X_{i}|i ∈ I] and let ξ = [ξ_{j}|j ∈ J] ∈ ⊛X. Then

R ∘ ξ = (R ⊓ [\begin{matrix}pr & (X, J) \\ & \{ξ\} \end{matrix}])⇂ J

42.1.9 Proof of 46.1.8

= [ \begin{matrix}X \\ ζ ↝ (ζ ∈ Γ and pr (ζ, I \ J) = ξ) \end{matrix} ]⇂ J

= ([ \begin{matrix}X \\ Γ \end{matrix} ] ⊓ [ \begin{matrix}pr & (X, J) \\ \{ξ\} \end{matrix} ])⇂ J

R ∘ ξ = [ \begin{matrix}pr & (X, I \ J) \\ υ ↝ ξ ˙∨ υ ∈ Γ \end{matrix} ] due to def. 46.1.1

42.1.10 Lemma Let R = [X, Γ] be a relation and ξ, υ ∈ ⊛X. Then

ξ ≤ υ implies R ∘ ξ ⊒ R ∘ υ

42.1.11 Proof of 46.1.10

*** CONTINUE HERE ***

42.2 Applications on relations

42.2.1 Definition For every schema X we define

◯ 1 ∘ ◯ 2 := [ \begin{matrix}Prel (X) × Prel (X) ⟶ Prel (X) \\ ⟨R, S⟩ ↦ (R ⊓ S) ⇓ (x (R) ▽ x (S)) \end{matrix} ]

the applicator (on Prel (X))

For every schema X and all R_{1}, …, R_{n} ∈ Prel (X) we define

R_{1} ∘ … ∘ R_{n} := \begin{cases}⊤ & if n = 0 \\ R_{1} & if n = 1 \\ (R_{1} ∘ R_{2}) ∘ R_{3} ∘ … ∘ R_{n} & if n ≥ 2 \end{cases}

42.2.2 Example Once more, let us take our example relation

R := [ \begin{matrix}ℤ ↭ ℤ ↭ ℤ ↭ ℤ \\ ⟨a, b, c, d⟩ ↝ a · b + c = d \end{matrix} ]

*** CONTINUE HERE *** *** Show, how the whole integers ring ℤ = ⟨ℤ, ≤, 0, 1, +, ·, -⟩ (also div etc) can be reconstructed from this R. ***

42.2.3 Lemma Let R = [X, Γ] be a relation.

(1) For every ξ = [ξ_{j}|j ∈ J] ∈ ⊛X holds:

R ∘ ξ = R ∘ [\begin{matrix}pr & (X, J) \\ & \{ξ\} \end{matrix}]

(2) For every S = [Y, Σ] ∈ Prel (X) holds:

R ∘ S = \begin{cases}⋃_{ξ∈Σ}(R ∘ ξ) & if Σ ≠ ∅ \\ ⊥_{X\Y} & if Σ = ∅ \end{cases}

42.2.4 Proof of 46.2.3 Let X = [X_{i}|i ∈ I].

(1) R ∘ ξ

= (R ⊓ [\begin{matrix}pr & (X, J) \\ & \{ξ\} \end{matrix}])⇂ J

= (R ⊓ [\begin{matrix}pr & (X, J) \\ & \{ξ\} \end{matrix}]) ⇓ pr (X, I \ J)

due to Thalg 21.6.4(1)(c)

= (R ⊓ [\begin{matrix}pr & (X, J) \\ & \{ξ\} \end{matrix}]) ⇓ (X ▽ pr (X, J))

due to def. Thalg 11.4.3 of ▽

= R ∘ [\begin{matrix}pr & (X, J) \\ & \{ξ\} \end{matrix}]

due to def. 46.2.1

(2) S = [Y, Σ] ∈ Prel (X) means that Y ∈ Proj (X), according to def. Thalg 17.8.1 of Prel (X), which means that Y = [X_{j}|j ∈ J], for some J ⊆ I, according to Thalg 10.2.6 .

( ; 𝅗𝅥 ; ) If Σ = ∅ then

R ∘ S

= ([\begin{matrix}X \\ Γ \end{matrix}] ⊓ [\begin{matrix}Y \\ ∅ \end{matrix} ]) ⇓ (X ▽ Y)

due to def. 46.2.1

= ([\begin{matrix}X \\ Γ \end{matrix}] ∩ [\begin{matrix}X \\ ∅ \end{matrix}]) ⇓ (X ▽ Y)

due def. Thalg 20.2.2 of ⊓

= [\begin{matrix}X \\ ∅ \end{matrix}] ⇓ (X \ Y)

= ⊥_{X\Y}

( ; 𝅗𝅥 ; ) If Σ ≠ ∅ then

R ∘ S

= (R ⊓ [\begin{matrix}Y \\ Σ \end{matrix}]) ⇓ (X ▽ Y)

due to def. 46.2.1 of R ∘ S

= (R ⊓ [\begin{matrix}Y \\ Σ \end{matrix}]) ⇓ pr (X, I \ J)

because X ▽ Y = X \ Y = pr (X, I \ J)

= (R ⊓ [\begin{matrix}Y \\ Σ \end{matrix}])⇂ J

due to Thalg 21.6.4(1)(c)

= (R ⊓ ∐_{ξ∈Σ}[\begin{matrix}Y \\ \{ξ\} \end{matrix}])⇂ J

because [Y, Γ] = ⋃ ; ξ∈Σ[\begin{matrix}Y \\ \{ξ\} \end{matrix}] = ∐ ; ξ∈Σ[\begin{matrix}Y \\ \{ξ\} \end{matrix}]

= ( ∐_{ξ∈Σ} (R ⊓ [\begin{matrix}Y \\ \{ξ\} \end{matrix}]))⇂ J

due to the distributivity law Thalg 20.4.21(11)

= ∐_{ξ∈Σ} ((R ⊓ [\begin{matrix}Y \\ \{ξ\} \end{matrix}])⇂ J)

due to Thalg 21.5.7(13)

= ∐_{ξ∈Σ}(R ∘ ξ)

due to 46.1.8

= ⋃_{ξ∈Σ}(R ∘ ξ)

due to def. Thalg 20.2.4 of ∐ with x (R ∘ ξ) = X \ Y for all ξ ∈ Σ

42.2.5 Lemma

Let X be a schema. For all R, S ∈ Prel (X) holds

(1) x (R ∘ S) = x (R) ▽ x (S)

(2) @ (R ∘ S) = @ (R) ▽ @ (S)

42.2.6 Proof of 46.2.5

(1) x (R ∘ S)

= x ((R ⊓ S) ⇓ (x (R) ▽ x (S)))

due to 46.1.8

due to def. 46.2.1 of R ∘ S

= x (R) ▽ x (S) due to Thalg 21.6.2(2)

(2) @ (R ∘ S)

= dom (x (R ∘ S)) due to def. Thalg 17.2.2 of @ (R ∘ S)

= dom (x (R) ▽ x (S)) due to (1)

= dom (x (R)) ▽ dom (x (S)) due to def. Thalg 11.4.3 of ▽

= @ (R) ▽ @ (S) due to def. Thalg 10.2.2 , again

42.2.7 Lemma

Let X be a schema and R, S ∈ Prel (X), where R = [Y, Γ] and S = [Z, Σ]. Then

R ∘ S = [ \begin{matrix}Y ▽ Z \\ \{υ ▽ ζ | υ ∈ Γ, ζ ∈ Σ, υ ⌣ ζ\} \end{matrix} ]

42.2.8 Proof of 46.2.7

Recall, that for every two compatible records ξ′ = [ξ′_{j}|j ∈ J′] and ξ′′ = [ξ′′_{j}|j ∈ J′] holds:

pr (ξ′ ∨ ξ′′, J′ ▽ J′′) = ξ′ ▽ ξ′′

We put J := dom (Y) ▽ dom (Z) and obtain:

R ∘ S = (R ⊓ S) ⇓ (Y ▽ Z)

due to def. 46.2.1 of ∘

= [ \begin{matrix}Y ∨ Z \\ \{υ ∨ ζ | υ ∈ Γ, ζ ∈ Σ, υ ⌣ ζ\} \end{matrix} ] ⇓ (Y ▽ Z)

due to 1.0.12 Thalg 20.4.34; see moresyntax.tex

= pr ([ \begin{matrix}Y ∨ Z \\ \{υ ∨ ζ | υ ∈ Γ, ζ ∈ Σ, υ ⌣ ζ\} \end{matrix} ], J)

due to Thalg 21.6.4(1)(a)

= [ \begin{matrix}pr & (Y ∨ Z, J) \\ \{pr (υ ∨ ζ, J) | υ ∈ Γ, ζ ∈ Σ, υ ⌣ ζ\} \end{matrix} ]

due to Thalg 21.2.2 and Thalg 16.5.1

= [ \begin{matrix}Y ▽ Z \\ \{υ ▽ ζ | υ ∈ Γ, ζ ∈ Σ, υ ⌣ ζ\} \end{matrix} ]

because J = dom (Y ▽ Z) = dom (υ ▽ ζ), for all υ ∈ Γ and ζ ∈ Σ

42.2.9 Lemma

Let R = [X, Γ] and S = [Y, Σ] be two relations with Y ≤ X. If I := @ (R) and J := @ (S) then

R ∘ S = [ \begin{matrix}X \ Y \\ \{pr (ξ, I \ J) | ξ ∈ Γ, pr (ξ, J) ∈ Σ\} \end{matrix} ]

42.2.10 Proof of 46.2.9 According to definitions Thalg 10.3.2 of ≤, Thalg 10.2.6 of Proj (X),

and Thalg 17.8.1 of Prel (X), we have

Y ≤ X iff Y ∈ Proj (X) iff Rel (Y) ⊆ Prel (X)

So the preconditions of 46.2.3(2) are satisfied and

R ∘ S = \begin{cases}⋃_{ξ∈Σ}(R ∘ ξ) & if Σ ≠ ∅ \\ ⊥_{X\Y} & if Σ = ∅ \end{cases}

So if Σ = ∅ then

R ∘ S = ⊥_{X\Y}

= [\begin{matrix}X \ Y \\ ∅ \end{matrix} ] due to def. Thalg 10.3.1 of ⊥X\Y

= [ \begin{matrix}X \ Y \\ \{pr (ξ, I \ J) | ξ ∈ Γ, pr (ξ, J) ∈ Σ\} \end{matrix} ]

And if Σ ≠ ∅ then

R ∘ S

= ⋃_{υ∈Σ}(R ∘ υ)

= ⋃_{υ∈Σ}[ \begin{matrix}pr & (X, I \ J) \\ ζ ↝ υ ˙∨ ζ ∈ Γ \end{matrix} ]

due to def. 46.1.1 of R ∘ υ

= [ \begin{matrix}X \ Y \\ \{ζ ∈ ⊗(X \ Y) | υ ∈ Σ, υ ˙∨ ζ ∈ Γ\} \end{matrix} ]

due to def. Thalg 19.5.3 of ⋃

= [ \begin{matrix}X \ Y \\ \{pr (ξ, I \ J) | ξ ∈ Γ, pr (ξ, J) ∈ Σ\} \end{matrix} ]

because (υ ˙∨ ζ ∈ Γ for υ ∈ Σ and ζ ∈ ⊗(X \ Y ))

iff (pr (ξ, I \ J) ∈ Σ for ξ ∈ Γ)

42.2.11 Repetition

Recall Thalg 19.1.2(2) , that

( ; 𝅝 ; ) R ≜ S means that the two relations R and S have the same

schema ( ; 𝅝 ; ) X ≬ Y means that the schemas X and Y are distinct, i.e.

dom (X) ∩ dom (Y) ( ; 𝅝 ; ) R ≬ S means that R and S have distinct schemas, i.e. disjunct

attribute classes.

42.2.12 Lemma

Let X be a schema. For all R, S ∈ Prel (X) holds

(1) If R ≬ S then R ∘ S = R ⊙ S = R ⊓ S

(2) R ∘ S = S ∘ R

42.2.13 Proof of 46.2.12

Let R = [Y, Γ] and S = [Z, Σ].

(1) If R ≬ S then Y ≬ Z, so that

R ∘ S = (R ⊓ S) ⇓ (Y ▽ Z) def. 46.2.1 = (R ⊙ S) ⇓ (Y ▽ Z) due to Thalg 20.4.1

= (R ⊙ S) ⇓ (Y ˙∨ Z) due to Thalg 11.5.1(2)(a)

= (R ⊙ S) ∥ (Y ˙∨ Z) according to Thalg 21.6.4(2)(a)

= R ⊙ S according to Thalg 20.1.11(3)

= R ⊓ S due to Thalg 20.4.1 , again

(2) R ∘ S

= (R ⊓ S) ⇓ (Y ▽ Z) due to def. 46.2.1

= (S ⊓ R) ⇓ (Z ▽ Y)

because both ⊓ and ▽ are commutative, due to Thalg 20.4.21(7) and Thalg 11.5.1(3)(c)

= S ∘ R due to def. 46.2.1, again

42.2.14 Lemma

Let X be a schema. If R = [Y, Γ] ∈ Prel (X) and Z ∈ Proj (X) then

(1) R ∘ ⊤_{Z} = R ⇓ (Y ▽ Z)

(2) R ∘ ⊥_{Z} = ⊥_{(Y ▽ Z)} and in particular

(3) R ∘ ⊤ = R

(4) R ∘ ⊥ = ⊥_{Y}

42.2.15 Proof of 46.2.14

(1) R ∘ ⊤_{Z}

= (R ⊓ ⊤Z) ⇓ (Y ▽ Z) due to def. 46.2.1

= (R ∥ Z) ⇓ (Y ▽ Z) due to def. Thalg 20.4.17(3)

= R ⇓ (Y ▽ Z) due to Thalg 21.7.1(3)(a)

(2) R ∘ ⊥_{Z}

= (R ⊓ ⊥Z) ⇓ (Y ▽ Z) due to def. 46.2.1

= ⊥_{(Y ∨Z)} ⇓ (Y ▽ Z)

= ⊥(Y ▽ Z) due to Thalg 21.7.3(1)

(3) R ∘ ⊤ = R ∘ ⊤⟨⟩ due to def. Thalg 19.3.1

= R ⇓ (Y ▽ ⟨⟩) due to (1)

= R ⇓ Y due to Thalg 11.5.1(5)(g)

= pr (R, dom (Y)) due to Thalg 21.6.4(1)(a)

= R due to Thalg 21.3.3(1)(a)

(4) R ∘ ⊥ = R ∘ ⊥⟨⟩ due to def. Thalg 19.3.1

= ⊥(Y ▽ ⟨⟩) due to (2) = ⊥Y due to Thalg 11.5.1(5)(g)

42.2.16 Lemma

Let X be a schema. If R, S, T ∈ Prel (X) so that S ≜ T then

(1) R ∘ (S ∪ T) = (R ∘ S) ∪ (R ∘ T)

(2) R ∘ (S ∩ T) = (R ∘ S) ∩ (R ∘ T)

( ; 𝅝 ; ) R ∘ (S − T) = (R ∘ S) − (R ∘ T)

*** S − T is not defined ***

42.2.17 Proof of 46.2.16 Let X = [X_{i}|i ∈ I] and the three relations be given by

R = [\begin{matrix}Y \\ Γ \end{matrix}]  S = [\begin{matrix}Z \\ Σ \end{matrix}]  T = [\begin{matrix}Z \\ Π \end{matrix}]

in general, where x (S) = Z = x (T), as demanded. Because R, S, T ∈ Prel (X), we have Y = [X_{i}|i ∈ J] and Z = [X_{i}|i ∈ K] for J := dom (Y) and K := dom (Z).

(1) If Σ = ∅ then S = ⊥_{Z} and

R ∘ (S ∪ T) = R ∘ T = ⊥_{(Y ▽ Z)} ∪ (R ∘ T) = (R ∘ ⊥_{Z}) ∪ (R ∘ T)

according to 46.2.12(2)

= (R ∘ S) ∪ (R ∘ T)

Similarly, if Π = ∅ then

R ∘ (S ∪ T) = R ∘ S = (R ∘ S) ∪ ⊥_{(Y ▽ Z)} = (R ∘ S) ∪ (R ∘ ⊥_{Z}) = (R ∘ S) ∪ (R ∘ T)

And if Σ ≠ ∅ and Π ≠ ∅ then

R ∘ (S ∪ T)

= ⋃_{ξ∈Σ∪Π}(R ∘ ξ) due to 46.2.3(2)

= ( ⋃_{ξ∈Σ}(R ∘ ξ)) ∪ ( ⋃_{ξ∈Π}(R ∘ ξ))

= (R ∘ S) ∪ (R ∘ T)

due to 46.2.3(2), again

(2)

( ; 𝅝 ; ) *** CONTINUE HERE ***

42.2.18 Remark

*** note the following counterexamples ***

( ; 𝅝 ; ) *** ∘ is commutative, but not associative;

counterexample ***

( ; 𝅝 ; ) *** (¬R) ∘ S ≠ ¬(R ∘ S) or R ∘ ¬S ≠ ¬(R ∘ S)

***

42.2.19 Lemma

Let X be a schema. For all R, S ∈ Prel (X) and each Y ∈ Proj (X) holds:

( ; 𝅝 ; ) R ∘ (S ∥ Y) = (R ∘ S)⇂ dom (Y)

( ; 𝅝 ; ) R ∘ (S ∥ Y) ⊒ R ∘ S

( ; 𝅝 ; ) R ∘ (S ⇓ Y) ⊒ R ∘ S

( ; 𝅝 ; ) R ∘ (S ⇑ Y) ⊑ R ∘ S

42.2.20 Proof of 46.2.19

*** CONTINUE HERE ***

42.3 Oppomorphisms

42.3.1 Definition

(1) If A, B, C are three classes, we say that A and B are in opposition in C, if A ⊎ B = C. (In other words, if A ∩ B = ∅ and A ∪ B = C).

A B C

(2) If ξ, υ, ζ are three records, we say that ξ and υ are in opposition in ζ, if ξ ˙∨ υ = ζ. (In other words, if ξ ≬ υ and ξ ∨ υ = ζ, i.e. if dom (ξ) and dom (υ) are in opposition in dom (ζ)).

(3) For each schema X and all R, S ∈ Prel (X), we say that R and S are in opposition in X, if x (R) and x (S) are in opposition in X. (In other words, if @ (R) and @ (S) are in opposition in dom (X).)

42.3.2 Definition An oppomorphism on a given schema X is a function

h : Prel (X) ⟶ Prel (X)

satisfying the following two properties:

(1) h is oppositional in the sense that R and h(R) are in opposition in X

(2) h is (quasi–)additive in the sense that

h ([\begin{matrix}Y \\ Γ \end{matrix}]) ≡ ∐_{ξ∈Γ}h ([\begin{matrix}Y \\ \{ξ\} \end{matrix}])

for every R = [Y, Γ] ∈ Prel (X).

For every schema X,

Opp (X) := \{ \frac{h : Prel (X) ⟶ Prel (X)}{h is oppomorphism} \}

denotes the oppomorphism class on X 42.3.3 Lemma

Let h : Prel (X) ⟶ Prel (X) be an oppomorphism.

For each R = [Y, Γ] ∈ Prel (X) holds:

(1) h(R) = \begin{cases}⊥_{(X\Y )} & if Γ = ∅ \\ ⋃_{ξ∈Γ}h ([\begin{matrix}Y \\ \{ξ\} \end{matrix}]) & if Γ ≠ ∅ \end{cases}

(2) h(⊥_{Y} ) ⊆ h(R) ⊆ h(⊤_{Y} ) For every ξ ∈ ⊗X holds:

( ; 𝅝 ; ) h ([\begin{matrix}X \\ \{ξ\} \end{matrix}]) = \begin{cases}⊤ & if ξ ∈ h(⊤) \\ ⊥ & if ξ ∈ ¬h(⊤) \end{cases}

For each R ∈ Rel (X) holds:

( ; 𝅝 ; ) h(R) = R ∘ h(⊤)

( ; 𝅝 ; ) h(R) = h(R ∩ h(⊤))

For every Y ∈ Proj (X) holds:

( ; 𝅝 ; ) h(⊥_{Y} ) = ⊥_{X\Y}

For each R = [Y, Γ] ∈ Prel (X)

( ; 𝅝 ; ) h(R) = h(R ∩ h(⊤_{(X\Y )}))

( ; 𝅝 ; ) R ⊆ h(h(R))

( ; 𝅝 ; ) h(R) = h(h(h(R)))

( ; 𝅝 ; ) h^{n}(R) = h^{n+2}(R) for all n ≥ 1

For all R ∈ Prel (X) and Z = [Z_{j}|j ∈ J] ∈ Proj (X) holds:

( ; 𝅝 ; ) h(R ∥ Z) = h(R)⇂ J.

42.3.4 Proof of 46.3.3

(1) According to definition 46.3.2(1), h is oppositional and that

means that

x (h(R)) = X \ Y

According to definition 46.3.2(2), h is additive and that has the following consequences:

( ; 𝅗𝅥 ; ) If Γ = ∅, then

h(R) ≡ ∐_{ξ∈∅}h ([\begin{matrix}Y \\ \{ξ\} \end{matrix}]) ≡ ⊥

There is exactly one relation with schema X \Y and equivalent to ⊥, and that is ⊥_{(X\Y )}.

( ; 𝅗𝅥 ; ) If Γ ≠ ∅, then

h(R) ≡ ∐_{ξ∈Γ}h ([\begin{matrix}Y \\ \{ξ\} \end{matrix}]) = ⋃_{ξ∈Γ}h ([\begin{matrix}Y \\ \{ξ\} \end{matrix}])

And with x (h(R)) = Y we even have

h(R) = ⋃_{ξ∈Γ}h ([\begin{matrix}Y \\ \{ξ\} \end{matrix}])

(2) h(⊥_{Y} ) = ⊥_{(X\Y )} according to (1), so h(⊥_{)} ⊆ S for every S ∈ Rel (X \ Y), including S = h(R). Also, if Γ = ∅ then h(R) = ⊥_{(X\Y )} and (2) is satisfied. Finally, if Γ ≠ ∅ then

h (R) = ⋃_{ξ∈Γ}h ([\begin{matrix}Y \\ \{ξ\} \end{matrix}]) ⊆ ⋃_{ξ∈⊗X}h ([\begin{matrix}Y \\ \{ξ\} \end{matrix}]) = h (⊤_{Y} )

(3) *** CONTINUE HERE ***

(4) *** CONTINUE HERE ***

(5) *** CONTINUE HERE ***

(6) *** CONTINUE HERE ***

(7) *** CONTINUE HERE ***

(8) *** CONTINUE HERE ***

(9) *** CONTINUE HERE ***

(10) *** CONTINUE HERE ***

42.3.5 Definition

Let X be a given schema. We define

opp := [ \begin{matrix}Rel (X) ⟶ Opp (X) \\ R ↦ [ \begin{matrix}Prel (X) ⟶ Prel (X) \\ S ↦ R ∘ S \end{matrix} ] \end{matrix} ]

the oppomorphism function for relations on X

rel := [ \begin{matrix}Opp (X) ⟶ Rel (X) \\ h ↦ h(⊤) \end{matrix} ]

the relation function for oppomorphisms on X

*** examples , examples , examples ***

42.3.6 Lemma

opp : Rel (X) ⟶ Opp (X) and rel : Opp (X) ⟶ Rel (X) are well–defined and mutually inverse functions, for every schema X.

42.3.7 Proof of 46.3.6

Let X = [X_{i}|i ∈ I]. ( ; 𝅝 ; ) opp : Rel (X) ⟶ Opp (X) is well–defined, because for each

R ∈ Rel (X) and S ∈ Prel (X), opp (R) = R ∘ S is a well– defined member of Prel (X), according to definition 46.2.1, i.e. opp (R) : Prel (X) ⟶ Prel (X) is well–defined. It even is an oppomorphism, i.e. opp (R) ∈ Opp (X), because for each S = [Y, Σ] ∈ Prel (X) holds:

( ; 𝅗𝅥 ; ) @ (opp (R) (S)) = @ (R ∘ S) = @ (R) ▽ @ (S) = I \ @ (S) and

thus opp (R) (S) and S are in opposition in X and

( ; 𝅗𝅥 ; ) opp (R) (S) = R∘S = ⋃_{ξ∈Σ}(R∘ξ) = ⋃_{ξ∈Σ}(R∘[\begin{matrix}Y \\ \{ξ\} \end{matrix}]), according

to 46.2.3(1) and (2), so opp (R) is additive.

( ; 𝅝 ; ) rel : Opp (X) ⟶ Rel (X) is well–defined, because if h ∈

Opp (X), then h(⊤) ∈ Rel (X) is well–defined. ( ; 𝅝 ; ) opp and rel are mutually inverse, because:

( ; 𝅗𝅥 ; ) For each R ∈ Rel (X) holds:

rel (opp (R))

= rel ([\begin{matrix}Prel (X) ⟶ Prel (X) \\ S ↦ R ∘ S \end{matrix}])

due to def. 46.3.5 of opp

= R ∘ ⊤

due to def. 46.3.5 of rel

= R due to 46.2.14(3)

( ; 𝅗𝅥 ; ) On the other hand, for each h ∈ Opp (X) holds:

opp (rel (h))

= opp (h(⊤)) due to def. 46.3.5 of rel

= [\begin{matrix}Prel (X) ⟶ Prel (X) \\ S ↦ h(⊤) ∘ S \end{matrix}]

due to def. 46.3.5 of opp

= [\begin{matrix}Prel (X) ⟶ Prel (X) \\ S ↦ h(S) \end{matrix}]

due to 46.3.3*** number? ***

= h

*** CONTINUE HERE ***