compositional approach to program …...compositional approach to program formalization and...

40
Linz, JKU, November 08-19, 2012 1 COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko National University of Kyiv

Upload: others

Post on 01-Apr-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 1

COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND

VERIFICATION

(methodological introduction)

Mykola (Nikolaj) S. NikitchenkoTaras Shevchenko National University of Kyiv

Page 2: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 2

Contents Introduction

Methodological aspect of integrative approach

Basic notions of programming

Formalization of programming notions

Integrating programming with computability

theory

Integrating programming with mathematical logic

Conclusions

Page 3: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 3

Taras Shevchenko National University of Kyiv

Page 4: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 4

Southern campus of the university

Page 5: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 5

Faculty of Cybernetics

Page 6: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 6

View on Maydan Nezalezhnosti

Page 7: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 7

View on Kiev-Pechersk Lavra Monastery

Page 8: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 8

View on river Dnieper

Page 9: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 9

Introduction

In the current computing curricula specialization prevails over integration

This leads to some negative consequences

Specialization and integration should be balanced

The aim of the lecture is to present an

integrative composition-nominative approach to programming-related disciplines

Page 10: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 10

Specialization-Integration Cycle in Theories Development

Integration

SpecializationSpecialization

Specialization

SpecializationSpecialization

Page 11: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 11

Integration between Formal Methods

Wolfgang Schreiner*: The RISC ProgramExplorer was developed to provide a close integration between programs, theories, specifications, and semantic models.

This is “horizontal” integration. Next step - “vertical” integration

*Computer-Assisted Program Reasoning Based on a Relational Semantics of Programs

Page 12: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 12

Goals of Integrative Approach Scientific: Explication and formalization of

semantic-based methods of software system development

Educational: development of a new content for computer science disciplines “around” programming

Practical: Construction of software and educational systems based on the proposed integrative approach

Page 13: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 13

Integrative approach (educational aspects)

Aim: construct main parts of programming-related disciplines in integrity of their essential aspects using a relatively small number of methodological principles, basic notions, and formal models.

Integration strongly correlates with fundamentalization that emphases importance of fundamental, basic notions for professional education

Page 14: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 14

Programming-related disciplines They include disciplines of three groups:

1) concerning programming itself,

2) basic for programming like theory of algorithms (computability theory), mathematical logic, universal algebra, theoretical linguistics, and

3) based on or involving programming like system specification, validation and verification, formal methods of software development, requirement analysis, etc.

Page 15: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 15

Methodological principles

Principle of universal connection: everything is connected with something else.

Principle of development from abstract to concrete (from simple to complex, from a lower level to a higher one, from the old to the new).

Triadic principle of development: thesis – antithesis – synthesis

Principle of unity of theory and practice (variant: union of logical and historical development).

Page 16: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 16

Integration of theory and practice in notion explication

PracticeSociety

Transport

… …

Education

Informatization(Computing)

Categories

Scientific notions

Formal notions

Theory

Page 17: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 17

Summary of the proposed approach

Integration By Development From Abstract to Concrete From Methodological via

Professional to Mathematical Level

(vertical integrity) With Internal Integrity on each Level

(horizontal integrity)

Page 18: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 18

Main Subject-Object Relations (philosophical level)

Ontological Gnosiological (Epistemological) Praxeological Axiological Phenomenological …

We advocate importance of teaching philosophy (in view of knowledge-based economy)

Page 19: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 19

Expected Results (ontological level)

Net of Notions (Ontology)

on various levels

with relations between them

Transformations

between levels:- particularization,- formalization.

Methodological (Philosophical)

Professional (Scientific)

Formal (Mathematical)

Page 20: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 20

Basic Disciplines for Theory of Programming (mathematical view)

Theory of Programming

Set Theory

Mathematical LogicComputability Theory Universal Algebra

Theories are not fully adequate with Theory of Programming, adaptation is required

Page 21: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 21

Proposed Dependency Scheme(Algebraic approach)

Nominative Data Theory

Enhanced Universal Algebra

Theory of Programming

Enhanced Mathematical

Logic

Enhanced Computability

Theory

Level 1 Level 2 Level 3

Theories are integrated with Theory of Programming, are built on one basis, adaptation is not required

Page 22: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 22

 Professional level

USER PROBLEM

PROGRAM

PROCESS OF EXECUTION PROCESS OF

PROGRAMMING

topicality

pragmatics

interface

computabilityorigination (explicativity)

adequacy

Philosophical level (praxeological view)

SUBJECTGOAL

TOOLTOOL MAKING

TOOL USAGE

Developing the main notions of Programming

Problem orientedness

Page 23: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 23

Main Methodological Principles (professional level) Principle of integrity of intensional and

extensional aspects (particularization of categories universal-particular-singular); leading role of intensional aspects

Descriptivity principle: objects are presented by their descriptions; semantic and syntactic aspects are particularization of categories content-form; leading role of semantics over syntax

Compositionality principle

Nominativity principle

Page 24: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 24

Pentad of the main basic program notions

PROBLEM

PROGRAMDATA

FUNCTION

COMPOSITION

NAME

  DESCRIPTION

applicativity

naming

  grammar

semanticaspect

syntacticaspect

  interpretation

denoting aspect

⋅⋅⋅ ⋅⋅⋅ ⋅⋅⋅

Page 25: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 25

Main thesis (professional level)

The main notion of computer science (informatics) is the notion of language (primarily in constructive, formal, communicative, and practical aspects)

Page 26: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 26

Development of the notion of data

⋅⋅⋅ ⋅⋅⋅ ⋅⋅⋅

FUNCTION

W.A –“black box” W.C –“white box”

W.S –“white or black box”

P.C – setsP.A – presets

P.S – flatnominative data

H.C. – hierarchic sets

H.A – hierarchic presets

H.S – hierarchic nominative data

Level P (Parts)

Level H (Hierarchy)

DATALevel W (Whole)

Triads of categories:whole (W) – parts (P) – synthesis (H as Hierarchy)abstract (A) – concrete (C) – synthesis (S).

Page 27: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 27

Nominative data are based on the naming relation name→value

Values can be simple (unstructured) or

complex (structured)

Names can be simple or complex

Names and values can be independent (direct naming) or dependent (indirect naming is allowed)

Nominative data

Page 28: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 28

Representation principles

Data representation principle: program data can be represented as concretizations of nominative data.

Semantics representation principle:program semantics can be represented by functions over nominative data (nominative functions) constructed with the help of compositions

Page 29: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 29

Formal language model (mathematical level)

The first formal language model –

Composition-Nominative Model: Semantic (Composition) System Syntactical System Denotational System

Composition System: Data – Function – Composition

Intensions should be taken into account

Page 30: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 30

Semiotic Aspects of Programs

pragmatic semantics Syntax

Semiotic aspects are too abstract, pragmatics is overloaded with various senses.

Richer theory of aspects is required

Page 31: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 31

Essential Program Aspects

External program aspects: adequacy, pragmatics, computability, and origination;

Internal aspects: semantics, syntax, and denoting relation

Relations between external and internal aspects (process of programming and composition, process execution and function application, etc.)

Page 32: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 32

Integrating programming with computability theory

Traditional computability is understood as computability of n-ary functions defined on integers or strings (Turing computability, fixed intension).

The notion of computability over classes of data with different intensions is required.

Page 33: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 33

Natural computability

Page 34: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 34

Complete classes

Theorem 1. Comp(IA, D)={⊥, id}.

Theorem 2. Comp(IC, D)=D→D.

Theorem 3. Comp(IAC, A ∪ C)={f ∪ g | f∈({ ⊥A, idA}∪{ A | c ∈C }), g∈ C → C }.

Theorem 4. Comp(IND, ND(V,W))= =CLOS({⇒v0,..., ⇒vm, v0⇒,..., vm⇒, v0!,..., vm!}, {°, ∗, ∇}).

Theorems describes executable components of program specification

Page 35: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 35

Integrating programming with mathematical logic

The main notions of logic: (IMW, ECW, L, Int, |=, |–)

IMW is an intensional model (of worlds), ECW is a class of extensional models, L is a language of a logic, |= is a validity relation, and |– is an inference relation.

Page 36: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 36

Main notions of Logic

Intensional Model

M1

M2

… … … …

Language – formulas

(Syntactic aspect)

Interpretations I

Validity |=

Inference |–

Models of Worlds(semantic aspect)

Validity and Completeness

Page 37: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 37

Classes of logics

With respect to the intensions of data we can specify the following predicate logics: propositional logics (abstract data), singular logics (concrete data), renominative, and quantified logics (nominative data).

For all these logics composition-nominative languages of predicates are defined and investigated.

Next level –program logics.

Page 38: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 38

ConclusionsProgramming-related disciplines: Theory of Programming Theory of Algorithms Mathematical Logic Universal Algebra Specification and Programming Languages Formal Methods of Software Development Databasescan be taught on one (methodological,

professional and formal) basis. Constructed models are formal thus permitting

their thorough investigation with further implementation of e-learning tools.

Page 39: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 39

ReferencesFormal definitions are presented in:

Nikitchenko N.S. A Composition-Nominative Approach to Program Semantics.– IT-TR: 1998-020.– Technical University of Denmark.– 1998.– 103 p.

Nikitchenko M., Shkylniak S.: Mathematical logic and theory of algorithms: Handbook. Publishing house of National Taras Shevchenko University of Kyiv, 528 p. (2008) (in Ukrainian).

Red’ko V.,  Brona J., Buy D., Poliakov S. Relational Databases. – K. Akademperiodika, 2001.– 198 с. (In Russian)

Basarab I., Nikitchenko N., Red’ko V. Composition Databases. –K.: Lybed’, 1992. – 191 p. (In Russian)

Page 40: COMPOSITIONAL APPROACH TO PROGRAM …...COMPOSITIONAL APPROACH TO PROGRAM FORMALIZATION AND VERIFICATION (methodological introduction) Mykola (Nikolaj) S. Nikitchenko Taras Shevchenko

Linz, JKU, November 08-19, 2012 40

Thank you!Questions?