L’
auto-référence est la propriété, pour un système, de faire référence à lui-même. La référence est possible lorsqu’on est en présence de deux niveaux logiques, un niveau et un méta-niveau. Cette situation se rencontre fréquemment en
Mathématiques, en
Philosophie, en programmation ou encore en
Linguistique.
Il y a hétéro-référence lorsqu’un mot (ou une phrase) se réfère à un objet (ou une situation) du monde, par exemple : une encyclopédie. Il y a auto-référence lorsqu’un signe se réfère à lui-même. Ainsi, la phrase : « Cette phrase compte cinq mots. » est auto-référente. Les phrases auto-référentes peuvent être paradoxales ; ainsi : « Cette phrase est un mensonge » (paradoxe d'Épiménide) ne peut être classée vraie ou fausse. Un paradoxe de type Épiménide peut être considéré comme la négation d’une auto-référence. Exemples tirés du Trésor des Paradoxes (Éd. Belin) : « N’est pas en français est en français » ; « Imprimé ici n’est pas imprimé ici » ; « Ma fourche ne langue jamais » (contrepèterie avec négation d’une auto-référence) ; « Je ne m’ai jamais trompé en parlant » ; « Cette phrase n’est pas auto-référente » ; « Si cette phrase était traduite en chinois, elle signifierait tout autre chose » (Douglas Hofstadter). Synthèse possible de tous ces exemples : « Ceci n’est pas un article de Wikipédia ».
Un autre type de situation auto-référentielle est celui de l’Autopoïèse, car l’organisation logique produit la structure physique qui la réalise logiquement et la régénère.
Certains concepts ont un fort caractère auto-référentiel, par exemple
Conscience, être,
Réalité, identité,
Existence. Ils renvoient à eux-mêmes : on parle de miroir ontologique.
Kurt Gödel a révolutionné les mathématiques en
1931, en utilisant une variante du
paradoxe d'Epiménide pour prouver l'incomplétude des
systèmes mathématiques qui contiennent les entiers naturels.
En mathématiques et en logique mathématique l'auto-référence s'appelle l'imprédicativité (ou la non prédicativité). Ce concept est au coeur du débat sur les fondements qui au opposa Henri Poincaré et Bertrand Russell au début du XXe siècle.
En programmation informatique
En programmation, on peut faire référence à une variable par un pointeur. En Pascal, par exemple, la référence à une variable V s'écrit @V. Ainsi, si on définit une pointeur P de la sorte : <source lang="pascal"> var P: Pointer;
I: Integer;
begin
P := @I; { P pointe sur l'entier I }
P := @P; { Maintenant, P pointe sur lui-même }
end. </source> A la fin, le pointeur P pointera sur lui-même.
On peut faire des exemples plus complexe avec des types structurés. Par exemple : <source lang="pascal"> type { définition des types de variables utilisés }
PStructure = ^TStructure; { type pointeur vers structure }
TStructure = record { le type de la structure elle-même }
a,b,c: integer; { quelques variables, ici des nombres entiers }
SoiMeme: PStructure; { le pointeur que l'on va utiliser pour l'autoréférencement }
end;
var
S : TStructure; { notre variable de structure }
begin
S.a := 5; { on définit des valeurs }
S.b := 6;
S.c := 8;
S.SoiMeme := @S; { on affecte au pointeur de structure l'adresse de S elle-même }
end. </source> L'intérêt peut être par exemple de faire une liste chainée infinie. Par exemple, si on définit le type suivant : <source lang="pascal"> type
PListe = ^TListe;
TListe = record
element : integer;
suivant : PListe;
end;
</source> On peut faire quelques éléments distinct 1, 2 puis 3, puis on revient à 3. Cela donnera la suite infinie 1, 2, 3, 3, 3... <source lang=pascal> var
un, deux, trois: TListe;
begin
un.element := 1;
un.suivant := @deux;
deux.element := 2;
deux.suivant := @trois;
trois.element := 3;
trois.suivant := @trois; { autoréférencement }
EcrireListe(un);
end. </source> Avec la procédure
EcrireListe suivante : <source lang=pascal> procedure EcrireListe(liste: TListe); begin
write(liste.element);
{ test si fin de liste: ça n'arrivera pas dans le cas en question }
if (liste.suivant = nil) then writeln('. Fini.') else
begin
write(', ');
EcrireListe(liste.suivant^); { déréférencement: en effet, 'suivant' est un pointeur,
pas une TListe, tandis que 'suivant^' correspond bien
à la variable liste }
end;
end; </source> Notons que
EcrireListe est une procédure
récursive, c'est-à-dire autoréférente.
Elle apparaît principalement pour les
autonymes, c'est-à-dire les mots cités en tant que mots. Les autonymes doivent être marqués
typographiquement pour être distingués du discours non auto-référent. Le soulignement peut être utilisé dans un texte manuscrit, l'
Italique dans un texte dactylographié. Par exemple : « le mot
mot est un nom ». Cela renvoie au paradoxe de Grelling-Nelson.
Le poème de
Francis Ponge Fable commence par
« Par le mot par commence ce texte » et le second vers est « Dont la première ligne dit la vérité ».
La mention «
Vous êtes ici », présente sur les
cartes implantées à un endroit fixe.
Voir aussi
Liens internes
Bibliographie
- Raymond Smullyan, Les théorèmes d'incomplétude de Gödel, Dunod, 2000 - ISBN 210005287X ( Manuel de logique sur les théorèmes d'incomplétude, agrémenté d'exemples où l'autoréférence apparaît dans un système formel)
- Raymond Smullyan, Le livre qui rend fou, Dunod, 1984 - ISBN 210003202X (ouvrage de vulgarisation sur les mêmes thèmes)
- Douglas Hofstadter, Gödel, Escher, Bach : les Brins d'une Guirlande Éternelle, Éditeur : Intereditions (ouvrage en grande partie consacré au concept d'auto-référence)
- Douglas Hofstadter, Ma thémagie, Éditeur : Intereditions. (Les premiers chapitres sont consacrés à des phrases autoréférentielles dans le Langage naturel.)
- Philippe Boulanger & Alain Cohen, Le Trésor des Paradoxes, Belin, 2007 (présentation éclectique sur l'ubiquité des paradoxes, incluant les auto-références, notamment en matière de communication).
Liens externes