@Marco13
du schreibst bewußt eine Spassantwort?
für mich ist die Aufgabe ziemlich klar zu verstehen,
die Aussage "der Mehrbenutzerbetrieb erzeugt keine Effekte, die [Bedingung x]" soll wiederlegt werden,
also mit einem Programmbeispiel gezeigt werden "der Mehrbenutzerbetrieb erzeugt Effekte, die [Bedingung x]"
Es war keine Spassantwort, und vielleicht gibt es unterschiedliche Auffassungen bestimmter Begriffe (ich will mich nicht zu dem Versuch aufschwingen, das Wort "Präzision" präzise zu definieren

)
Ein Punkt war der Frage, die auch für dich unklar war, nämlich die nach der Granularität der Synchronisation - zwei Threads, die in ihren run's beide ein
synchronized(commonObject) { ... }
stehen haben, werden sich nicht in die Quere kommen.
Aber auch zur eigentlichen Frage hatte ich tatsächlich kurz überlegt, was die Aufgabenstellung genau bedeutet.
"...wenigstens erzeugt der Merhbenutzerbetrieb keine Effekte, die nicht auch ein einzelner Benutzer hervorbringen kann. Widerlegen sie anhand eines instruktiven Beispiels diese Aussage"
Ich kenne mich mit Logik höherer Stufe nicht so aus, aber hatte dann überlegt dass das vielleicht etwa lauten könnte
M = Mehrbenutzerbetrieb ( !M = Single-Benutzer)
P(e) = Effekt e kann auftreten
forall(e). M -> P(e) & !(!M -> !P(e))
Das kann man dann umformen, ... ... ...
Ich vermute(!) dass sowas gemeint war wie
Zu zeigen: Jeder Effekt, der beim Mehrbenutzerbetrieb auftreten kann, kann auch beim Einzelbenutzerbetrieb auftreten"
aber sicher bin ich mir da nicht. Wenn die Aufgabenstellung so gelautet hätte, hätte ich gar nicht (oder zurückhaltender und mehr auf die erste Frage bezogen) geantwortet.
Kritzelzettel
forall(e). M -> P(e) & !(!M -> !P(e))
forall(e). (!M | P(e)) & !(!!M | !P(e))
forall(e). (!M | P(e)) & !M & P(e)
forall(e). (!M & !M & P(e)) | (P(e) & !M & P(e))
forall(e). (!M & P(e)) | (!M & P(e))
forall(e). (!M & P(e))
Ja, müßte hinkommen...: "Für jeden Effekt gilt: Single-Benutzer und der Effekt kann auftreten". Aber man muss es ja nicht drauf anlegen...
