Best viewed in 24pt and full-screen
next up previous contents
Next: G Up: A-Z Previous: E

F

% fft : Fast Fourier Transform
type fft int -> int -> int -> (list cplx) -> (list cplx) -> (dlist (two int cplx)) -> o .
fft 1 P X G D [(paire KG VG),(paire KD VD)|FZ]-FZ :- ! ,
      KG is N*X , calc KG G D [VG] , KD is N*(X+P) , calc KD G D [VD] .
fft N P X G D F-FZ :- N1 is N//2 ,
      calc (N*X) G D NG , scission NG NGG NGD , fft N1 (P*2) X NGG NGD F-FD ,
      calc (N*(X+P)) G D ND , scission ND NDG NDD , fft N1 (P*2) (X+P) NDG NDD FD-FZ .


Transformée de Fourier rapide [Press et al. 88, Clocksin 88]. On a (fft tex2html_wrap_inline53834 1 0 tex2html_wrap_inline24784 tex2html_wrap_inline24786 tex2html_wrap_inline54122)tex2html_wrap_inline54124 est la transformée de Fourier discrète d´un vecteur tex2html_wrap_inline55782 de longueur tex2html_wrap_inline54128, et (calc tex2html_wrap_inline54546 tex2html_wrap_inline54132 tex2html_wrap_inline54134 tex2html_wrap_inline54136) si et seulement si tex2html_wrap_inline54138, où tex2html_wrap_inline24568 est la tex2html_wrap_inline53834-ième racine de l´unité.

Fait. n.m. (rel. clause*) Clause constituée d'un littéral* positif*. On l'appelle aussi clause unitaire. En termes de base de données, un fait est un enregistrement élémentaire.

Faux. n.m. (tex2html_wrap_inline55796 vrai*)

Flexible. adj. (ant. rigide*)

Forme normale. n.f. Le calcul des prédicat et le tex2html_wrap_inline56836-calcul introduisent chacun une relation d'équivalence et donc une notion de formules ou de termes qu'on va sélectionner sur des critères syntaxiques pour représenter une classe. Les formes normales étudiées sont souvent choisies comme des structures de données pour décrire des algorithmes.

Employée seule, l'expression «forme normale» désigne la forme tex2html_wrap_inline53988-normale*.

Forme tex2html_wrap_inline53988-normale. n.f. Terme du tex2html_wrap_inline56836-calcul* qui ne contient pas de tex2html_wrap_inline53988-rédex*.

Que ce soit pour la programmation fonctionnelle ou pour tex2html_wrap_inline56836Prolog, on ne calcule pratiquement jamais de forme tex2html_wrap_inline53988-normale. En effet, le but d'un tel calcul est le plus souvent d'être capable de comparer deux tex2html_wrap_inline56836-termes, ou de simplifier un tex2html_wrap_inline56836-terme pour le visualiser. Il faut noter au passage que la tex2html_wrap_inline53988-réduction* peut avoir l'effet inverse d'une simplification, mais que cela n'arrive pas trop souvent. Les langages de programmation fonctionnelle, même ceux qui sont d'ordre supérieur, ne comparent pas les fonctions et n'affichent pas leur corps. Pour l'utilisateur de tels langages les fonctions calculées restent des «boîtes noires». D'un point de vue procédural, tout ce résume dans le slogan «ne pas réduire sous les lambdas».

tex2html_wrap_inline56836Prolog compare les fonctions (tex2html_wrap_inline55796 unification d´ordre supérieur*), mais il le fait par le biais d'étapes élémentaires qui ne nécessitent que le calcul d'une forme normale de tête*. Cela nécessite tout de même de «réduire sous les lambdas». Ce faisant, un terme d'un problème d'unification peut finir en forme tex2html_wrap_inline53988-normale, mais uniquement si la décision de l'unification l'exige. On a donc une forme de tex2html_wrap_inline53988-normalisation paresseuse. Pour ce qui est de l'affichage des termes, la normalisation des termes à afficher dépend des systèmes. Dans le système tex2html_wrap_inline52896*, les termes ne sont pas tex2html_wrap_inline53988-normalisés avant affichage, mais il existe un prédicat prédéfini qui tex2html_wrap_inline53988-normalise son argument. C'est le seul endroit où le calcul d'une forme tex2html_wrap_inline53988-normale est entrepris.

On voit donc que l'économie de la tex2html_wrap_inline53988-réduction n'est pas du tout la même en programmation fonctionnelle et en tex2html_wrap_inline56836Prolog.

Forme tex2html_wrap_inline53994-normale. n.f. Terme du tex2html_wrap_inline56836-calcul* qui ne contient pas de tex2html_wrap_inline53994-rédex*.

Forme normale conjonctive. n.f. (abr. tex2html_wrap_inline54210) Formule du calcul des prédicats qui est construite à l'aide de quantifications universelles, de conjonctions, de disjonctions, de négations et de formules atomiques*, de sorte que aucune conjonction n'est dans la portée d'une disjonction, aucune disjonction n'est dans la portée d'une négation, et aucune quantification universelle n'est dans la portée d'une disjonction. Ce sont donc des arbres tels que le chemin qui mène de la racine à chaque feuille ait la forme suivante : tex2html_wrap_inline54200.

La position précise des quantifications universelles parmi les conjonctions importe peu. On a tendance à les voir en position prénexe* (tex2html_wrap_inline54202) pour décrire la résolution*, et sous toutes les conjonctions (c'est-à-dire «entre» les conjonctions et les disjonctions, tex2html_wrap_inline54204) pour décrire la structure des programmes Prolog*.

On peut toujours transformer une formule du calcul des prédicats classique en une formule tex2html_wrap_inline54210 qui est réfutable si et seulement si la formule originale l'est. La sémantique n'est pas totalement conservée car la transformation introduit des constantes nouvelles (tex2html_wrap_inline55796 skolémisation*) qui permettent de donner à la formule originale et à la formule tex2html_wrap_inline54210 des interprétations différentes.

Forme normale tex2html_wrap_inline53994-longue. n.f. Terme du tex2html_wrap_inline56836-calcul* qui ne contient aucun tex2html_wrap_inline53988-rédex* et où les variables et les constantes sont tex2html_wrap_inline53994-expansées* selon leurs types.

Forme normale pour la négation. n.f. Formule du calcul des prédicats où le connecteur de négation n'est appliqué qu'à des formule atomique*. Par exemple, tex2html_wrap_inline54220 est en forme normale pour la négation, mais pas tex2html_wrap_inline54222. On peut toujours mettre une formule sous cette forme en utilisant les lois de De Morgan.

Forme normale de tête. n.f. Terme du tex2html_wrap_inline56836-calcul* qui consiste en zéro ou plusieurs tex2html_wrap_inline56836-abstractions* imbriquées dont le corps* de la plus imbriquée n'est ni un tex2html_wrap_inline53988-rédex ni une application dont la tête* est un tex2html_wrap_inline53988-rédex.

Par exemple, tex2html_wrap_inline53952, tex2html_wrap_inline54234, tex2html_wrap_inline54236 sont des formes normales de tête, alors que tex2html_wrap_inline54238, tex2html_wrap_inline54240, tex2html_wrap_inline54242 n'en sont pas. Chacune de ces dernières se tex2html_wrap_inline53988-réduit* en l'une des premières. Le rédex tex2html_wrap_inline54246 n'empêche pas le troisième terme d'être une forme normale de tête car seule la tête compte.

Forme normale de tête tex2html_wrap_inline53994-longue. n.f. Forme normale de tête où la tête est tex2html_wrap_inline53994-expansée* selon son type. C'est la forme préférée pour la manipulation des tex2html_wrap_inline56836-terme dans la procédure d´unification* modulo tex2html_wrap_inline54254-équivalence.

formule. n.f. ex.progr. Constructeurs de formules logiques de niveau objet.

kind (formule, individu) type .

type (et, ou, impl) formule -> formule -> formule .

type non formule -> formule .

type (qqsoit, existe) (individu->formule) -> formule .

type (p, ...) individu -> individu -> formule .

type (q, ...) formule .

Tous ces constructeurs sauf qqsoit et existe peuvent aussi bien être définis dans une variante typée de Prolog. Les constructeurs qqsoit et existe sont typiques de tex2html_wrap_inline56836Prolog. Ils prennent comme unique argument une fonction de individu vers formule. Ces fonctions sont donc des prédicats du métalangage.

Formule atomique. n.f. Formule constituée d'un symbole prédicatif et de ses arguments, et ne comportant pas de connecteur. C'est la plus petite unité de sens propositionnel.


next up previous contents
Next: G Up: A-Z Previous: E

Olivier Ridoux
Mon Apr 27 11:10:23 MET DST 1998