18a. Predikatenlogica
2021-04-30
slides.com/jod/pt_18a
Docent: Jo Devriendt
Assistent: Ann Philips
Coördinator: Joost Vennekens
voornaam.achternaam@kuleuven.be
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Predikatenlogica
- Ook bekend als eerste-orde logica
- Predikatenlogica is het fundament voor logische declaratieve programmeertalen en constraint programming talen
- Volgende lesvideo gaat over de declaratieve programmeertaal FO(.) (uitgesproken "F-O-dot") en het IDP-systeem (18.11 in de cursus)
- Nuttig om grondiger uit te leggen
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Relaties
- Predikatenlogica gebruikt geen Booleaanse variabelen, maar relaties
- Relatie is een deelverzameling van een Cartesisch product
- Cartesisch product is de verzameling van alle mogelijke tupels over een lijst van verzamelingen
- Tupel is een geordend lijstje elementen uit verzamelingen
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Relaties
Meer verzamelingen:
- reële getallen
- verzameling van alle mensen, bvb. Mens; steden, bvb. Stad; telefoonnummers, bvb. Tel
- verzameling van alle deelverzamelingen van natuurlijke getallen
- lege verzameling
Meer relaties:
- is-deler-van relatie
-
- lege verzameling (deelverzameling van alle cartesische producten)
- elk Cartesisch product is een deelverzameling van zichzelf, en dus ook een relatie
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Relaties
- Relatie is een deelverzameling van een Cartesisch product
- Cartesisch product is de verzameling van alle mogelijke tupels over een lijst van verzamelingen
- Tupel is een geordend lijstje elementen uit verzamelingen
- Is het cijfer 3 een relatie? Neen, geen verzameling, dus ook geen deelverzameling.
- Is de verzameling {(3)} een relatie? Ja, want het is een deelverzameling van bijvoorbeeld het Cartesisch product
bestaande uit enkel de natuurlijke getallen- Noot: als tupels maar 1 element lang zijn, laten we de tupel-haakjes meestal weg: {(3)} = {3}
- Is het lege tupel () een geldig tupel? Ja, over het 0-dimensionele "lege" Cartesisch product
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Functies
- Informeel: geeft voor elke input een output
- Formeel: een functie is een afbeelding van een Cartesisch product naar een verzameling
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Functies
- Informeel: geeft voor elke input een output
- Formeel: een functie is een afbeelding van een Cartesisch product naar een verzameling
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Propositielogica (herhaling)
- Predikatenlogica is uitbreiding van propositielogica
- Statements zijn opgebouwd uit Booleaanse variabelen ("proposities") en connectieven
- Wanneer alle variabelen een waarde hebben, is een waar (true) of onwaar (false)
- Opgepast: is equivalent met
- Opgepast bis: volgorde van operaties
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Predikatenlogica
Statements (formules) zijn opgebouwd uit
- connectieven:
- kwantoren:
- (gebonden) variabelen: bvb. x, y, z, ...
- predikaten: bvb. P, IsDelerVan, ≤, ...
- functiesymbolen: bvb. f, +, Leeftijd, ...
- ... (bvb. types om kwantificatie af te bakenen)
Formele definitie van formule in predikatenlogica brengt ons te ver.
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Formules
"Er is een x zodat de grootste gemene deler van x met zichzelf ook weer x is"
"Voor elke x,y,z, als z de grootste gemene deler van x en y is, dan is z een deler van x en is z een deler van y"
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Waarheidswaarde
Zijn deze formules waar? Ja...
Zijn deze formules waar? Hangt af van interpretatie van f en P.
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Interpretaties
Zijn deze formules waar? Hangt af van interpretatie van P en f.
- Leg de verzamelingen vast voor de interpretaties, bvb.
- Kies relaties en functies, bvb.
Interpretatie van een predikaat P is een relatie
Interpretatie van een functiesymbool f is een functie
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Interpretaties
Is tweede formule waar met deze interpretaties?
Ja, kies x=0, dan is f(0,0)=0 waar,
want de interpretatie van f beeldt (0,0) af op 0.
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Interpretaties
Is eerste formule waar met deze interpretaties?
Ja, voor alle 8 mogelijke waardes van x,y,z geldt dat als f(x,y)=z waar is, dan ook P(z,x) en P(z,y). Bvb.
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Interpretaties
- Nieuwe interpretaties
- Beide formules zijn nu onwaar
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Variabelen
Merk op
- Invulling voor variabelen x, y, z kun je niet zelf kiezen
- ze nemen alle mogelijke waarden aan, en kwantor bepaalt of één/alle waarde(s) moeten passen
- Wat je wél zelf kan kiezen zijn de interpretaties voor de predikaten en functiesymbolen
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Samenvatting
-
Formules in predikatenlogica worden gebouwd met
- connectieven
- kwantoren
- variabelen
- predikaten
- functiesymbolen
- Formule krijgt betekenis door interpretaties op te stellen
- interpretatie van predikaat is een relatie
- interpretatie van functiesymbool is een functie
18a. Predikatenlogica
By Jo Devriendt
18a. Predikatenlogica
- 757