Arithmétique réelle exacte certifiée, co-induction et base...

39

Transcript of Arithmétique réelle exacte certifiée, co-induction et base...

Page 1: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Arithmétique réelle exacte certi�ée, co-induction et basearbitraire

Nicolas Julien

INRIA Sophia-Antipolis, projet Marelle

JFLA 2007

Nicolas Julien Arithmétique réelle exacte 1 / 19

Page 2: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Plan

1 Motivations

2 Représentations des réels

3 Algorithmes de calcul

4 Formalisation et véri�cation formelle

5 Résultats

6 Perspectives

Nicolas Julien Arithmétique réelle exacte 2 / 19

Page 3: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Motivations

Utilisation usuelle des réels

Nombres �ottants (norme IEEE 754)

I Calculs e�caces

I Représentation compacte

Nicolas Julien Arithmétique réelle exacte 3 / 19

Page 4: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Motivations

Utilisation usuelle des réels

Nombres �ottants (norme IEEE 754)

I Calculs e�caces

I Représentation compacte

Mais

I En fait un sous-ensemble �ni de QI Problèmes d'arrondis

I Pertes de propriétés sur les réels

Nicolas Julien Arithmétique réelle exacte 3 / 19

Page 5: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Motivations

Motivations

Arithmétique réelle exacte

I Calcul à précision arbitraire

Preuve formelle

I Garantir l'exactitude des calculs

I Calculer et raisonner sur nos nombres

Base arbitraire

I Généraliser la bibliothèque en base 2 de Bertot

I Utiliser les entiers machines

Nicolas Julien Arithmétique réelle exacte 4 / 19

Page 6: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Représentations des réels

Représentation des réels

I Un réel r de [−1, 1] en base β

I Une séquence in�nie s de chi�res signés de la base β

Nicolas Julien Arithmétique réelle exacte 5 / 19

Page 7: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Représentations des réels

Représentation des réels

I Un réel r de [−1, 1] en base β

I Une séquence in�nie s de chi�res signés de la base β

I [s]β =∞∑i=1

di

βi

I avec −β < di < β

Nicolas Julien Arithmétique réelle exacte 5 / 19

Page 8: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Représentations des réels

Représentation des réels

I Un réel r de [−1, 1] en base β

I Une séquence in�nie s de chi�res signés de la base β

I [s]β =∞∑i=1

di

βi

I avec −β < di < β

I En base 10, 13: 33333333 . . .

Nicolas Julien Arithmétique réelle exacte 5 / 19

Page 9: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Représentations des réels

Représentation des réels

I Un réel r de [−1, 1] en base β

I Une séquence in�nie s de chi�res signés de la base β

I [s]β =∞∑i=1

di

βi

I avec −β < di < β

I En base 10, 13: 33333333 . . .

I On note que [d1 :: s]β =d1+[s]β

β

Nicolas Julien Arithmétique réelle exacte 5 / 19

Page 10: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Représentations des réels

Représentation des réels

I Un réel r de [−1, 1] en base β

I Une séquence in�nie s de chi�res signés de la base β

I [s]β =∞∑i=1

di

βi

I avec −β < di < β

I En base 10, 13: 33333333 . . .

I On note que [d1 :: s]β =d1+[s]β

β

I On ajoute un exposant pour représenter l'ensemble des réels

I [(s, e)]β = βe [s]β

Nicolas Julien Arithmétique réelle exacte 5 / 19

Page 11: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Représentations des réels

Pourquoi cette représentation

I Relativement proche des ordinateurs

I Ne nécessite pas beaucoup de théories mathématiques

Nicolas Julien Arithmétique réelle exacte 6 / 19

Page 12: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Représentations des réels

Pourquoi cette représentation

I Relativement proche des ordinateurs

I Ne nécessite pas beaucoup de théories mathématiques

I Représentation redondante

1̄0

1

2

3

4

−1 1

Nicolas Julien Arithmétique réelle exacte 6 / 19

Page 13: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Représentations des réels

Pourquoi cette représentation

I Relativement proche des ordinateurs

I Ne nécessite pas beaucoup de théories mathématiques

I Représentation redondante

1̄0

1

2

3

4

−1 1

I Connaître un encadrement de taille 1β ⇒ connaître un premier chi�re

possible

I Production de chi�res 1 à 1

Nicolas Julien Arithmétique réelle exacte 6 / 19

Page 14: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Représentations des réels

Pourquoi cette représentation

I Relativement proche des ordinateurs

I Ne nécessite pas beaucoup de théories mathématiques

I Représentation redondante

1̄0

1

2

3

4

−1 1

I Connaître un encadrement de taille 1β ⇒ connaître un premier chi�re

possible

I Production de chi�res 1 à 1

I Mais comparaison pas décidable

Nicolas Julien Arithmétique réelle exacte 6 / 19

Page 15: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Algorithmes de calcul

Calcul de l'addition

I Image de l'addition : [−2, 2] : pas toujours représentable

Nicolas Julien Arithmétique réelle exacte 7 / 19

Page 16: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Algorithmes de calcul

Calcul de l'addition

I Image de l'addition : [−2, 2] : pas toujours représentable

I Calcul dex + y + r

β, r ∈ [−β + 2, β − 2]

Nicolas Julien Arithmétique réelle exacte 7 / 19

Page 17: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Algorithmes de calcul

Calcul de l'addition

I Image de l'addition : [−2, 2] : pas toujours représentable

I Calcul dex + y + r

β, r ∈ [−β + 2, β − 2]

I On calcule le premier chi�re de x et de y

x1+x ′

β + y1+y ′

β + r

β=

x1+y1β + r + x ′+y ′

β

β

Nicolas Julien Arithmétique réelle exacte 7 / 19

Page 18: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Algorithmes de calcul

Calcul de l'addition

I Image de l'addition : [−2, 2] : pas toujours représentable

I Calcul dex + y + r

β, r ∈ [−β + 2, β − 2]

I On calcule le premier chi�re de x et de y

x1+x ′

β + y1+y ′

β + r

β=

x1+y1β + r + x ′+y ′

β

β

I On calcule q ∈ {−1, 0, 1}, r ′ ∈ {−β + 2, . . . , β + 2}x1 + x2 = q × β + r ′

Nicolas Julien Arithmétique réelle exacte 7 / 19

Page 19: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Algorithmes de calcul

Calcul de l'addition

I Image de l'addition : [−2, 2] : pas toujours représentable

I Calcul dex + y + r

β, r ∈ [−β + 2, β − 2]

I On calcule le premier chi�re de x et de y

x1+x ′

β + y1+y ′

β + r

β=

x1+y1β + r + x ′+y ′

β

β

I On calcule q ∈ {−1, 0, 1}, r ′ ∈ {−β + 2, . . . , β + 2}x1 + x2 = q × β + r ′

I On peut retourner (q + r) ::x ′ + y ′ + r ′

β

Nicolas Julien Arithmétique réelle exacte 7 / 19

Page 20: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Algorithmes de calcul

Calcul de séries entières convergentes

I Idée : séparer la série en une partie représentative et une partie

négligeable

∞∑i=0

ai =n∑

i=0

ai +∞∑

i=n+1

ai , |∞∑

i=n+1

ai | ≤β − 2

2β2

Nicolas Julien Arithmétique réelle exacte 8 / 19

Page 21: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Algorithmes de calcul

Calcul de séries entières convergentes

I Idée : séparer la série en une partie représentative et une partie

négligeable

∞∑i=0

ai =n∑

i=0

ai +∞∑

i=n+1

ai , |∞∑

i=n+1

ai | ≤β − 2

2β2

I Si on calcule les deux premiers chi�res de∑n

i=0 ai alors on a un

encadrement de taille 1β du total

Nicolas Julien Arithmétique réelle exacte 8 / 19

Page 22: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Algorithmes de calcul

Calcul de séries entières convergentes

I Idée : séparer la série en une partie représentative et une partie

négligeable

∞∑i=0

ai =n∑

i=0

ai +∞∑

i=n+1

ai , |∞∑

i=n+1

ai | ≤β − 2

2β2

I Si on calcule les deux premiers chi�res de∑n

i=0 ai alors on a un

encadrement de taille 1β du total

I On peut alors produire le premier chi�re indépendamment de la série

par la fonction make_digit

Nicolas Julien Arithmétique réelle exacte 8 / 19

Page 23: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Algorithmes de calcul

Exemple de séries calculées

I Multiplication : x × y =∞∑i=1

xi × y

βi

I Constante d'Euler : e − 2 =∞∑i=2

1

i !

4= arctan

1

2+ arctan

1

3, arctan

1

n=

∞∑i=0

(−1)i 1n2i+1

2i + 1

Nicolas Julien Arithmétique réelle exacte 9 / 19

Page 24: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Formalisation et véri�cation formelle

Co-induction en Coq

I Dé�nition de type d'objets in�nis

CoInductive stream (A: Set) :=Cons : A → stream A → stream A.

Nicolas Julien Arithmétique réelle exacte 10 / 19

Page 25: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Formalisation et véri�cation formelle

Co-induction en Coq

I Dé�nition de type d'objets in�nis

CoInductive stream (A: Set) :=Cons : A → stream A → stream A.

I Fonctions co-récursives pour construire les objets in�nisI Condition de garde pour empêcher les boucles in�nies

CoFixpoint zero : stream Z := Cons 0 zero.

Nicolas Julien Arithmétique réelle exacte 11 / 19

Page 26: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Formalisation et véri�cation formelle

Co-induction en Coq

I Dé�nition de type d'objets in�nis

CoInductive stream (A: Set) :=Cons : A → stream A → stream A.

I Fonctions co-récursives pour construire les objets in�nisI Condition de garde pour empêcher les boucles in�nies

CoFixpoint zero : stream Z := Cons 0 zero.

I Prédicats co-inductifs pour décrire des propriétés in�nies

CoInductive stream_digit_pos : Stream Z → PropI : ∀ d s, 0 ≤ d → stream_digit_pos s →stream_digit_pos (Cons d s).

I Preuves in�nies : preuves par co-induction

I Tactique cofix

Nicolas Julien Arithmétique réelle exacte 12 / 19

Page 27: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Formalisation et véri�cation formelle

Certi�cation des calculs

I Comment certi�er que l'on décrit bien du calcul sur les réels ?

Nicolas Julien Arithmétique réelle exacte 13 / 19

Page 28: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Formalisation et véri�cation formelle

Certi�cation des calculs

I Comment certi�er que l'on décrit bien du calcul sur les réels ?I Montrer que les opérations satisfont certaines propriétés

Nicolas Julien Arithmétique réelle exacte 13 / 19

Page 29: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Formalisation et véri�cation formelle

Certi�cation des calculs

I Comment certi�er que l'on décrit bien du calcul sur les réels ?I Montrer que les opérations satisfont certaines propriétésI Relier notre représentation à une dé�nition existante

Nicolas Julien Arithmétique réelle exacte 13 / 19

Page 30: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Formalisation et véri�cation formelle

Certi�cation des calculs

I Comment certi�er que l'on décrit bien du calcul sur les réels ?I Montrer que les opérations satisfont certaines propriétésI Relier notre représentation à une dé�nition existante

I On va se servir de la dé�nition axiomatique des réels de Coq

Nicolas Julien Arithmétique réelle exacte 13 / 19

Page 31: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Formalisation et véri�cation formelle

Certi�cation des calculs

I Comment certi�er que l'on décrit bien du calcul sur les réels ?I Montrer que les opérations satisfont certaines propriétésI Relier notre représentation à une dé�nition existante

I On va se servir de la dé�nition axiomatique des réels de CoqI Si la séquence in�nie s représente le réel r de [−1, 1]I Et si k est un chi�re de βI Alors la séquence k :: s constituée du chi�re k suivi de la séquence s

représente k+r

β

Nicolas Julien Arithmétique réelle exacte 13 / 19

Page 32: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Formalisation et véri�cation formelle

Certi�cation des calculs

I Comment certi�er que l'on décrit bien du calcul sur les réels ?I Montrer que les opérations satisfont certaines propriétésI Relier notre représentation à une dé�nition existante

I On va se servir de la dé�nition axiomatique des réels de CoqI Si la séquence in�nie s représente le réel r de [−1, 1]I Et si k est un chi�re de βI Alors la séquence k :: s constituée du chi�re k suivi de la séquence s

représente k+r

β

CoInductive represents (b : Z): stream Z → R → Prop :=| rep : ∀ (s : stream Z) (r : R) (k : Z),represents b s r →-1 ≤ r ≤ 1 →-b < k < b →

represents b (k::s)k + r

b.

Nicolas Julien Arithmétique réelle exacte 14 / 19

Page 33: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Formalisation et véri�cation formelle

Preuve de correction

I Mettre en relation le résultat d'un algorithme F avec celui de la

fonction mathématique calculée f

s1, . . . , sn → F (s1, . . . , sn)↓ ↓

r1, . . . , rn → f (r1, , . . . , rn)

I Exemple de l' addition

Theorem add_str_correct :∀ (b r : Z) (x y: stream Z) (u v : R),represents b x u →represents b y v→−b + 2 ≤ r ≤ b − 2 →

represents b (add_str b x y r)u + v + r

b.

Nicolas Julien Arithmétique réelle exacte 15 / 19

Page 34: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Formalisation et véri�cation formelle

Complexité des preuves

I Restriction de la co-inductionI Possibilité d'automatisation

I Fonctions mutuellement récursives pour les sériesI Fonction make_digit

I Formalisation de la base ⇒ nombreuses inégalités non linéaires

I Arithmétique modulaire ...

Nicolas Julien Arithmétique réelle exacte 16 / 19

Page 35: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Résultats

Résultats (Théorie)

I Calcul d'une fonction f avec une précision 1n

dlog ne × T (f )

log β

I dlog nelog β chi�res à calculer pour une précision 1

n

I T (f ) : temps de calcul d'un chi�re pour une fonction f

Nicolas Julien Arithmétique réelle exacte 17 / 19

Page 36: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Résultats

Résultats

I Calcul de 13

+ 17

Base utilisée LCR 22 28 216 232

Nombre de chi�res calculés 6400 3200 800 400 200

Temps de calcul (s) 31 6.184 0.440 0.284 0.308

Nicolas Julien Arithmétique réelle exacte 18 / 19

Page 37: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Résultats

Résultats

I Calcul de 13

+ 17

Base utilisée LCR 22 28 216 232

Nombre de chi�res calculés 6400 3200 800 400 200

Temps de calcul (s) 31 6.184 0.440 0.284 0.308

I Calcul de 13× 1

7

Base utilisée LCR 22 28 216 232

Nombre de chi�res calculés 6400 3200 800 400 200

Temps de calcul (s) 0.028 16.96 1.412 1.224 1.768

Nicolas Julien Arithmétique réelle exacte 18 / 19

Page 38: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Résultats

Résultats

I Calcul de 13

+ 17

Base utilisée LCR 22 28 216 232

Nombre de chi�res calculés 6400 3200 800 400 200

Temps de calcul (s) 31 6.184 0.440 0.284 0.308

I Calcul de 13× 1

7

Base utilisée LCR 22 28 216 232

Nombre de chi�res calculés 6400 3200 800 400 200

Temps de calcul (s) 0.028 16.96 1.412 1.224 1.768

I Calcul de e − 2

Base utilisée LCR 10 32 64 100 210

Nombre de chi�res calculés 300 90 60 50 45 30

Temps de calcul (s) 2.3 19.88 13.60 1.516 3.420 604

Nicolas Julien Arithmétique réelle exacte 18 / 19

Page 39: Arithmétique réelle exacte certifiée, co-induction et base ...jfla.inria.fr/2007/actes/Presentation/julien.pdf · I On note que [d 1 :: s ] ... Algorithmes de calcul Calcul de

Perspectives

Perspectives

I Amélioration de la multiplication

I Généralisation du type des chi�res et des nombres utilisés pour les

calculs intermédiaires

I Calcul des séries formelles

I Calcul de l'inverse : 1x

= 11−(1−x) =

∑∞i=0(1− x)i

I Calcul de fonctions analytiques

Nicolas Julien Arithmétique réelle exacte 19 / 19