Vinnaren i pepparkakshustävlingen!
2017-08-14, 15:55
  #1
Medlem
Dorioxs avatar
Hej, har en omtenta i logik och blir galen på att försöka översätta påståenden till formler i första ordningens logik. Det finns bara ett svar i facit men samtidigt står det att man kan lösa uppgifterna på flera olika sätt så har ingen aning om jag gör rätt eller inte. Här är ett exempel.

Låt en första ordningens signatur innehålla två 1-ställiga relationssymboler som vi kallar Lejon och Farlig och en konstantsymbol som vi kallar Arne. Översätt följande påståenden till formler i första ordningens logik med dessa relationssymboler.
(a) Det finns farliga lejon, men inte alla lejon är farliga.
(b) Alla lejon utom Arne är farliga

Mina svar:
(a) ∃x(x = Lejon(Farlig(x))) ^ ¬∀y(y = Lejon(Farlig(y)))
(b) ∀x(Lejon(Farlig(x)) ^ ¬ Lejon(Farlig(Arne)))

Har jag gjort rätt? Har ni något tips för hur man ska tänka på dessa uppgifter?

Tack
Citera
2017-08-14, 17:13
  #2
Medlem
Citat:
Ursprungligen postat av Doriox
Hej, har en omtenta i logik och blir galen på att försöka översätta påståenden till formler i första ordningens logik. Det finns bara ett svar i facit men samtidigt står det att man kan lösa uppgifterna på flera olika sätt så har ingen aning om jag gör rätt eller inte. Här är ett exempel.

Låt en första ordningens signatur innehålla två 1-ställiga relationssymboler som vi kallar Lejon och Farlig och en konstantsymbol som vi kallar Arne. Översätt följande påståenden till formler i första ordningens logik med dessa relationssymboler.
(a) Det finns farliga lejon, men inte alla lejon är farliga.
(b) Alla lejon utom Arne är farliga

Mina svar:
(a) ∃x(x = Lejon(Farlig(x))) ^ ¬∀y(y = Lejon(Farlig(y)))
(b) ∀x(Lejon(Farlig(x)) ^ ¬ Lejon(Farlig(Arne)))

Har jag gjort rätt? Har ni något tips för hur man ska tänka på dessa uppgifter?

Tack
Att skriva Lejon(Farlig(x)) tycker jag ser konstigt ut. Detta skulle jag uttrycka som Lejon(x) ^ Farlig(x). Jag vet inte om du är lite slarvig eller bara har lite annan notation.

På a) skulle jag skriva:

a) ∃x,y : Lejon(x) ^ Farlig(x) ^ Lejon(y) ^ ¬Farlig(y)

vilket ser typ ut att vara samma som du har.

På b) ser det däremot ut som att du har gjort fel. I princip säger du att alla lejon är farliga och att lejonet arne inte är det. Det är en motsägelse.

b) ∀x : Lejon(x) => (x='Arne' <=> ¬Farlig(x))
__________________
Senast redigerad av RulleRivare 2017-08-14 kl. 17:25.
Citera
2017-08-14, 17:17
  #3
Medlem
Dorioxs avatar
Citat:
Ursprungligen postat av RulleRivare
Att skriva Lejon(Farlig(x)) tycker jag ser konstigt ut. Detta skulle jag uttrycka som Lejon(x) ^ Farlig(x). Jag vet inte om du är lite slarvig eller bara har lite annan notation.

På a) skulle jag skriva:

a) ∃x,y : Lejon(x) ^ Farlig(x) ^ Lejon(y) ^ ¬Farlig(y)

vilket ser typ ut att vara samma som du har.

På b) ser det däremot ut som att du har gjort fel. I princip säger du att alla lejon är farliga och att lejonet arne inte är det. Det är en motsägelse.

Hur tänker du när du kommer fram till dina svar?

Skulle (b) vara korrekt om man skrev ∀x(Lejon(x)^Farlig(x) ^ ¬ Farlig(Arne))?
Citera
2017-08-14, 17:21
  #4
Medlem
Citat:
Ursprungligen postat av Doriox
Hur tänker du när du kommer fram till dina svar?

Skulle (b) vara korrekt om man skrev ∀x(Lejon(Farlig(x)) ^ ¬ Farlig(Arne))?
Jag har verkligen problem med notationen du använder. Både Lejon(x) och Farlig(x) är funktioner som returnerar sant eller falskt. Lejon(Farlig(x)) ska då alltså avgöra om en Boolesk variabel är ett lejon eller inte. Det kan man visserligen göra, men resultatet borde alltid bli falskt.

På a) tänkte jag att om det finns farliga lejon men alla lejon inte är farliga så är det samma sak som att säga att det finns (minst) två lejon, och (minst) ett av varje.

På b) skulle jag säga att det är fel. Se mitt uppdaterade svar.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback