Ok

En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Ces derniers assurent le bon fonctionnement de nos services. En savoir plus.

  • Les orthodoxies radicales

    "Radical Orthodoxy" (1) est une théologie catholique réactionnaire qui a pour intérêt, mérite et valeur de dénoncer Scot (et Ockham) comme les initiateurs de la modernité. Rien que ça et on en est d'accord. Refondateurs de l'ordre ancien celui qui fut donc abandonné au tournant du XIVème siècle, ils exposent ce qu'est le catholicisme et aussi la chrétienté et tapent sur tout ce qui suivit, Scot introduisant le diable, c'est-à-dire le transcendantalisme, ruinant le transcendant.  

    Les oppositions termes à termes de concepts et conceptions, plaisant à mes pensées binaires, sont saisissantes et illustratives, nul n'imagine la profondeur et la richesse des vieilles conceptions recyclées dans l'obscurité mais oubliées, et cela, c'est la faute à Scot, depuis longtemps. 

    En fait je découvre émerveillé, confirmée par ses ennemis, la grande thèse que le tournant moderne eut bien ieu en 1277 à Paris, là où Scot allait passer le bac, sur les bords de la Seine: la condamnation d'Etienne Tempier... A partir de là Aquin quoiqu'on en dise, avait perdu et l'avenir s'annonçait.

    Les noms d'Olivier Boulnois, André de Muralt, doivent être cités. 

    Moi qui d'habitude paraphrase, je cite: 

    """

    S’il fallait résumer la position ‘radical-orthodoxe’, ses thèses fondamentales sont les suivantes : la théologie et métaphysique de Scot et d’Ockham, en établissant le primat de l’intellect sur l’objet intelligé, ont érigé en ultime principe d’abstraction la représentation aux dépens de l’élévation et ainsi ont privilégié l’épistémologie par rapport à l’ontologie ; Scot et Ockham ont concouru de façon décisive au passage de la chrétienté et d’une économie liturgique à la modernité et à un ordre spatial en substituant une théologie et une métaphysique de la volonté à la théologie et à la métaphysique de la participation en son articulation suprême chez Thomas d’Aquin. 

    """

    On pourrait reprendre les thèmes, mais le statut cognitif de l'analogie par rapport à l'univocité est ici décisif: le religieux qui imprégnait le réel et qui donc devait s'en distinguer radicalement devient un être éloigné du monde, mais tout puissant tel qu'on peut le décrire. L'onto-théologique devient différent et au contraire de ce qu'on croit savoir, l'être devient un caractère auquel se soumet Dieu au lieu d'être ce qu'on pourrait lui reprocher: Dieu lui même, trame du monde. Scot est bien un moderne et il n'y a qu'une volonté, qu'un seul être et Dieu en dépend. Ce faisant, et cela est le paradoxe, Dieu est absolument libre et fait ce qu'il veut, on dirait que cela compense sa sujétion, à part que l'homme en profite: lui aussi, l'être étant univoque, est libre. Complètement.  

     

    La différence formelle

    Il est important d'avoir les idées claires là-dessus. La différence "formelle" est une différence qui se conçoit et se pense entre deux choses qui ne peuvent être qu'identiques. L'exemple est la différence (en fait l'identité) entre "création" et "créature". 

    La "création" est une relation, et la créature est une chose. Néanmoins, les deux s'identifient. En effet, l'une ne peut exister sans l'autre. On voit là l'importance de la notion même de création dans cette ontologie et l'influence de la vision "créé par qqchose" du monde... Néanmoins, on n'a là qu'un exemple, c'est tout, même si bien le concept est élaboré pour décrire un fondamental... 

    Néanmoins, le cependant a un néanmoins. La relation est moins prioritaire que la chose, et donc est contenue dans la chose, non pas comme un "accident" (elle serait alors créé, et donc on partirait à l'infini, la relation de la relation apparaissant tout de suite), mais comme  une chose identique ET moins prioritaire. La relation de création est "transcendantale" au sens du Moyen Âge, c’est-à-dire "non catégorique": elle n'ajoute rien à l'être, mais est, (en quelque sorte) une "condition" d'existence et est identique à la chose. Saint Bonaventure le disait déjà. On rappelle que les relations catégoriques relient aux dix catégories de l'être, selon Aristote. 

    "et ideo relationes creaturae ad Deum sunt transcendentes, propter quod non sunt in genere relationis". 

    La relation revient à son étant AVANT toute espèce de genre (...). Elle est la relation entre les personnes de la trinité, réellement indistinctes, et formellement distinctes. (C'est en fait l'une des questions: il faut penser la trinité). 

    Il y a là un désaccord fondamental avec Aquin, pour qui la relation est distincte de l'objet. La "justification" (tout se pense au service de certains intérêts) de cette conception est liée à la doctrine générale d'Aquin qui distingue les DEUX ordres ("duplex ordo in universo"): entre les hommes et Dieu d'une part et entre les hommes d'autres part. 

    La relation est ainsi pour lui un "accident", ce qui a deux conséquences: d'une part la relation au  créateur est première et permanente, source d'être et participation à l'être divin. D'autre part, comme la relation est "accidentelle", elle autonomise dans un second temps la création et la rend rationnelle. On a donc les deux aspects de la question, dualisés chez Scot qui en prend le contrepied. Au nom de l'évidence existentielle de la création, on se retrouve avec une dépendance corporelle à l'arbitraire divin et aussi ce qui rattrape la chose, avec  une identification au divin avec qui on partage l'être. 

    Il n'y a plus d'"ordre" et de fait, c'est l'enjeu de la prétention radicale orthodoxe que de refuser la chose. 

    On peut alors tenter de diviser les théologiens modernes, Lubac et son surnaturel du côté Aquin et Rahner avec son "être constitué par la transcendance" (parait-il mais c'est à voir) du côté Scot. 

    Cette histoire de "participation" est en tout cas bien séduisante à concevoir: une conception pro déiste de l'humain qui fait de la présence nécessaire de Dieu un caractère du religieux, un soutien à la solitude humaine et surtout un caractère du monde, intrinsèquement religieux. Cela serait le prix à payer pour son autonomie rationnelle, qui serait alors un don de Dieu (comme c'est bien fait...), qui peut même encourir le reproche d'être un peu trop "naturalisant". 

    Aquin insiste alors sur la différence essence/existence, au détriment de l'essence (les êtres sont différents, seulement analogues, c'est d'ailleurs toute une histoire), on favorise la présence de Dieu dans le monde. 

    Alors que la moderne, au fait de l'évidence divine, et dont il devient alors facile de se débarrasser, se caractérise surtout par sa liberté et donc par l'arbitraire divin et humain. 

    Au passage, une définition de l'"être" comme relation entre essence et existence. Qu'est-ce que l'être ? Les différentes formes de cette relation... Pour Scot, l'existence dépasse l'essence et a pour vocation d'aller à la béatitude. Ah que c'est beau, tout ça. 

     

    L'Analogie 

    Puisqu'on parle de l'ordre du monde, pour Aquin il y en a deux, comme on a dit. "duplex". Cela veut dire deux êtres, celui du créateur et celui de la créature (comme on se retrouve). Venons en aux prédicats attribués aux choses qui peuvent être 1) "univoques" c’est-à-dire caractérisant la réalité unique et commune des choses 2) "équivoques", c'est-à-dire caractérisant des réalités différentes, 3) possiblement "analogues" c’est-à-dire ordonnant les choses suivant leurs proximités  à un premier, celui-ci étant "causal" des autres. 

    De fait, la question est d'importance: l'être est-il un ou multiple ?  La question arrive dans le monde chrétien qui innove avec son créateur sémite radicalement original dans le cosmos incréé des grecs. Pour Aristote, l'être se dit "de plusieurs choses", mais en relation toujours avec la substance, sous un sens ou un autre, c'est la fameuse (parait-il) équivalence avec le "sain" qui conserve, figure ou produit toujours la même chose et qui est la "santé". 

    Bon, les moyen-âgeux hésitaient entre un être "univoque" (ça c'est Scot) qui conduirait au panthéisme car la nature devient identique au divin qui est ainsi rendu inutile, ou "équivoque" et là on ne peut plus connaitre Dieu du tout, car trop différent... Ce fut le mérite d'Aquin que de trouver un juste milieu... 

     

     

    (1) https://www.cairn.info/revue-des-sciences-philosophiques-et-theologiques-2002-4-page-561.htm

    (2) Louis-Marie Chauvet https://www.nonfiction.fr/article-10681-dieu-les-sacrements-et-les-catholiques.htm$

    (3) La doctrine Aquinate de la création: https://doc.rero.ch/record/329816/files/emery_relation_creation.pdf

    (4) la distinction formelle et le pb corps esprit : http://martinetl.free.fr/philosophie/scot_davidson.htm

    (5) La doctrine de l'analogie d'Aquin : https://www.thomas-d-aquin.com/Pages/Forum/Montagnes_anal_entis.pdf

  • Les foncteurs

    aha! A force de lire de la vulgarisation neuneu, on finit par avoir quelques éclairs. 

    Ici on a réalisé la correspondance entre concepts de la théorie des catégories et autre fonctionnellations des langages de programmation. Plus exactement on a réalisé le sens des mots, la plus importante chose qui soit au monde. 

    Algèbre

    D'abord l'algèbre (al gabr)  c'est ce qui permet la réduction (chirurgicale, aussi) dans le calcul. L'"algébrique" c'est tout ce qui traite des "opérations" sur les objets. L'opération chirurgicale veut donc dire ce que ça veut dire... 

    Une structure algébrique est une collection d'objets (on ne dira pas "ensemble" par snobisme) et une opération, définie par une collection des flèches entre les objets. 

    Les structures algébriques se différencient suivant leurs propriétés... Les principales d'entre elles concernent la composition entre les flèches. On doit bien distinguer flèche et composition entre flèches. En fait la véritable "opération" est bien sur celle qui s'applique entre deux flèches et qui produit une autre flèche. "Produit" et non "Réduit" à moins que ce ne soit l'inverse, la réduction consistant à remplacer les deux flèches originales par une nouvelle. 

    Une "catégorie" se caractérise par une composition associative des flèches, avec une flèche identité pour chaque objet qui compose à l'identique dans les deux directions. La catégorie est la première structure de ce type, la structure "première" donc.

    D'un certain point de vue, une catégorie est exclusivement un ensemble de flèches, les flèches "identité" représentant très bien les objets...

    Le "monoïde", catégorie à un objet, n'a qu'une flèche identité et autant de flèches composables de et vers l'unique objet qu'on veut. Une seule flèche composable suffit pour toute les avoir par composition. L'image de tout cela est évidemment l'ensemble des entiers défini par zéro (la flèche identité) et l'incrément (la flèche "inc") qui peut générer tout entier par exemple 1000 (inc composé 1000 fois avec elle-même). 

    Une catégorie n'est pas "fermée", car deux flèches peuvent très bien ne pas "composer".  Elle n'est pas forcément ni "invertible" ni "commutative", comme les groupes et les groupes abéliens. 

    Un "monoïde" est évidemment "fermé" et un "semi groupe" n'est pas "invertible".

    Un "groupoïde" est une catégorie "invertible".

    Un "magma" n'a qu'une propriété: la "fermeture"... 

    Entre catégories, on a les "foncteurs" qui sont des transformations de catégorie à catégorie qui préservent la structure de la catégorie, c’est-à-dire associent une flèche associative de l'un à une flèche  associative de l'autre... 

    Entre les foncteurs, on a les "transformations naturelles". Elles jouent le rôle des flèches dans la catégorie des foncteurs. 

    Programmes

    La correspondance avec la programmation est basique. "Prog" est la catégorie des types et les flèches sont les fonctions entre les types. 

    On passe tout de suite aux "foncteurs", en fait les "endofoncteurs" restant dans Prog. 

    On les définira comme DEUX fonctions, une entre types (un type générique étant évidemment une application des types vers les types) et une entre flèches, c’est-à-dire entre fonctions. La deuxième fonction est une fonctionnelle, c’est-à-dire prend en argument une fonction simple entre deux types, une flèche, quoi. 

    Aha ! Un  trait "higher kind" F[_] doté d'une fonction "map" qui préserve la structure est donc un "foncteur". 

    Note: préserver la structure signifie préserver la structure des flèches: s'il y a flèche, l'image de la flèche sera une flèche. Par conséquent "map", la fonction de correspondance entre flèches aura pour signature dans "Prog": 

    A->B    ->    F[A]->F[B]

    Ce qui exactement la projection astucieuse et pratique que l'on utilise dans les langages Haskell et Scala. 

    Pour enfoncer le clou sur cette histoire de vocabulaire,

    1) On dit que la fonction (la flèche) originale mappée par map est "liftée" (soulevée, poussée) en une fonction de l'autre monde. 

    2) On dit que le type générique F[_] est en fait un "constructeur unaire" du type de destination du foncteur (en fait sa première fonction de mapping) 

    3) Toutes les associations possibles internes à Prog sont ainsi par extensions des "foncteurs", le mot étant la super classe des entités dérivées qui toutes rajoutent des moyens de produire des flèches dans Prog. 

    On trouvera ainsi parmi les foncteurs, les "Applicative"s et les "Monades". 

    Monades

    Les endo-foncteurs de Prog forment une catégorie (la démonstration est laissée au lecteur). 

    On va chercher à construire un monoïde dans cette catégorie là. Pour cela il nous faut un objet, un foncteur donc, et deux flèches. Une identité, qui associe le foncteur avec lui-même et une opération "binaire" ou une addition itérable.

    L'identité est une identité entre foncteurs appliquée au foncteur choisi. C'est une flèche qui s'identifie au foncteur lui-même c’est-à-dire à son constructeur. La fonction qui à partir d'un type donné donne son correspondant fonctor-arisé (...). Ce sera la flèche "zéro" du monoïde, qui transforme le foncteur en lui-même exactement. 

    La flèche "un" ("inc") du monoïde va transformer le foncteur en lui-même mais d'une manière différente. Pour décrire cette transformation, il faut considérer la signification profonde du foncteur, sa structure interne ! En effet un foncteur est lui-même une transformation de types et de flèches. Pour décrire une transformation de foncteurs on doit spécifier comment se font les mises en correspondances internes des objets. 

    Par exemple un carré peut être mis en correspondance avec lui-même de plusieurs manières, suivant la manière dont on le retourne. 

    Ici, on va mettre en correspondance les flèches de A vers F[B] et les flèches de F[A] vers F[B]. La transformation des flèches va s'appeller "flatMap". Est ce la bonne interprétation ? En tout cas je me comprends. 

    En fait, on se doit de considérer les "transformations naturelles", qui sont les flèches entre endofoncteurs.

    Une autre tentative est la définition stricte: les deux "transformations naturelles" à définir pour que le monoïde apparaisse sont :

    "éta" l'identité et "mu" la composition. En fait ce sont des contraintes supplémentaires sur le foncteur choisi.

    Une monade est donc un monoïde sur la catégorie des endofoncteurs, et s'identifie donc à un endofoncteur unique. 

    On se retrouve avec un nouveau foncteur, la "monade", et  une opération supplémentaire, flatMap. 

    Ce qu'il y a d'assez saisissant ici, c'est le boulevard de correspondances signifiantes et organisées qui s'ouvre devant nous. 

    Car la monade c'est aussi un foncteur sur la catégorie de Kleisli. 

    On a ici une transformation de flèches particulières, celle de A vers C ou C est en fait l'image par F d'un type B, que finalement on retrouve après la transformation. Ces flèches qui transforment par le foncteur leur type de destination, ici B, sont des "flèches de Kleisli". Leur type de destination est le résultat d'une transformation ou extension, qui modélise ce qu'on appelle en programmation fonctionnelle un "effet". Par exemple, le foncteur "option" ajoute une valeur indéterminée (None) à tout type. On avait déjà expliqué ce genre de chose. La catégorie de ces flèches est la catégorie de Kleisli. 

    Ce qui est propre à la monade, c'est de transformer les flèches de Kleisli de manière à les rendre composables, la composition via flatMap ayant la sémantique du séquencement avec passage de paramètres, essence de la programmation "utile", celle qui consiste à programmer(...). 

     

    Les références explicitent tout cela bien mieux... 

    Applicatives 

    Il y a mieux et moins connu, mais tout aussi essentiel à la compréhension de la partie "catégorie" de la programmation fonctionnelle. C'est "Applicative", l'intermédiaire entre Foncteur et Monade, un autre foncteur (5).

    La fonction de mapping des flèches qui produit une flèche entre les images de deux objets par le foncteur est ici appliquée non pas aux flèches elles-mêmes (comme pour les foncteurs) , aux flèches de kleilsli (comme pour les monades) mais pour l'image par le foncteur d'une flèche:

    F[A=>B]    =>   F[A] => F[B]

    Pour comprendre "ap", il faut se ramener à "List". 

    La fonctorisation de la flèche va donner ici une liste de fonctions à appliquer: 

    (_+1 , _+2) ap List(0, 1) == (1, 2)  ++ (2, 3)  

    Le truc marrant dans l'histoire, est que l'on peut lors de cette fabrication, distribuer les fonctions ou les associer strictement dans la liste passée en argument. Les deux formes sont compatibles avec les lois. Tout sera alors une question de dénomination. 

    On doit évoquer aussi mapN... 

     

     

    (1) https://medium.com/free-code-camp/demystifying-the-monad-in-scala-cc716bb6f534

    (2) https://cdsmith.wordpress.com/2012/04/18/why-do-monads-matter/

    (3) histoire des langages de programmation http://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html

    (4) les monades par tous les bouts https://justinhj.github.io/2021/02/02/monads-in-scala-3-for-the-genius.html

    (5) Whatsap ? https://justinhj.github.io/2020/04/04/whats-ap.html