Beweren en bewijzen/de zuilen/Taal/5. Definities

Uit Werkplaats
Ga naar: navigatie, zoeken
de opzet 2017-18    KalenderIcon.gif multimedia kwaliteit commentaren
site map


Beweren en bewijzen
Wijsheid omgaan met onzekerheid: met open blik op wankele ondergrond levenspad bewandelen
Vernuft aanpak van glibberige problemen precies redeneren op het hoogste niveau
vier zuilen → Artefacten Formalisering Taal Zekerheid
1. Rationaliteit Rationaliteitsvierkant 4 werelden Beweren is moeilijk Overtuigen
2. Modellen Focus Precisie Logica Stelling en bewijs
3. Model en realiteit Specificaties Domeinmodel Syntax en semantiek Waarheid
4. Correctheid Structuur Correctheidsstelling Typering Nagaan
5. Methoden Decompositie Systemat. vertalen Definities Natuurl. deductie
6. Theorie Domeintheorie Tijd Tijdslogica Wiskunde
7. Complexiteit Hiërarch. decompositie Vereenvoudigingen Modules Bewijsassistenten
8. Generalisering Standaardisatie Parametrisatie Talen Hulpstellingen
Beweren en bewijzen/de zuilen/Taal/5. Definities
literatuur

...

Declaraties en definities

Een declaratie geeft aan dat er iets met een bepaalde naam en een bepaald type bestaat. Een declaratie zegt echter niets over de waarde. Ieder ding van het type zou het kunnen zijn.

  • De declaratie Variable lichtintensiteit: R. declareert een variabele lichtintensiteit, maar zonder te zeggen welke waarde deze heeft.
  • Een propositie is niets meer dan een variabele van type B.
  • Een nieuw type (mensen) declareert men als volgt: Variable M : Set..
  • Op dezelfde wijze kan men functies (en dus ook predikaten) declareren, bv. Variable sofinummerverdeling: M → Z. of het predikaat Variable is_man: M → B.. Wederom zegt men niets over de waarde: sofinummerverdeling kan nog iedere mogelijke functie zijn die aan elk mens een nummer uit Z toekent. Uit het domeinmodel zal blijken dat is_man voor ieder mens vertelt of dit een man is, maar of is_man in het geval David Hasselhoff waar zal zijn wordt in het midden gelaten.

Je gebruikt declaraties voor de proposities, predikaten en abstracte functies in het domeinmodel.


In plaats van declareren kan men ook definiëren. Dit houdt in dat men een naam met type declareert, maar ook zegt welke waarde erbij hoort.

  • Zo kan men bijvoorbeeld een constante definiëren: Definition transmissieFactor := 3..
  • Of bijvoorbeeld een alias voor een type (windkracht): Definition W := R..
  • Maar ook concrete functies, bv. Definition wieken_transmissie (w:W) := 3 * w..
  • Of natuurlijk de specificatie van een onderdeel: Definition luidsprekerkabel := (versterker_uit_links -> luidspreker_in_links) /\ (versterker_uit_rechts -> luidspreker_in_rechts).
  • Definities gebruik je ook als afkorting voor een ingewikkelde formule die op verschillende plaatsen gebruikt wordt. Je hebt bijvoorbeeld een formule XXXXXXXXXX. Je bedenkt een naam NN voor deze formule. Je definieert: Definition NN := XXXXXXXXXX. en vervolgens kun je overal NN schrijven waar je XXXXXXXXXX bedoelt, de betekenis is precies dezelfde. In sommige talen staat in plaats van de := een =, ::=, ::, DEF= of =DEF - ook hier zijn de meest uiteenlopende notaties gebruikelijk.
  • Definities gebruik je ook om hulppredikaten te maken: ingewikkelde combinaties van reeds bekende (hulp)predikaten: Definition is_zoon_van (x:M) (y:M) := is_man x /\ is_kind_van x y..

Je gebruikt definities dus voor aliassen, afkortingen, constanten, hulppredikaten, concrete functies en specificaties.