In het Book of Common Prayer1 (boek van het algemeen gebed) uit 1549 staat een Table of Kindred and Affinity2 (tabel van relaties en verwantschappen) met een oplijsting van verboden verwantschappen bij huwelijken binnen de Kerk van Engeland3.

Book of Common Prayer
Het Book of Common Prayer uit 1549.
omgekeerde verwantschap
De verwachtschap "een mans dochters zoons echtgenote" kan vanuit het standpunt van de echtgenote beschreven worden als "een vrouws echtgenoots moeders vader".

Zo mag een man bijvoorbeeld niet trouwen met zijn dochters zoons echtgenote, en mag een vrouw niet trouwen met haar echtgenoots moeders vader. In dit geval komen de twee voorschriften overeen — ze beschrijven dezelfde verwantschap "van beide kanten" — dus is het huwelijk verboden voor beide partijen. Maar is dit altijd het geval? Is elk huwelijk dat verboden is voor de echtgenoot, ook verboden voor de echtgenote (de tabel bevat enkel heterosexuele huwelijken)? Dat is niet meteen duidelijk. Voor elk geslacht worden in totaal 25 verwantschappen opgelijst waarvoor het huwelijk verboden is, en in natuurlijke taal is het niet zo eenvoudig om de beschrijvingen van deze verwantschappen om te keren.

Daarom werkte de wiskundige M.D. Stern van de Manchester Metropolitan University4 in 1989 een binaire notatie voor verwantschappen uit. Deze notatie laat toe om beschrijvingen van verwantschappen makkelijk te kunnen omkeren. In de notatie duidt het cijfer 1 een man aan en het cijfer 0 een vrouw, en worden de volgende codes gebruikt om relaties tussen personen aan te duiden:

code soort relatie relatie als man (1) relatie als vrouw (0)
00 wederhelft echtgenoot (001) echtgenote (000)
01 ouder vader (011) moeder (010)
10 kind zoon (101) dochter (100)
11 broer/zus broer (111) zuster (110)

De notatie van de verwantschap tussen twee personen begint met een cijfer voor de eerste persoon (man = 1 en vrouw = 0), en wordt telkens gevolgd door een reeks van drie cijfers voor elke volgende relatie — een code van twee cijfers (blauw) die het soort relatie aangeeft en één cijfer (groen) om het geslacht van de volgende persoon aan te geven. Als we dus het voorbeeld van hierboven nemen, dan wordt een mans dochters zoons echtgenote genoteerd als

1 100 101 000

Om diezelfde verwantschap te noteren, maar dan vanuit het standpunt van de echtgenote, moeten we enkel de volgorde van de cijfers omkeren

0 001 010 011

Hij is haar echtgenoots moeders vader.

Wanneer Stern deze techniek toepaste op de verboden verwantschappen tussen wederhelften uit de Table of Kindred and Affinity, dan kon hij bevestigen dat elk verbod voor een man effectief overeenkomt met een omgekeerd verbod voor een vrouw. Er zijn dus geen potentiële huwelijken die verboden zouden zijn voor de ene wederhelft, maar niet voor de andere.

Opgave

Bij een huwelijksrelatie tussen twee personen laten we de beperking tot heterosexuele huwelijken vallen.

De beschrijving van een verwantschap tussen twee personen is een string (str) van de vorm

een mans/vrouws (relaties )(relaties )(relaties )…relatie

Daarbij kan op de plaats van elke relatie één van de acht mogelijke relaties uit de tabel in de inleiding ingevuld worden. Delen aan weerszijde van een slash (/) zijn alternatieven (één van de twee moet gekozen worden) en delen tussen ronde haakjes zijn optioneel. Het aantal tussenliggende relaties in de verwantschap is onbeperkt (zoals aangegeven door …).

De binaire notatie van een verwantschap tussen twee personen is een string (str) met $$1 + 3r$$ nullen (0) en enen (1), waarbij $$r \in \mathbb{N}_0$$ het aantal tussenliggende relaties in de verwantschap is.

Gevraagd wordt:

Alle functies mogen er van uitgaan dat de argumenten die eraan doorgegeven worden geldig zijn, zonder dat ze dit expliciet moeten controleren.

Voorbeeld

>>> beschrijving('1100101000')
'een mans dochters zoons echtgenote'
>>> beschrijving('0001010011')
'een vrouws echtgenoots moeders vader'

>>> notatie('een mans dochters zoons echtgenote')
'1100101000'
>>> notatie('een vrouws echtgenoots moeders vader')
'0001010011'

>>> omgekeerde_verwantschap('een mans dochters zoons echtgenote')
'een vrouws echtgenoots moeders vader'
>>> omgekeerde_verwantschap('een vrouws zusters vaders echtgenoots zoon')
'een mans vaders echtgenoots dochters zuster'

Epiloog

De huwelijksaankondigingen5 in het Scots Magazine van januari 1790 bevatten deze merkwaardige vermelding:

In Newburn, nabij Newcastle, Mr William Dormand, met Miss Hannah Hoy, van die plaats. De ceremonie werd bijgewoond door de vader, moeder, broer, zus, tante, neef, twee echtgenoten, twee echtgenotes, en toch waren er slechts vier personen bij het huwelijk aanwezig.

Er wordt geen verdere uitleg gegeven. Hoe is een dergelijk scenario mogelijk?

We weten het niet zeker, maar één mogelijkheid is dat William trouwde met Hannah, de weduwe van zijn nonkel aan moederszijde. Hannah's broer (laten we hem Bob noemen) trouwde met William's moeder nadat ze weduwe was geworden (laten we haar Alice noemen):

  • echtgenoten: William en Bob

  • echtgenotes: Hannah en Alice

  • broer/zus: Hannah en Bob

  • tante/neef: William en Hannah

  • moeder/vader: Alice en Bob (als we zeggen dat Bob de stiefvader is van William)

Bronnen