Vérification des textes mathématiques par un ordinateur
Citation for published version (APA):Bruijn, de, N. G. (1969). Vérification des textes mathématiques par un ordinateur: conférence à Lille, le 21 novembre 1969. Technische Hogeschool Eindhoven.
Document status and date: Gepubliceerd: 01/01/1969
Document Version:
Uitgevers PDF, ook bekend als Version of Record
Please check the document version of this publication:
• A submitted manuscript is the version of the article upon submission and before peer-review. There can be important differences between the submitted version and the official published version of record. People interested in the research are advised to contact the author for the final version of the publication, or visit the DOI to the publisher's website.
• The final author version and the galley proof are versions of the publication after peer review.
• The final published version features the final layout of the paper including the volume, issue and page numbers.
Link to publication
General rights
Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain
• You may freely distribute the URL identifying the publication in the public portal.
If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, please follow below link for the End User Agreement:
www.tue.nl/taverne
Take down policy
If you believe that this document breaches copyright please contact us at:
openaccess@tue.nl
providing details and we will investigate your claim.
Notitie Nr. 18 (1
969-1
970)
14 november1969
Technological University Eindhoven Department of Mathematics
Verification textes mathematiques jar un ordinateur. Conference & Lille, le 21 novembre
1969,
par
N.
G. de Brui jn (~indhoven).Le probleme de ve'rification des textes mathdmatiques est au fond le probleme de d6finir un.langage. I1 faut que ce hngage satisfait aux propriet6s suivantes: 1. Tout ce qu'est correct en mathe'matiques peut &re exprim6 avec ce langage, conform 8, sa grammaire, et tout ce qulon peut dire au moyen ce langage est correct en math6matiques.
2. On admet que les textes de mathematiques ordinaires stallongent par lb traduction, mais on nladmet pas que la proportion de l'allongement tend vers lfinfini b mesure qu'on fait des progrbs.
3. On dispose d l u n programme avec lequel un ordinateur peut trancher si un livre donnd est correct ou non.
La tache no. 1 est vraiment impossible, En premier lieu, il semble impossible de prdciser ce qulil veut dire "math6matiques". Pourtant, on peut essayer de circonscrire une partie de math6matiques, assez large pour la pratique quotidienne. I1 semble que le langage AUTOMATH, ddveloppe &
Eindhoven depuis 1
967,
satisfait % cette condition, ainsi qu aux conditions2 et
3.
Dans cette conference-ci, nous considdrons principalement la definition du langage. A fin de mieux Qtablir les difficult& principales, nous allons discuter d'abord deux langages plus simples:premi&rement SEMIPAL, oh on a d6j& la structure de bloc et le systhme dlabr&viation, et ensuite PAL, oh on a, en outre, lladministration de cat6gories. On arrive &. AUTOMATH en ajoutant un systeme de quantification en forme d l u n calcul lambda g6ndralise'.
PremiBre phase: le langage SEMIPAL.
SEMIPAL est un systijme pour exprimer des notions en termes dtautres, en utilisant la structure de blocs imbriqu6sd Les expressions en SjEMIPAL ont une structure donnee par
<expression> : := < identif icat eu& identificateur list; dl expressions>) <liste dl expressions > : : = <expression >
k
liste d t expressions>,<expression>Un livre en SEMIPAL consiste d t u n liste de lignes. Les lignes ont la
< explication > : : =
-
I
PNI
<expressionLes identificateurs des lignes diverses sont tous diffdrents; si l t o n veut, on peut choisir le numdro dtune ligne comme son identificateur.
La liste des l i m e s est structurben blocs qui peuvent slimbriquer les uns dans les autres, sans se chevaucher.
A
la t&e d t u n bloc on trouve une ligne de la forme< identif icateur
>:
=-
En ce cas-ci, llidentificateur slappelle variable.
Lfindicateur dtune ligne est le variable B la tgte du plus petit bloc contenant cette ligne, sauf pour les tgtes de bloc elles-m&nes,oh llindicateur est la tete du plus petit bloc un seul except6, Si une ligne ne se trouve d a m aucun bloc, lfindicateur est le symbole 0.
La
1-
2 dlindicateurs dlune ligne est la liste des variables de t&tes de blocs contenant cette ligne, dans ltordre impose par le livre. Encore, q u a d la ligne est B la t&e d l u n bloc, son identificateur ntappartient pas 8, cette liste.Quand une expression figure dans une ligne, elle ne peut pas contenir desvariablesqui nlappartiennent pas 8. la liste dlidentificateurs. D1autre part, les identificateurs non variables peuvent &re utilises partout, pourvu qulils sont rnunis dfune liste de sous-expressions dont la longueur satisfait B
une certaine condition. Pour lfexpression b(zl
,
.
. .
,
zd).
utilisge dans la ligne A, eette condition stexprime comme suit: Si x,,...,
x est la listed'indicateurs de b, nous convenons queR 4 r
et
que la ligneA
se troilve dam le bloc de xr-
Dans ce cas on peut consid~rer b( El,. . .
,
zR)
et b(xl, a . e , Xr-pE1 9.
.
.
,
z ~ )
comme identiques. On a des modificationstriviales quand r = 0 ou r =
A.
Exemple. Nous prenons le texte qui s'ecrit normalement comme non (x) := notion primitive
et (x,y) := notion primitive
ou (x,y) := non (et(non(x), n~n(~)) imp1 (x,~) := ou (non(x)
,
y)equiv (x,y) := et (impl(x,y), impl (y,x)) outroi (x,y,z):= ou (ou(x,y), z)
tralala (x, y) := outroi (et
(x,~),
non(imp1 (x,y)), non(impl(y,x
)
)
)
Ce text. se lit en SEMIPAL cornme suit:
X :=
non := PN
1 y
:= et := PN
ou : = non ( et (non, non(y) ) )
impl : = ou (non,y)
equiv := et (impl, impl(y,x))
I
Z :=outroi : = ou (ou, z)
t r a l a a := outroi (et, non(impl), non(impl(y,x))) Dans la premiere colome on trouve les indicateurs.
Remarque. Sans changer lteffet, on peut remplacer, par exemple, la definition de "equiv" par
equiv : = et (impl (y)
,
impl (y,x)),
ou : equiv: := et (impl(x,y), impl(y,x)).DeuxiBme phase. Le langage PAL.
En PAL chdque expression a une cat&orie, sauf l e s expressions q u i sont des cate'gories elles-mBmes. Dans l e c a s d e r n i e r , on 6 c r i t au l i e u de l a
cattlgorie l e symbole type. On a l e d r o i t d t i n t r o d u i r e des c a t 6 g o r i e s nouvelles,
t i = = =
s o i t comme des v a r i a b l e s , s o i t comme des notions p r i m i t i v e s , s o i t comme des expressions. I1 y a quelques r e s t r i c t i o n s que nous donnons en forme abrdgge: 1. Une t e t e de bloc d o i t a v o i r une c a t e g o r i e qui e s t v a l a b l e dans l e bloc o'u c e t t e t & t e de bloc e s t insQr6e.
2. h ' c a t b g o r i e d f u n e notion p r i m i t i v e d o i t & r e une c a t d g o r i e v a l a b l e au m&me l i e u .
3. Quand on C c r i t des expressions comme b(E I.
'
...
,,TI), on demande (quandxI, ,
.
.
,
xr e s t l a l i s t e d ' i n d i c a t e u r s de b) que 2, s l a c a t g g o r i e de5
-
que Z2 a l a catdgorie de xr-
I+i
avec s u b s t i t u t i o n d e 2 , p o u r xrmJ, etc....
pot :=- r e e l x :=-
m22I
y :=--
produit c a r t Q s i e n := PN 3x22I
u :=-
produit c a r t d s i e n ( r e a l , n a t )On peut Q c r i r e des a s s e r t i o n s en PAL, e t p a r s u i t e , on peut donner c e r t a i n e s dbmonstrations. Pour $a on convient q u l u n e a s s e r t i o n correspond &
une catQgorie. Alors, f a i r e l l a s s e r t i o n veut d i r e : exprimer qulon a une expression avec c e t t e cat6gorie. P a r exemple s i l 1 o n veut i n t r o d u i r e Q g a l i t 6 de nombres r e e l s comme notion p r i m i t i v e , on Q c r i t
.
.
. . .
.
. .
D'ailleurs,on peut dcrire llaxi.ome p = q c o m e v := PN EGfi (P&),
et le th6orhme p = q comme
W :=
...
BxTJ (p,q),bu
..
.
est une expression qui peut Qtre considdrde cornmela d6monstration du th6or8me. Cette expression contient, soit implicitement, soit explicitement, toute information necessaire pour comprendre la dtlmonstration. Le thQor&me0
X
Y
n'est pas Bnonc4 avant que la ddmonstration soit termin6e.
Si 1 on veut
,
on peut cansiderer les propositions comme ob jets mathdmatiques:boo1 := PN
LYE
et on peut postuler que chaque proposition,ba son categorie d'affirmation:
.
-
.
-
boo1I i R U E :=PN
b ALlE
Alors, si c est une proposition queloonque, on peut affirmer c (soit comme
x : = rdel
1
y: := rdelEGAL : = PN
La!?
hypothbe, soit comme axiome, soit comme th6orSme) par une ligne
.
.
e.
.-
-
...
TRUE (c).Par suite, quand on a les r e a s $2 et q , on peut dcrire lfhypoth8se p = q comme
O
l u
: =l
a
u
( ~ 9 4CTest ainsi qulen PAL on peut ddcrire la structure de blocs en mathtlmatiques oh les t8tes de blocs sont des variables aussi bien que des hypoth&ses.
Exemple. Nous introduirons 1s notion de conjunction de deux propositions odmme notion primitive*nous exprimerons quelques axiomes et un theorbe; a p r h fa nous indiquerons comment on peut appliquer ce resultat d a m une.situation d onnde.
0 0 b 0 X Y Y asp 1 asp 2 bool b ImUE X Y and
3zE
bool Y asp3
asp3
asp.3
SxE
bool bool bool TRUE (x) w2U-E (Y TRUE (and) TRUE (and ) TRUE(x)
TRUE (Y TRUE(and(y,x) ax 21
theoremMaintenant, supposons que les lignes suivantes sont disponibles:
. . . a boo1
....
boo1....
TRu~(and(u,v) ) alors nous pouvons Qcrire3.
Troisieme phase: le langage AUTOMATH.ATJTCWIATH est plus gdndral que PAL; chaque texte en PAL est aussi valable en AUTOMATH. La diff e'rence entre les deux est qul en AUTOMATH on se sert du calcul lambda de Church, ou plut8t dlune extension de ce ca,lcul.
Si 6 est m e catggorie quelconque, une application qui donne, B tout x
du type
6,
une valeur f(x) du type q(x), est Qcrite oomeUne telle application peut &tre introduite comme une variable: p := [ x , ~
3..
q(x>ou comme notion primitive
q : E PN
[xL]
+)*
EII outre, si llexpression
c
a le type [x,51
dx),
et si llexpression A a le typer ,
on a le droit de former(4
c
Du reste, si Z a la forme Ex, t ] I' (oh I? est une expression qui contient x)
,
il est entendu que(A)
I: peut gtre rempla~6 par 1 expression obtenue- parsubstitution de A pour x d a m I', ..
IExernple. f := [x,~] plus (x,x)
[x&]
rdela :=
...
rdelb : (a)f rdel
Ainsi b et plus (a,a) sont interchangeables (dgal par d6finition).
Les r&gles dl operation pour
[I
et(
1
sont intuitivement claires. Pourtant,
cette matiere nlest pas simple. En particulier, la substitution peut Btreassez compliqude & cause des variables cachdes,
Dans les pages suivantes on trouve un exemple d l u n texte un peu plus long, Qcrit en AUTOMATH. On verra la possibilitd de donner des ddfinitions assez compliqudeset partagdes en Qtappes,
Sans doute, le lecteur remarquera que ce texte est difficile & dcrire et difficile B lire. C1est vrai, mais
-
dans le sens de langages deprogrammaCion
-
on peut le comparer avec un langage de machine, et nous esp6rons qufon reusisse & construire des langages artificiels plus simples, lesquels peuvent 6tre dcrits et lus plus facilement, et lesquels peuvent &re traduits par un ordinateur en notre Illangage de machine".0 0 b? 0 ksi ksi iks ' 8 ksi P P V ass I P P 0 b2 b3 b3
1. Q.uelaues fondaments de mathgmatiaues aui suffisent pour le theoreme sur limites.
bool bl TBUE rsi nonempty
1
iks Ithen 2I
exists1
lV
I Ii
ass 1 ! i i 1I
then 13* 3Y.E bool LUE AXE2 bool ksi T~ (nonempty ) 3 Y E bool bool boolA E
boolr e a l r
i
I
r2 i'
d i s t a m e / l e s s n u l l n a t s equence 1 Ikl1
lk2 ;1
/
~ l e s s n a t a 11I
I1
eps I ' iI i i ~
mI '
!;
i
i
conv -9-
2. Ddfinition de l i m i t e dtune suite.
impl(lesaurt(mo,m),~ less(distance((m)a,l),eps)) a l l ( n a t , [ s p a t
3
w b ) ) e x i s t s ( n a t , [t,nat]
z ( t ) ) imp1 (less(nul1, eps) ,y)a l l ( r e a 1 , [ t , r e a l ] q ( t ) ) e x i s t s ( r e & , [ t , r e a l ] l i m ( t ) ) &E. r e aJ. r e a l r e a l bool r e d
LYE
LYE2 n a t nat nat bool sequence r e a l r e a l nat rlat bool bool bool bool bool bool3.1
0 3.2 XI3.3
YA3.4
if4.1
0 4.2 c4.3
c4.4
delta 4-5 delta 4.6 ass4.7
no4
.
8
n4.9
n4.10
n4.11
n 4.12 n4.73
no4.14
ass 4.15 delta4.16
c4.17
c XI YI C P 4 delta abbrev 13.
Un lemme introduit come axione,real real
TRUE(1ess (null, yl ) ) ~~~~(less(distance(x1
,XI
) ,yl ) )4.
Chaaue suite constants est conver~ente.l
abbrev :=!
then-
.
-
-
i
a.
.
-
_
i aa.
.
-
-
b.
.
-
-
h : = : = real [x,nat] c sequence real T~TJ~(less(nul1,delta))L X E
,i( I it abbrev 1 nat nat ~~UE(less(distance((n)p,c) ,delta)) t m elemma( (n)~,delta,ass) abbrev 2
lessnat(no ,n) boo1
dP,c,delta,no,n) boo1
then 2 ( [u,TRUE(a)] abbrev 2, [U,TRUE(~) ]then) TRUE (aa) then 2([s,nat] TRUE(aa(s)), [s,natl b ( s ) )
TRUE( 4 p , c ,delta,no) then 13*(nat, [x,nat Jz(P, c ,delta, 1 ) ,I
,
h(u )~R~E(y(p,c,delta) then 2( [x, abbrev 11 TRUE(Y(P, c,delta) ),
[x, abbrev
13
d(x) ) ~~~~(q(~,c,delta)) then 2( [s,real3rmm~(q(p,c,s)), [s,real] e(s)) m(lim(p,c)) then 13*(real,[~,real]lim(~,s),c,f) ~RUE(conv(~))1. N.G. de Bruijn : AUTOMATH, a language f o r mathematics.
Report 68-WSX-05(1968) Technological University Eindhoven, The Netherlands.
2. N.G. de Bruijn : The mathematical language AUTOMATH, i t s usage, and some of i t s extensions.
To be published i n t h e Proceedings of t h e Symposium on Automatic Demonstration (IRIA, V e r s a i l l e s , Becem- ber 1968). Springer Lecture Notes Series.