Gentilmente offerto da Kevin Speranza.

calcolo le variabili

//non a destra
ND = {A} 

//sia a sx che a dx
SD = {B,C}

formo l’insieme:

// ND :: SD
cand = {
	{A} :: {B,C}
}

finche cand non è vuoto, estraggo il primo elemento

creo le seguenti variabili

//parte sx dell'elemento
X = {A}

//parte a destra
Y = {B,C}

vado a calcolare quindi

se è uguale a tutti gli attributi, allore è chiave.
altrimenti, come in questo caso, calcolo la seguente formula:

aggiungo a cand i nuovi candidati:

ora cand sarà uguale a:

cand = {
	{A,B} :: {C},
	{A,C} :: empty
}

si ricomincia il ciclo:
non è vuoto quindi estraggo il primo elemento

 {AB}::{C}

calcolo

è chiave riparto con il ciclo

cand = {
	{A,C} :: empty
}

estraggo e calcolo

AC è chiave

ora cand è vuoto l’algoritmo restituisce