On se place d'un point de vue intuitioniste en mettant en avant l'algorithme de calcul et la construction des structures. Un modèle s'expriment sous forme d'un système d'équations différentielles qui peut toujours se mettre sous forme d'un calcul itératif, en effectuant une quantification et un changement de variable approprié. Dans la plus part des cas, le calcul itératif est approché, mais rien ne nous interdit qu'un calcul itératif ne puisse être exacte et constituer la loi proprement dite.
L'analogie entre l'intuitionisme et le sense physique remplace la cause par le calcul, et le temps par l'effectivité. Le sense physique est basé sur trois principes : un principe de causalité qui affirme que toute action à une cause, un principe de relativité qu'est la neutralité du choix du référentiel, et un un principe de finitude qui affirme que la quantité d'information est finie. On construit les structures mathématiques à partir de ce sense physique.
Une analogie entre genèse et raisonnement, qui rend quelque peu affabulatoire la description naissante, est une voie possible et pragmatique pour notre exposé qui se veut abordable sans connaissance préalable, et qui procède comme si nous voulions créer un nouveau monde imaginaires à partir de ces seuls trois principes : causalité, relativité et finitude.
L'intuition n'est pas une science exacte, et la mathématique est ni au dessus ni en dessous. La mathématique suppose l'existance d'une constance, qui peut être l'existance de la mécanique classique, pour pouvoir se construire. En effet, une démonstration est un mécanisme rigide, formel, qui doit pouvoir être opéré par une machine, enlevant par ce biais tout aspect subjectif et toutes interpretations hasardeuses. Et la machine est conçu selon la mécanique classique. Une variable contenant un booléen (une valeur logique {vrai, faux}) est une mémoire appelée en mécanique classique, un bit. Et c'est la mécanique classique qui le concrétise en quelque sorte, qui lui donne droit à la réalité. De là à présager que la mécanique classique est antérieur aux mathématiques, il n'y a qu'un pas.
La description sous forme de génèse, "Il était une fois, il y a trés trés longtemps...", introduit une chronologie dans la création des concepts et des axiomes, des choix formels ou simplement préceptuels. Et cette chronologie nous simplifie la vie en nous offrant un moyen mémotechnnique. Il faut acquérir une conscience des mécanismes de base qui ne soient pas que le résultat de préjugé dont nous n'avons pas conscience.
Mais il faut alors éviter l'écueil de l'endoctrinement qui met des oeillaires, et qui modifierait la maxime en l'anti-maxime "je ne vois que ce que je crois". Plusieurs génèses sont possibles pour un même courant de pensée et d'autre mode que la génèse sont envisageables comme autant de méthodes descripives, théâtrales ou pédagogiques qu'il est possibles d'imaginer. La pédagogie retrouve sa place fondamentale à coté des autres siences qu'elle a quelque peu perdu dans le monde moderne, l'art de transmettre le témoin, et qui peut être utilisé comme argument anthropomorphique, transcendant la science, la conscience et la réalité. Une école de pensé défend ses thèses en les enseignants et en les diffusants librement. Elle tire sa richesse de la confrontation contradictoire, car c'est la contradiction dans la science qui fait avancer celle-ci dans la création. Et le processus qui porte la doctrine, les couleurs en quelque sorte, se veut conscient de la réalité dont il défend la pertinence d'un point de vue, ou d'un mode (paradigme), et traque pour cela constamment les préjugées non-dit en les remplaçant par des préceptes choisies pour toujours les confronter à la critique.
Une méthodologie constructive rigide pour ne rien oublier, passant en revue tous les préceptes, principes et hypothèses nécessaires à la déduction de la théorie et à la construction du modèle, est ainsi exposé comme une construction dans un jeu de légo. On aura recours à la prosopopé, on fera parler les structures, cela donne un corpus idéologique qui accompagne la formalisation et porte l'intuition. L'intuition, plus elle est riche et plus elle donne au lecteur critique une clairvoyance et un moyen de créer sans être sousmis aux préjugés dont nous n'avons pas conscience et que nous ne serions pas capables d'ignorer par nous-même. On commence par construire des structures mathématiques à partir du sense physique, puis des univers imaginaires avec un espace unidimensionnel.
--- 8 Novembre 2012 ---(1) On définie arbitrairement une unité de distance L et une unité de temps T dont on admet la constance.
A ce stade, il n'existe aucune relation liant ces deux unités, qui se présentent physiquement comme deux étalons tombés du ciel, et mathématiquement comme deux symbôles.
Ces unités peuvent être multipliés par des nombres réels quelconques produisant ainsi la droite réel des positions et la droite réel des temps, c'est à dire deux structures, qui coté physique correspondent à l'ensemble des déplacements spaciales et temporels, et coté mathématique correspondent à des corps de réels. Mais une contradiction apparaît : comment concilier le continium non dénombrable des réels avec l'exigence calculatoire du modèle qui impose que les différents états possibles forment un ensemble énumérable ? Il suffit pour cela de prendre seulement les réels calculables, qui eux sont énumérables, ce qui ne change rien à la problèmatique.
Pour être plus prudent dans notre raisonnement, nous allons construire petit à petit ces deux droites par des procédés calculatoirs énumératifs, et qui reprennent alors la construction générale des structures mathématiques, mais à partir du sens physique c'est à dire de ses trois principes, principe de causalité, principe de relativité, principe de finitude.
Pour formaliser davantage cette notion de distance, on la remplace par la notion de déplacement de cette distance. Noter alors qu'il faut choisir un sens, une orientation de la droite. Nous notons ce choix par le symbole sL. Il en est de même pour le temps. L'orientation temporelle est notée sT.
Les déplacements pouront ensuite se composer pour en former d'aurtres.
(2) On définie arbitrairement une direction de distance sL et une direction de temps sT dont on admet la constance. Et on admet que ces directions peuvent être inversées, et n'ont que deux états possibles. On définie donc l'opérateur unaire -(S->S) qui appliqué à ces symbôles de direction sL, sT, produit les directions opposées -sL, -sT. On a ainsi définie le typage des sens S=<sL,sT,-(.)> ou S=<sL,sT,-sL,-sT>. Et vous aurez remarqué comment on note l'opérateur en spécifiant sur qu'elle type de données il opère et ce qu'il produit. L'expression -(S->S) signifie que l'opérateur - opère sur une donné de type S pour produire une donné de type S.
La structure S sera notée par <sL,sT,-(.)> / { --sL = sL, --sT = sT }. Les crochet <> signifie que la structure est étendue par clotûre pour ses éléments, et par programmation générale pour ses opérateurs. L'expression -(.) signifie que - est un opérateur qui prend en argument un élément de la structure et retourne un élément de la structure. La barre oblique suivie d'une théorie entre crochet {} signifie un quotientage, c'est à dire que deux expressions appartenant à la structure sont égale si la théorie qui suit le démontre. Noter que les crochets <> énumérent des opérateurs, et les braquets {} énumèrent des propriétés.
L'hypothèse (2) définie l'orientation d'un référentiel. Pour illustrer cette notion, considérez une entité placée dans cet espace, et qui possède une face et un dos. Elle peut s'orienter, c'est à dire changer de sens d'orientation en se retournant. Son oriention est une variable d'état s fonction du temps qui est tantôt égale à sL tantôt égale à -sL. Il en est de même pour l'axe du temps, mais dans ce cas un changement d'orientation ne peut s'opérer en fonction du même temps, il faut concevoir pour cela par exemple une dimension de temps supplémentaire dans laquelle peut se dérouler cette évolution.
Un référentiel R contiendra donc une orientation spatiale sL et une orientation temporelle sT.
Le référentiel est une mémoire à partir de laquelle on se réfère, son développement est celui d'un langage de progammation orienté objet. Le référentiel R se présente comme un objet possèdant deux attributs de nom sL et sT et qui contiennent chacune la valeur de l'orientation voulue. On note le nom complet de la mémoire à l'aide de l'opérateur point désignant les attributs d'un object, ainsi R.sL et R.sT sont les deux premières mémoires du référenciel R. Et R.sL contient un sens d'orientation spatial, c'est à dire un object de type SL = <sL,-(.)>, et R.sT contient un sens d'orientation temporel, c'est à dire un object de type ST = <sT,-(.)>.
Les mathématiques constituent la partie formelle, et elles commencent par définir un langage comprenant des sous-langages appelés typages, et une théorie. Le langage à ce stade est composé de 5 opérateurs :
<L, T, sL, sT, -(S->S)>
et d'un typage :
S = <sL,sT,-(.)>
La théorie contient l'expression formelle de l'hypothèse (2) c'est à dire :
{ --sL = sL, --sT = sT }
(3) Un déplacement d'espace est composé d'un étalon d'espace et d'une orientation d'espace. Un déplacement de temps est composé d'un étalon de temps et d'une orientation de temps.
Il nous faut donc définire le typage d'orientation spatial et le typage d'orientation temporelle tel que utilisé par le référentiel :
SL = <sL,-(.)>
ST = <sT,-(.)>
qui peut s'écrire également ainsi :
SL = <sL, -sL>
ST = <sT, -sT>
(4) Un déplacement est un opérateur unaire qui appliqué à un object, retourne l'object déplacé. Il satifsait au principe de relativité, c'est à dire qu' il peut contenir un autre déplacement ou être à l'interieur d'un autre déplacement, ce qui ce note par la composition de ces deux déplacements dans l'ordre.
On formalise la construction en créant antant d'opérateurs que nécessaire. Puis, comme dans un jeu de légo, on les assemble librement.
Ainsi un déplacement est un opérateur unaire qui s'applique à un object pour donner un object. La définition des objects n'est pas encore définie. C'est pourquoi la définition des objects est dite libre. On note ce typage par O qui n'a pas pour l'instant de définition. A ce stade, un déplacement de type D est définie comme étant un opérateur opérant dans O.
Le typage est un ensemble en devenir. Le type O est actuellement l'ensemble vide car on y a rien mis. Mais des éléments pourrons y être rajoutés par la suite, et chaque ajout fait l'object d'une hypothèses. Aussi un type peut être considéré comme un ensemble énumérable, qui est énuméré par un langage ou une structure qui porte alors une théorie. Et on peut commencer par apporter des propriétés de typage à la théorie avant d'apporter des éléments générateurs à la structure ce qui se traduit par la notion de shémat.
On dit qu'un opérateur opère sur un type lorsque tous ses arguments sont de ce type en question et que le résultat est du type en question.
D est le type des opérateurs prenant un élément de type O et retournant un élément de type O
Le typage D est en faite une propriété offrant une possibilité de construction supplémentaire. Si un élément x est de type D alors il peut être composé à un élément y de type O pour produire l'élément x(y) qui sera de type O. Et il peut aussi se composer au sense d'une programmation générale avec d'autres opérateurs en reliants leurs entrés et leurs sorties de même types en un graphe orienté, pour former d'autres opérateurs.
Le typage D n'est pas un ensemble, ou alors à ce stade c'est l'ensemble vide. Car d'un point de vue intuitioniste, un ensemble est définie par un moyen effectif de construction de ses éléments, c'est à dire par un énumérateur de ses éléments.
La définition de D est appelé un typage par shémat que l'on note par :
D = #O->O# <>
et qui est en l'état vide, ce qui est représenté par les crochets vides <>.
On définit un opérateur de construction de déplacement spacial noté L(L,SL->D), et un constructeur de déplacement temporel noté T(T,ST->D).
L(L,SL->D) désigne un opérateur binaire que l'on peut écrire plus simplement L(.,.) pour rappeler qu'il a une arité égale à 2, et il prend comme premier argument, l'étalon L, et comme second argument un sens spacial parmis {sL, -sL}, et il produit comme résultat un déplacement, c'est à dire un object de type D, c'est à dire un opérateur unaire qui prend comme argument un object de type O et retourne un object de type O.
Il est alors possible de construire 4 étalons de déplacements. Puis de composer ces déplacements pour définir par clôture, un typage des déplacements d'espace-temps D.
L(L, sL)
L(L, -sL)
T(T, sT)
T(T, -sT)D = #O->O# <L(L, sL), L(L, -sL), T(T, sT), T(T, -sT)>
Le schéma #O->O# précise que la struture D est une structure d'opérateurs unaires opérant sur O. Elle induit une opération de composition binaire non commutative, exprimable selon deux sens possibles, et qui a donné lieu à deux notations, l'une anglaise notée °, et l'autre française notée par l'absence de symbol. La composition de deux opérateurs unaires A, B est une étape de programmation rudimentaire (sans boucle ni condition), noté A°B ou BA tel que quelque soit x de type O nous avons :
A(B(x)) = A°B(x)
A(B(x)) = xBA
(5) On admet que la composition d'un déplacement avec son déplacement opposé produit le déplacement nul que l'on note par le symbôle 0(O->O).
(6) On admet que le déplacement nul se compose aux 4 étalons de déplacements pour produire respectivement les mêmes 4 déplacements, et que chacun des 4 déplacements se composent à lui pour produire respectivement les mêmes 4 déplacements.
Le langage à ce stade est composé de 8 opérateurs :
<L, T, sL, sT, -(S->S), L(L,SL->D), T(T,ST->D), 0(D->D)>
et il y a 5 typages :
S = <sL,sT,-(.)>
SL = <sL,-(.)>
ST = <sT,-(.)>
D = #O->O#< L(L, sL), L(L, -sL), T(T, sT), T(T, -sT) >
O = #O#
La théorie contient :
{
--sL = sL,
--sT = sT,
L(L, sL) ° L(L, -sL) = 0,
L(L, -sL) ° L(L, sL) = 0,
T(T, sT) ° T(T, -sT) = 0,
T(T, -sT) ° T(T, sT) = 0,
0 ° L(L,sL) = L(L,sL),
0 ° L(L,-sL) = L(L,-sL),
0 ° T(T,sT) = T(T,sT),
0 ° T(T,-sT) = T(T,-sT),
L(L,sL) ° 0 = L(L,sL),
L(L,-sL) ° 0 = L(L,-sL),
T(T,sT) ° 0 = T(T,sT),
T(T,-sT) ° 0 = T(T,-sT)
}
où l'opération ° correspond à la composition en notation anglaise de deux opérateurs unaires O->O, une action de programmation sans boucle ni condition.
A ce stade, O n'est pas définie. Mais il ne doit pas être vide. Car s'il est vide tous les opérateurs agissant sur O sont identiques et ne sont pas véritablement des opéateurs puisqu'ils ne peuvent être appliqués à aucun argument.
Deux opérateur A, B sont égaux si quelque soit les arguments Aw de A nous avons A(Aw) = B(Aw) et quelque soit les argument Bw de B nous avons A(Bw) = B(Bw). C'est à dire que la théorie doit pouvoir démontrer cela. C'est à dire, qu'il doit exister un chemin finie, une suite finie d'opérations de déduction parmis un ensemble énumérable de tels opérations, qui misent bout à bout, produit la propriété escomptée.
(7) Les déplacements sont les objects.
Avec cette hypothèse D=O, le langage va pouvoir se simplifier. On nomme l'étalon de déplacement L(L,sL)(D->D) par l'opérateur unaire L(D->D), et l'étalon de déplacement T(T,sT)(D->D) par l'opérateur unaire T(D->D), et l'inversion du déplacement par l'opérateur -(D->D). On laisse le soin au contexte de lever les ambiguités. On ajoute donc au langage <L(D->D), T(D->D), -(D->D)> et à la théorie {L=(L,sL), T=T(T,sT), -L=(L,-sL), -T=(T,-sT)}
A ce stade, on reformule le langage et la théorie en abandonnant les deux étalons L, T et les deux sens sL, sT et l'inverseur de sens -(S->S) pour ne garder que les deux étalons de déplacement L(D->D), T(D->D), et l'inverseur de déplacement -(D->D), et le déplacement nul 0(D->D).
Le langage devient :
<L(D->D),T(D->D),-(D->D), 0(D->D)>
que l'on peut noter plus simplement :
#D->D# <L,T,-,0>
Le typage devient :
D = #D->D# <L,T,-(.)>
L = #L->L#< L,-(.)>
T = #T->T#< T,-(.)>
La théorie devient :
{
--L = L,
--T = T,
L(-L) = 0,
(-L)(L) = 0,
T(-T) = 0,
(-T)(T) = 0,
0(L)= L,
L(0) = L,
0(-L) = -L,
(-L)(0) = -L,
0(T) = T,
T(0) = T,
0(-T) = -T,
(-T)(0) = -T
}
Dans une structure entre crochet <> et qui peut avoir un shémat explicite entre dièse # #, les points désignent des éléments qui peuvent être librement choisie dans la même structure, et les opérateurs retournent implicitement comme résultat des éléments de la même structure. Noter que si la structure est une structure d'opérateurs unaires précisé par un shémat, alors un élément de la structure est un opérateur unaire, mais un opérateur présenté au sein de la structure comme unaire, n'est pas un éléments de la structure. Ainsi dans la structure L = #L->L#< L,-(.)>, l'opérateur -(.) n'est pas de type L, il est pourtant de la forme -(L->L), il est du type K = #L->L#<L, ->, et il s'agit du même opérateur -(L->L). Seul les structures L et K change. L est inclus dans K :
La composition d'opérateur est une opération associative. On peut donc traduire l'opération de composition de deux opérateurs de type déplacement D par une opération binaire associative que l'on note +(.,.). La forme explicite est +(D,D->D). Mais ici elle n'est pas libre, c'est un alias, c'est l'opération de composition liée au shémat #D->D#, c'est à dire définie par la propriété suivante :
quelque soit x,y,z appartenant à D on a (x+y)(z) = x(y(z))
Noter que l'on utilise une autre opération implicite défini par le shémat et permet d'appliquer un élément x de D à un élément y de D comme ceci x(y).
Le langage devient :
#D->D# <L,T,-,0, +(.,.) >
La théorie devient :
{--L=L,--T=T, (x+y)(z) = x(y(z)), L-L=0, -L+L = 0, T-T=0, -T+T=0, 0+L=L, L+0=L, 0-L=-L, -L+0=-L, 0+T=T, T+0=T, 0-T=-T, -T+0=-T}
Noter le sucre syntaxique qui crée implicitement un opérateur -(.,.) tel que x-y = x + (-y) et que la priorité syntaxique du -(.) et plus grande que celle du -(.,.) qui est plus grande que celle du +(.,.).
L'étalon de déplacement L avec l'opération +(.,.) va engendrer par composition et clôture, un monoïde monogène qui est nécessairement commutatif puisque monogène. Cette structure peut se présenter sous plusieurs expressions en notations programmatives et linguistiques :
Monoïde monogène (+, L)
Monoïde (+) [L]
<+, L > / {(x+y)+z = x+(y+z)}
où x,y,z sont des symboles de variables à ajouter dans le langage, et qui désignent des éléments quelconques du monoïde monogène.
Dans cette structure, l'opération + correspond à l'opération de composition de deux déplacements, l'opération - correspond à l'inversion d'un déplacement en changeant son sens, et les variables x, y, z correspondrons à trois déplacements quelconques :
L'élément 0 est l'élément neutre puisque 0+L=L, L+0=L, 0+0=0. En ajoutant cet élément, le monoïde monogène devient unitaire :
Monoïde unitaire monogène (+, 0, L)
Monoïde unitaire (+, 0) [L]
Monoïde (+) [0,L / {0+L =L, L+0=L, 0+0=0}
<+, 0, L > / {(x+y)+z = x+(y+z), 0+L =L, L+0=L, 0+0=0}
<+, 0, L > / {(x+y)+z = x+(y+z),0+x=x, x+0=x}
La fonction unaire -(.) qui appliquer à un déplacement produit le déplacement opposé obtenue en changeant son sens, est l'application inverse de l'opération +, puisque L-L=0, -L+L=0, -0=0, -L+0=-L, 0-L=-L . En ajoutant cet opérateur, le monoïde unitaire monogène devient un groupe monogène :
Groupe monogène (+, -, 0, L)
Groupe (+, -, 0) [L]
Monoïde unitaire (+,0) [L, -] / {L-L=0, -L+L=0, -0=0}
<+, -, 0, L > / {(x+y)+z = x+(y+z), L-L =0, -L+L=0, L+0=L, 0+L=L, -L+0=-L, 0+0=0, (-0)=0}
<+, -, 0, L > / {(x+y)+z = x+(y+z), x+0=0, 0+x=0, x+(-x)=0, (-x)+x=0}
La question ce pose alors de savoir si le groupe monogène est libre ou cyclique. En effet un groupe monogène est soit libre ou cyclique. Il y a donc à ce stade deux choix possibles.
(8) Les déplacements forment un groupe monogène libre, noté Z.
(8 bis) Les déplacements forment un groupe monogène cyclique, noté Z/nZ.
Puis nous avons besoin des opérations de calcul que sont l'addition et la multiplication dans un corps. C'est là qu'interviennent les connaissances mathématiques sur les structures de corps. Nous faisons agire librement les nombres entiers, les nombres rationels, les nombre aglèbriques, les nombres calculables, les complexes entiers, les complexes rationels, les complexes algèbriques, les complexes calculables, les quaternions demi-entiers, les quaternions rationels, les quaternions calculables, et peut-être encore d'autre corps.... Nous faisons agire librement un corps (K, *, /, 1, +, -, 0) , sur notre groupe (G, +, - 0), comme suit :
K x G --> KG
(k,g) --> k*g
où * est alors une opération externe n'imposant aucune restriction, c'est à dire l'égale d'un couple. Puis on ajoute les régle d'égalité suivantes :
1*g = g
0*g = 0
(k1*g)°(k2*g) = (k1+k2)*g
k*(-g)= (-k)*g