la logique polonaise

Bonjour à tous, dans le tangente de ce mois ci, un dossier est dédié à l'école polonaise de mathématiques. Un article à attiré mon attention : La notation polonaise : elle permet d'écrire des expressions logiques sans parenthèses. Elle a été introduite par Jan Lukasiewizc avec le système $NKA$ :

N pour la négation : $ \neg p \Rightarrow Np$
K pour la conjonction : $ p \wedge q \Rightarrow Kpq$
A pour la disjonction : $ p \vee q \Rightarrow Apq$

j'ai été surpris par la relative facilité à lire les expressions logiques avec ces notations, un exemple :

$$\neg (p \wedge \neg ( q \vee (\neg (s) \vee p)))) \vee (s \wedge p) \Rightarrow ANKpNAqANspKsp $$

Donc, connaissiez vous, connaissez vous des applications de cette logique ? Je sais que les calculatrices HP utilisent ce système sans parenthèses, mais à part ca...

Réponses

  • Je connais la notation polnaise inversée ( http://fr.wikipedia.org/wiki/Notation_polonaise_inversée ) qui, pour ce que j'en sais, a pour principal intéret qu'elle est facile à "parser" par un programme... Ca rejoint ton intuition qu'elle est facile à lire..
  • Bonjour.

    La notation de Lukasiewic ou notation préfixée (les symboles d'opérateurs sont notés devant les variables propositionnelles) ou la notation postfixée (les variables sont notées avant les symboles d'opérateurs) viennent de la même idée : éviter les parenthèses ce qui raccourcit les suites de signes. Ces deux systèmes de notations ne se sont pas imposés en logique mathématique probablement parce que l'écriture de formules n'est pas l'objet de la logique et que nous sommes trop imprégnés d'écriture algébrique.

    H.P. a eu l'idée d'implanter cette notation dans ses premières calculettes mais cela a peut-être bien nui à sa pénétration sur le marché des calculatrices non scientifiques. J'ai encore en mémoire un brave notaire de village qui, à chque calcul murmurait : "Bon, alors celui là je l'envoie en haut..." avant de presser la touche d'empilement.

    Rappelons au chapitre des notations simplificatrices oubliées le connecteur appelé "barre de Schäffer" (orthographe incertaine) et qui permet de définir tous les autres connecteurs.

    Bruno
  • Raymond Queneau avait noté l'utilisation dans la langue française de cette logique.
    Dans la conversation courante, on place au début les indications grammaticales, et
    à la fin : les données concrètes.
    Tu y as été toi, cet été, en Espagne ?
    Il l'avait déjà gagné , l'année dernière, le Tour, Bobet ?


    Amicalement
    Cucherat
  • Si la notation polonaise était lisible, ça se saurait et on l'utiliserait !
    Quelques propositions tirées d'une démonstration (Elements of math. logic, Lukasiewicz, 1929) :

    CCCpqCCqrCprCCCCqrCprsCCpqs
    CCCCCqrCsrCpCsrCCsqCpCsrCCpCqrCCsqCpCsr
    CCCCqrCsrCpCsrCCsqCpCsr

    (Cpq, c'est p => q)

    Vous voyez rapidement les formules associées aux connecteurs principaux ? Moi pas ..

    C'est fait pour les machines, pas pour les hommes :)
    La notation avec les points de Russell, Whitehead, elle, était faite pour les hommes..
  • Bruno Écrivait:
    > Rappelons au chapitre des notations
    > simplificatrices oubliées le connecteur appelé
    > "barre de Schäffer" (orthographe incertaine) et
    > qui permet de définir tous les autres
    > connecteurs.
    >
    > Bruno


    tiens, ça m'intéresse aussi, tu connais des références dessus ?
  • Non Geekologist, ce sont des réminiscences de "curiosités" lors de mes études.

    On trouve la définition des deux barres de Sheffer (orthographe contrôlée) page 49 du tome 1 de Lascar et Cori. Ce connecteur A | B prend la valeur "faux" sauf si les deux variables prennent cette même valeur.

    On obtient donc "non" A se définit alors comme |AA, "A ou B" comme ||AB|AB en notation préfixée. Comme on a là un générateur de l'ensemble de tous les connecteurs binaires usuels, le tour est joué.

    Bruno
  • Bruno, il me semble que ce que tu appelles "connecteur de Sheffer" est bien connu en algèbre de Boole sous le nom de connecteur nor (ie $\overline{p\vee q}$) et dont je croyais qu'il s'appelait connecteur de Peirce.
    Ce que je connais sous le nom de connecteur de Sheffer est en fait le connecteur nand (ie $\overline{p\wedge q}$).
    Mes informations seraient-elles erronées ?
    Quoi qu'il en soit, il est effectivement bien connu qu'on peut écrire tous les connecteurs binaires à l'aide uniquement du seul connecteur nor (ou du seul connecteur nand, puisqu'il y a dualité).
  • Aleg

    Effectivement, dans mes cours de logique électronique de l'année dernière, on nous tannait avec des exos "câbler le circuit uniquement avec des portes NAND/NOR etc..."

    Merci quand même Bruno, je regarderai par moi même si je trouve quelque chose

    [Inutile de répéter in extenso le message précédent. AD]
    [Une vieille habitude des chans IRC et autres]
  • En fait, dans Cori Lascar il parlent de barre de Scheffer "ou" et de barre de Scheffer "et" ; ce qui rejoint ce que tu écris Aleg, ils ont appelé les deux connecteurs, "barre de Scheffer", alors que, de mémoire, je n'ai jamais connu de nom pour l'autre.

    Le fait important (et, bien connu des électroniciens) c'est que l'on tient là un générateur minimal de l'anneau des connecteurs.

    Bruno
  • c'est pas mal utilisé en électronique pour faire de la commutation ou des oscillateurs autonome que l'on peut coupler à une diode par exemple pour obtenir une tension seuil au déclenchement, par exemple les detecteurs de pluie, de lumières des phares des voitures marchent sur ce même principe
  • Cucherat, as-tu une référence pour Queneau et la notation polonaise inversée ?
  • Les deux phrases citées viennent de :"bâtons chiffres et lettres" dans
    la partie "écrit en 1955" .
    Je suis sur qu'il en parle ailleurs, je vais fouiller ma bibli.

    Amicalement
    Cucherat
  • Si la notation polonaise était lisible, ça se saurait et on l'utiliserait !

    L'importance de l'Habitude prise explique aussi peut-être qu'on n'a pas envie de changer et, dans un monde parallèle;) peut-être est-elle utilisée.

    Par contre, il y a aussi une raison plus profonde qui fait obstacle à son utilisation: pour être compréhensible (avoir un sens) l'arité des symboles doit être parfaitement définie et fixe. Du coup, on n'économise pas les parenthèses face aux opérations associatives, si on veut économiser de l'encre. Sans parler que pour les suites de chiffres, on doit mettre des virgules ou trouver autrechose.

    Par exemple: /-345=(3-4)/5 là, ça va, mais /-161654564=???

    9+5+6+7=+++9567???

    Une opération qu'on déclare associative et sans "arité fixe" nécessite un truc plus élégant du genre:

    /+(abcd).5-5.(yzz)=(a+b+c+d)/(5.(5-(yzz)))

    Curieusement, cette façon de noter s'impose "naturellement" en logique combinatoire ou en lambda calcul avec pourtant des opérations qui n'ont pas d'arité fixe et une priorité à gauche tacite des parenthèse, l'avantage:

    considérer tous les "débuts" d'expression comme ayant un sens!

    /8a désigne 8/a, mais /8 désigne la fonction qui associe 8/t à t.

    Si on veut écrire le polynôme x--->x²+3x+7 par exemple:

    x²+3x+7 = +.xx+.3x7 et on veut abstraire x!

    on peut l'écrire sous la forme W++(fx)(gx)(hx), ie T(fx)(gx)(hx) avec T=W++

    fx:=.xx
    gx:=.3x
    hx:=7

    Introduction de "combinateurs" très classiques:

    W est la composition ie Waby:=a(by)

    [clone]uv:=uvv
    [compose3,1]dabct:=d(at)(bt)(ct)
    [constante]ab:=a

    ainsi le polynôme s'écrit [compose3,1]TABC avec

    A:=[clone].
    B:=.3
    C:=[constante]7

    c'est-à-dire:

    [compose3,1](W++)([clone].)(.3)([constante]7)


    Remarque: pas lieu de "se méfier" des "combinateurs" car il sont "typables" par la logique et donc "ne bouclent jamais" quand on les exécute.

    type de clone=(A--->(A--->B)--->(A--->B)
    type de constante=A--->(B--->A)
    type de compose3,1=...exercice... pour ceux que ça intéresse.
    Aide les autres comme toi-même car ils sont toi, ils sont vraiment toi
  • Sauf que en écriture polonaise inversée, typiquement sur les calculatrices HP (3-4)/5 s'écrit :

    3 4 - 5 /

    il y a donc un certaine façon de positionner les opérateurs et les opérandes, ce qui permet de conserver une certaine lisibilité du calcul
Connectez-vous ou Inscrivez-vous pour répondre.