Schrijf volgende predicaten voor de basis bewerkingen op de Peano getallen. Hierbij wordt 0 voorgesteld door 0
en 1 door s(0)
.
In het algemeen wordt \(n\) voorgesteld door een 0
omringd door \(n\) keer s/1
.
De predicaten die moeten worden geschreven zijn:
p_add(A,B,C)
als en slechts als \(A + B = C\)p_sub(A,B,C)
als en slechts als \(A - B = C\)p_mul(A,B,C)
als en slechts als \(A \cdot B = C\)p_exp(A,B,C)
als en slechts als \(A^B = C\) waarbij \(0^0\) niet gedefinieerd is.
Omdat er onder wiskundigen onenigheid1 is over wat \(0^0\) is, nemen we daarover niets op in onze database.Merk op dat je met de Peano getallen enkel positieve getallen kunt voorstellen. Voor het implementeren van p_sub
mag je limiteren tot de positieve getallen. Probeer p_mul/3
te gebruiken om te delen. Lukt dat? Waarom wel/niet?