Abstrakte Algebra - Hilfe bei Uni Aufgabe |
24.11.2018, 00:23 | Auf diesen Beitrag antworten » |
Wawuri | Abstrakte Algebra - Hilfe bei Uni Aufgabe Guten Abend, in der Uni kommen langsam knifflige Aufgaben dran, wo ich nicht mehr richtig weiter weiss. Gegeben ist: Es ist die abstrakte Algebra Keller = (t, "SUM", Q) mit der Signatur "SUM" = (S, F) gegeben: S = { Keller, Element, BOOL, Nat } F = { createStack; -> Keller, (F1) push ; Keller × Element -> Keller, (F2) pop ; Keller -> Keller, (F3) top ; Keller -> Element, (F4) size ; Keller -> Nat, (F5) empty ; Keller -> BOOL } (F6) Für die Menge der Axiome Q seien k ein Term der Sorte Keller und t ein Term der Sorte Element. Q = { Q1; empty(createStack) -> true, Q2; empty(push(k, t)) -> f alse, Q3; pop(push(k, t)) -> k, Q4; top(push(k, t)) -> t, Q5; size(createStack) -> null, Q6 <, size(push(k, t)) -> succ(size(k)) } In der erste Aufgabe sollen wir Terme von Keller vereinfachen bis nur noch Konstanten oder Variablen erhalten sind, dazu sollen wir angeben welche Axiome wir verwendet haben. 1.) a) pop(push(pop(push(push(s, x1), x2)), x3)) b) empty(pop(pop(push(push(createStack, x1), x2)))) c) top(pop(push(push(pop(push(createStack, x1)), x2), x3))) d) size(push(push(pop(push(createStack, x1)), x2), x3)) dabei komme ich auf folgendes: a) pop(push(pop(push(push(s, x1), x2)), x3)) |Axiom Q3 pop(push(push(s,x1)),x3) |Axiom Q3 push(s,x1) b) empty(pop(pop(push(push(createStack, x1), x2)))) |Axiom Q3 empty(pop(push(createStack,x1))) |Axiom Q3 empty(createStack) c) top(pop(push(push(pop(push(createStack, x1)), x2), x3))) |Axiom Q3 top(pop(push(push(createStack,x2),x3))) |Axiom Q3 top(push(createStack,x2)) |Axiom Q4 x2 d) size(push(push(pop(push(createStack, x1)), x2), x3)) |Axiom Q3 size(push(push(createStack,x2)),x3) |Axiom Q6 succ(size(push(createStack,x2))) |Axiom Q6 succ(succ(createStack)) Ich hoffe das das so richtig ist? Bei Aufgabe 2 weiss ich dann leider nicht weiter: 2.) Fügen Sie zu Keller eine Operation pushStack hinzu, die den Inhalt eines Stacks auf einen anderen stapelt, so dass die Reihenfolge der Elemente beider Keller erhalten bleibt. Erweitern Sie hierfür zunächst die Menge F der Operationen. Hinweis: Das zweite Argument der Funktion soll auf das erste „gestapelt“ werden. Ich brauche ja so etwas wie: pushStack; Keller x Keller -> Keller aber wie beschreibe ich denn das die Elemente beider Keller erhalten bleibt? Bei Aufgabe 3 bin ich auch ratlos: 3.) Fügen Sie nun zur Menge der Axiome Q alle nötigen Axiome für die Operation pushStack hinzu. Hinweis: Es werden mindestens zwei neue Axiome benötigt. |
|
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|