Det formella systemet MIU beskrivet av författaren Hofstadter i
boken
Gödel, Escher, Bach arbetar på strängar som
kan innehålla symbolerna m, i och u, t.ex mii, mu, iiuuii och uuuu.
Det finns fyra härledningsregler för hur strängar kan omvandlas:
steg 1. Vi utgår från mi.
steg 2. mi blir mii enl. regel 2.
steg 3. mii blir miiii enl. regel 2.
steg 4. miiii blir mui enl. regel 3. (miu hade också kunnat erhållas)
steg 5. mui blir muiu enl. regel 1.
steg 6. muiu blir muiuuiu enl. regel 2.
steg 7. muiuuiu blir muiiu enl. regel 4.
Vi har lyckats visa att muiiu är ett teorem (kan härledas med hjälp av reglerna) om man utgår från strängen mi (axiom).
Uppgift 1
Man vill nu låta ett sökprogram ta reda på om muiui är ett teorem om man utgår från axiomet mi. Er uppgift är att deklarera predikatet successor så att detta och liknande problem kan lösas i MIU-systemet. Dessutom skall predikatet final_state deklareras för just detta problem.
Uppgift 2
Kan ovanstående sökproblem lösas med depth-first search algoritmen? Motivera ditt svar.
Uppgift 3
Modifiera programmet depth-first search så att sökningen ej sker bortom ett specificerat djup. Djupet skall anges som ett argument till predikatet. Visa hur anropet av predikatet skall se ut för att sökproblemet beskrivet i uppgift 1 skall kunna lösas.
Uppgift 4
Modifiera programmet breadth-first search så att besökta
tillstånd ej besöks igen.