Méthode formelle (informatique)En informatique, les méthodes formelles sont des techniques permettant de raisonner rigoureusement, à l'aide de logique mathématique, sur un programme informatique ou du matériel électronique numérique, afin de démontrer leur validité par rapport à une certaine spécification. Elles reposent sur les sémantiques des programmes, c'est-à-dire sur des descriptions mathématiques formelles du sens d'un programme donné par son code source (ou, parfois, son code objet).
Vérification de modèlesthumb|308x308px|Principe du model checking. En informatique, la vérification de modèles, ou model checking en anglais, est le problème suivant : vérifier si le modèle d'un système (souvent informatique ou électronique) satisfait une propriété. Par exemple, on souhaite vérifier qu'un programme ne se bloque pas, qu'une variable n'est jamais nulle, etc. Généralement, la propriété est écrite dans un langage, souvent en logique temporelle. La vérification est généralement faite de manière automatique.
Vérification formelleIn the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics. Formal verification can be helpful in proving the correctness of systems such as: cryptographic protocols, combinational circuits, digital circuits with internal memory, and software expressed as source code.
Runtime verificationRuntime verification is a computing system analysis and execution approach based on extracting information from a running system and using it to detect and possibly react to observed behaviors satisfying or violating certain properties. Some very particular properties, such as datarace and deadlock freedom, are typically desired to be satisfied by all systems and may be best implemented algorithmically. Other properties can be more conveniently captured as formal specifications.
Formal specificationIn computer science, formal specifications are mathematically based techniques whose purpose are to help with the implementation of systems and software. They are used to describe a system, to analyze its behavior, and to aid in its design by verifying key properties of interest through rigorous and effective reasoning tools. These specifications are formal in the sense that they have a syntax, their semantics fall within one domain, and they are able to be used to infer useful information.
Structure de KripkeUne structure de Kripke est un modèle de calcul, proche d'un automate fini non déterministe, inventé par Saul Kripke. Elle est utilisée par exemple dans le model checking pour représenter le comportement d'un système. C'est un graphe orienté dont les nœuds représentent les états accessibles du système et dont les arcs représentent les transitions entre les états. Une fonction d'étiquetage fait correspondre à chaque état un ensemble de propositions logiques vraies dans cet état.
Langage formelUn langage formel, en mathématiques, en informatique et en linguistique, est un ensemble de mots. L'alphabet d'un langage formel est l'ensemble des symboles, lettres ou lexèmes qui servent à construire les mots du langage ; souvent, on suppose que cet alphabet est fini. La théorie des langages formels a pour objectif de décrire les langages formels. Les mots sont des suites d'éléments de cet alphabet ; les mots qui appartiennent à un langage formel particulier sont parfois appelés mots bien formés ou formules bien formées.
Critical race theoryvignette|Un présentoir de livres contenant des ouvrages sur la Critical race theory. La critical race theory (littéralement « théorie critique de la race ») est un courant de recherche et un cadre de lecture axé sur l'application de la théorie critique aux relations entre la race, la loi, et le pouvoir. Elle est née d’une rencontre entre le champ de la réflexion universitaire et l’action pour les droits humains.
Partie bornéeEn mathématiques, la notion de partie bornée (ou, par raccourci, de borné) étend celle d'intervalle borné de réels à d'autres structures, notamment en topologie et en théorie des ordres. Selon les cas, la définition privilégie l'existence de bornes ponctuelles ou la négation de l'éloignement à l'infini. Une fonction bornée est une fonction dont l' est bornée dans l'ensemble d'arrivée. Un opérateur borné est un opérateur linéaire dont les images de bornés sont bornées également.
Fonction bornéedroite|vignette| Schéma d'une fonction bornée (rouge) et d'une fonction non bornée (bleu). Intuitivement, le graphe d'une fonction bornée reste dans une bande horizontale, contrairement au graphe d'une fonction non bornée. En mathématiques, une fonction est dite bornée si est borné. Pour une fonction f définie sur un ensemble X et à valeurs réelles ou complexes, cela revient à dire qu'il existe un nombre réel M tel que pour tout x dans X, Une fonction à valeurs réelles est dite majorée ( minorée) si l'ensemble de ses valeurs possède un majorant ( minorant) réel.