In 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.
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).
La raison est généralement considérée comme une faculté propre de l'esprit humain dont la mise en œuvre lui permet de créer des critères de vérité et d'erreur et d'atteindre ses objectifs. Elle repose sur la capacité qu'aurait l'être humain de faire des choix en se basant sur son intelligence, ses perceptions et sa mémoire tout en faisant abstraction de ses préjugés, ses émotions ou ses pulsions. Cette faculté a donc plusieurs emplois : connaissance, éthique et technique.
Runtime 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.
thumb|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.
In 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.
En logique, la déduction est une inférence menant d'une affirmation générale à une conclusion particulière. La déduction est une opération par laquelle on établit au moyen de prémisses une conclusion qui en est la conséquence nécessaire, en vertu de règles d'inférence logiques. Ces règles sont notamment l'objet des Premiers Analytiques d'Aristote. On l'oppose généralement à l'induction, qui consiste au contraire à extraire d'un nombre fini de propositions données par l'observation, une conclusion ou un petit nombre de conclusions plus générales.
Cet article liste les principaux concepts logiques, au sens philosophique du terme, c'est-à-dire en logique générale (issue de la dialectique). Nota : La logique comporte aussi des branches en mathématiques et en informatique. Ces branches de la logique utilisent des concepts souvent différents comme les prédicats : axiome, théorème hypothèse, conjonction, disjonction, Déduction naturelle... Pour plus d'informations sur ces concepts consulter les articles : Logique mathématique, logique classique.
L'induction est historiquement le nom utilisé pour signifier un genre de raisonnement qui se propose de chercher des lois générales à partir de l'observation de faits particuliers, sur une base probabiliste. Remarque : Bien qu'associée dans le titre de cet article à la logique, la présentation qui suit correspond surtout à la notion bayésienne, utilisée consciemment ou non, de l'induction.
vignette|Visualisation commune du réseau de neurones artificiels avec puce NOTOC Le raisonnement automatisé est un domaine de l'informatique consacré à la compréhension des différents aspects du raisonnement de manière à permettre la création de logiciels qui permettraient aux ordinateurs de « raisonner » de manière automatique, ou presque. Il est considéré habituellement comme un sous-domaine de l'intelligence artificielle, mais possède aussi de fortes connexions avec l'Informatique théorique et même avec la philosophie.