Essence de la connaissance

De Assothink Wiki
Aller à la navigation Aller à la recherche

Introduction

Cette page fait partie du volet théorique d'Assothink.

Sous ce titre trop vague se trouve une recherche assez concrète.

Elle touche aux maths, un peu à la philo, à l'informatique et à la cognostique.

Elle a deux buts (et l'atteinte éventuelle de ces buts est fort imprévisible):

  • la construction d'un possible nouveau langage informatique
  • la construction d'un modèle de pensée artificielle

Evidences

Dans la recherche des notions premières, le but ultime semble toujours in fine inaccessible.

La présente démarche ne s'épuisera pas de ce coté là, mais se tournera plutôt vers la pyramide des constructions.

Donc avec une certaine paresse, divers concepts seront considérés comem évidents.

Je suppose qu'une couche fondatrice pourra être explorée dans des livres de math ou de philo.

Ici l'indication "concept!" sera la marque de la limite de cette paresse.

Par ailleurs le sens de certains de ces concepts ne prend forme qu'avec l'introduction de concepts ultérieurs: pas de construction séquentielle immaculée.

English: pourquoi des concepst en anglais ? Eh bien à cause des analogies ou perspectives informatiques.

Element, set and function

concept! element

Toute entité abstraite pouvant être connue ou décrite.

concept! element set

Une collection d'éléments.

L'ensemble lui-même peut à son tour être considéré comme élément.

concept! element fonction

Une fonction est un élément particulier.

Une fonction se décrit pas la transformation d'un input en output.

L'input et l'output ne peuvent être vides.

L'input et l'output sont des éléments d'ensembles.

La description d'une fonction implique de préciser les ensembles input et output.

Opérations sur ensembles

set setSet

L'ensemble de tous les ensembles. Notion peu féconde, mais indispensable.

  • fonction setSet,setSet -> union -> setSet
  • fonction setSet,set -> union ->setSet
  • fonction setSet,setSet ->intersection ->setSet
  • fonction setSet,setSet -> diff ->setSet
  • fonction setSet,set -> diff ->setSet

set fullSet

L'ensemble contenant tous les éléments.

set emptySet

L'ensemble vide, c'est à dire ne contenant aucun élément.

Booléens

concept! élément false

Un élément.

concept! élément true

Un élément autre que false.

set B

L'ensemble constitué de true, de false, et de rien d'autre.

fonction B -> not -> B

fonction set,set -> equals -> B

(et donc: fonction B,B -> equals -> B)

fonction B,B -> and -> B

fonction B,B -> or -> B

fonction B,B -> xor -> B

fonction setSet,fullSet -> contains -> B

fonction setSet,setSet -> subSet -> B

fonction setSet -> isEmpty -> B

Entiers

concept! set Z

L'ensemble des nombres entiers (positifs et négatifs).

fonction setSet -> cardinal -> Z

fonction Z -> next -> Z

Le suivant d'un nombre entier, qui est un autre nombre entier (et qui n'est le suivant que de ce premier nombre)

fonction Z,Z -> equals -> Z

élément zero

Hum... Le cardinal de emptySet.

élément one

Le suivant de zero (zero -> next -> one).

fonction Z,Z plus -> Z

fonction Z minus -> Z

fonction Z,Z minus -> Z

fonction Z,Z bigger -> B

fonction Z,Z smaller -> B

fonction Z,Z strictBigger -> B

fonction Z,Z strictSmaller -> B

fonction Z,Z product -> Z

fonction Z,Z quotient -> Z

fonction Z,Z modulo -> Z

fonction Z,Z divides -> B

fonction Z,Z isSquare -> B

fonction Z,Z isPrime -> B

...

Réels

set R

L'ensemble des nombres réels.

Les fonctions décrites pour l'ensemble Z peuvent être définies pour l'ensemble R (avec une signification un peu décalée, comme par exemple pour la fonction ratio).

La principale différence entre entier et réels est liée à la notion de densité. Entre deux entiers distincts donnés, combien peut-on intercaler d'entiers ? Un nombre fini et aisément calculable. Entre deux réels distincts donnés, combien peut-on intercaler de réels ? Un nombre infini.

Sous-ensembles conditionnels

set functionSet

L'ensemble des fonctions. (Donc une fonction est bien un élément).

set conditionSet

Un sous-ensemble de l'ensemble de fonctions, celui consitué des fonctions ayant la forme générale  

setSet,fullSet -> condition -> B

fonction setSet,conditionSet conditionSubSet-> setSet

Cette fonction reçoit pour input un ensemble et une condition.

Elle produit comme output un ensemble constitué de tout ou partie des éléments du premier ensemble, ceux pour lesquels la fonction condition est vérifiée (renvoie true).

Eventuellement l'ensemble output est vide.

Exploitabilité des ensembles

Les concepts émis jusqu'ici sont utiles et intéressants, mais en pratique certains ensembles ne sont pas exploitables, notamment par un ordinateur, pour la raison qu'il est impossible de les représenter au moyen d'une quantité finie d'information.

Les ensembles Z et R sont inexploitables.

L'ensemble B est exploitable.

L'ensemble setSet est inexploitable.

L'ensemble vide est exploitable.

Dans les deux paragraphes qui suivent, le but est de trouver à des ensembles inexploitables des sous-ensembles commodément exploitables.

Intervalles d'entiers

condition interval

Une condition interval comprend une condition basse (bigger ou strictBigger) eu une condition haute (smaller ou strictSmaller).

Les conditions interval sont définies pour R et pour Z.

Une condition interval a comme input complémentaire les valeurs limites.

L'une des conditions peut être absente, mais pas les deux.

Un interval est représenté comme en math par ]a,b[ ou [a,b] ou [a,b[ ou [a,...[ ou ]...,b] etc... L'écriture '...' signifie plus ou moins l'infini.

condition finiteInterval

C'est une conditon interval dont les deux composantes sont définies.

set Zinterval

Un conditionSubSet de Z dont la condition est un interval. Non exploitable.

set ZFiniteInterval

Un conditionSubSet de Z dont la condition est un finiteInterval. Exploitable.

Il est à noter que dans les langages informatiques habituels, les types int, long, short et byte correspondent à des ZFiniteInterval.

Intervalles échelonnés de réels

condition multiple

Une condition multiple renvoie true, si l'élément reçu comme argument est un multiple d'une base donnée.

Une condition multiple a comme input complémentaire cette base.

condition multipleFiniteInterval

Une condition combinant une condition interval et une condition multiple.

set RMultipleFiniteInterval

Un conditionSubSet de R dont la condition est un multipleFiniteInterval. Exploitable.

Il est à noter que dans les langages informatiques habituels, les types float et double correspondent précisément à des ZMultipleFiniteInterval.

Construction d'ensembles : 2 modes

Les ensembles sont construits et modifiés suivant deux modes:

  • le mode logique implique des opération (fonctions) sur des ensembles, ainsi que des constructions de conditionSubSet.
  • le mode énumératif implique l'adjonction ou le retranchement d'éléments individuels, indépendemment de tout contexte logique.

Comparateur

fonction comparator

Une fonction de comparaison est une fonction de la forme

fonction S,S -> compare -> Z[-1,+1]

Son output peut renvoyer trois éléments possibles.

fonction strictComparator

Une fonction comparaison stricte est une fonction de la forme

fonction S,S -> compare -> Z{-1,+1}

Son output peut renvoyer deux éléments possibles.

Un comparateur strict est - a fortiori - un comparateur.

Ensemble ordonné

Un ensemble peut on non être ordonné, c'est à dire, mathématiquement, doté d'une fonction comparateur.

Tout ensemble ordonné dispose des fonctions ayant la forme:

fonction S,S bigger -> B

fonction S,S smaller -> B

fonction S,S strictBigger -> B

fonction S,S strictSmaller -> B

Z est ordonné

R est ordonné

Tout subSet d'un ensemble ordonné est ordonné. 

Ensemble strictement ordonné

Un ensemble ordonné peut en outre être strictement ordonné, c'est à dire, mathématiquement, doté d'une fonction de comparaison stricte.

Tout ensemble ordonné dispose de fonctions ayant la forme:

fonction S,S strictBigger -> B

fonction S,S strictSmaller -> B

Z est ordonné

R est ordonné

Tout subSet d'un ensemble strictement ordonné est strictement ordonné

Structure

concept! element structure

Assemblage d'éléments (parfois homogènes mais généralement hétérogènes) appelés membres et juxtaposés sans former d'ensemble.

L'assemblage lui-même constitue un élément. Une structure est définie par les ensembles auxquels appartiennent ses membres.

Les structures composés d'un seul membre constituent un moyen de créér des ensembles synonymes.

Quelques exemples:

  • structure coordinate :  { R[-1000,+1000]x1e-6 }
  • structure Rplus : { R[0,+1000]x1e-6 }
  • structure Point2D :  { coordinate ; coordinate }
  • structure Point3D : { coordinate ; coordinate ; coordinate }
  • structure disc : { Point2D ; Rplus }
  • structure sphere : { Point3D ; Rplus }

Caractères

concept! set char

L'enseble des caractères, tel qu'utilisés dans la communication standardisée non-numérique.

Aucun rapport avec les codifications historiques des caractèrse en EBCDIC ASCII Unicode...

Aucun rapport avec les 'événements du clavier'.

Pour les caractères, de nombreux subSet énumératifs sont définis:

  • set upperAlphabeticChar   (contains 26 chars)
  • set lowerAlphabeticChar    (contains 26 chars)
  • set numericDecimalChar    (contains 10 chars)
  • set numericHexaChar          (contains 16 chars)
  • set bitChar                              (contains 2 chars)
  • ...

Au sein de ces subSets, des fonctions de comparaison (bigger , strictBigger, smaller, strictSmaler) sont définies.

Les subsets sont strictement ordonnés.

Temps

Concept! clock

L'horloge est une source d'information particulière.

function clock -> time -> R

La function time a pour particularité de ne jamais donner deux fois le même résultat.

Plus exactement, des appels successifs à la fonction time donnent des résultats toujours croissants.

Le nombre réel produit par la fonction time dépend d'un choix d'unité. La seconde est un choix tuel acceptable.

Générateur aléatoire

Concept! random

Comme le temps, le générateur aléatoire est une source d'infomation particulière.

function random -> nextB -> B

function random, Z -> nextZ -> Z

Les valeurs produites par les fonctions du générateur aléatoire sont imprévisibles (au moins en principe).

Cette imprévisibilité est la caractéristique principale - peut-être unique - du concept random.

Evénement

Concept! event

Un événement s'inscrit das le temps. Il est engendré par une source, et intercepté et traité par des auditeurs...

Instance and reference

Concept! instance
the material representation of a concept
An instance is unnamed.
An instance is created (and destroyed)
An instance is accessible only through reference.

Concept! reference
Any reference name giving access to an instance of a concept
reference are linked to (1 or none) instance, whereas instance may be linked to zero, one or many references.




CONCEPT LEVEL
abstract definition of the concepts and their links
INSTANCE LEVEL
creation, destruction, referencing of instances
ACTION LEVEL
logical action, logical processing
COMMUNICATION LEVEL
rules of exchange between CAIC groups


CONCEPT-LEVEL

C: set << concept
// set – or container - of 0.. many other concepts
// representation : {concept}
// representation : {N concept}
// representation : {0 concept}
// representation : {1 concept}
// representation : {2 concept}
// representation : {2+ concept}
// representation : {2- concept}
// representation : {}
O: size set << int
O: union {set} << set
O: interesection {set} << set
O: diff (2 set) << set
A: add set : concept
A: add set : set

C: seq << set !
// set, with ordering
// representation : (concept)
// representation : (N concept)
// representation : ()
O: get (seq,int) << object
O: getIndex (seq,object) << int

C: bool << concept !
// concept which has two possible state : false or true
C: false << bool !
C: true << bool !

C: scalar << concept !
// many ordered state : smaller, bigger will be defined, and others
C: zero << scalar !
C: one << scalar !
O: equal {2 scalar} << bool
O: bigger (2 scalar) << bool
O: smaller (2 scalar) << bool
O: strictBigger (2 scalar) << bool
O: strictSmaller (2 scalar) << bool
O: sum {scalar} << scalar
O: inverse scalar << scalar
O: diff (2 scalar) << scalar
O: product {scalar,scalar} << scalar
O: opposite scalar << scalar
O: ratio (2 scalar) << scalar
O: mean {1+ scalar} << scalar
O: between {3 scalar} << bool


C: int << scalar !
// something wich has the property of a member of the math N set.
// given two int objects, the second being bigger than the first,
// the number of int objects bigger than the first and smaller
// than the second will always be finite

O: interval (2 int) << {int}

C: float << scalar !
// something wich has the property of a member of the math R set.
// given two float objects, the second being bigger than the first,
// the number of float objects bigger than the first and smaller
// than the second will be always be 'infinite'.

________________________________________________________________________
C: xCoordinate << float !
C: yCoordinate << float !
C: zCoordinate << float !

C: point2D << {xCoordinate,yCoordinate}

C: point3D << {xCoordinate,yCoordinate,zCoordinate}

C: dist {2 point2D} << float

C: dist {2 point3D} << float

C: sqrt float << float

________________________________________________________________________

C: polyedron

C: summit << point3D

C: center << point3D

C: line << {2 summit}
O: touch {line,summit} <<bool
O: touch {2 line} <<bool

C: face
O: touch {face,summit} << bool
O: touch {face,line} << bool
O: touch {2 face} << bool

L: {summit} == polyedron
L: {line} == polyedron
L: {face} == polyedron

A link may be:
system defined
enumeratively defined
logically defined

INSTANCE LEVEL

int fps

is equivalent to:
create conceptual instance of int
give to this instance the reference name fps

{int} a
(3 float) b
polyedron c

aa=a

is equivalent to
create a reference name aa
link the reference aa to the conceptual instance already linked to the reference a

L: references instance << {reference}

ACTION LEVEL

center center=(0,0,0)
polyedron polyedron
{0 summit} summits
{0 line} lines
{0 face} faces

{2 float} vx={-1,1}
{2 float} vy={-1,1}
{2 float} vz={-1,1}

forEach vx:
forEach vy:
forEach vz:
point3D p=(vx.,vy.,vz.)
summits.add{p}
done
done
done

forEach summit as s1:
forEach summit as s2:
same{s1,s2} << same
if same continue;
dist{s1,s2} << d12
smaller (d12,2.1) << close
if close:
line line={s1,s2}
lines.add{line}
done
done
done