Can someone confirm these English to predicate logic problems for me?

Click For Summary

Homework Help Overview

The discussion revolves around translating English statements into predicate logic, specifically focusing on the formalization of two problems related to student grades and properties of integers. The subject area includes logic and mathematical reasoning.

Discussion Character

  • Exploratory, Conceptual clarification, Mathematical reasoning

Approaches and Questions Raised

  • The original poster attempts to define predicates and functions for the statements provided, expressing concerns about their understanding of the fundamentals. Some participants question the ambiguity in the English phrasing and its implications for the logical translation. There is also discussion about the syntax used for restricted quantifiers and the clarity of the notation.

Discussion Status

Participants are actively engaging with the original poster's attempts, providing feedback on the syntax and interpretations. There is a recognition of the ambiguity in the English language and its impact on logical formulation. Some guidance on syntax has been offered, but no consensus has been reached regarding the correct interpretation of the statements.

Contextual Notes

Participants note that the syntax for quantifiers and logical expressions may vary based on the conventions taught in their respective courses. The original poster expresses uncertainty about their understanding of the syntax rules and the implications of their logical expressions.

Ownaginatious
Messages
37
Reaction score
0

Homework Statement



I actually have to problems I would just like someone to confirm for me. I have several other problems similar to these, and I don't want to waste time in case I do not understand the fundamentals. Anyway:

a) Define suitable predicates and functions and then formalize the following sentence : A student receives a grade for every course in which he or she registers:

b) Translate the following English statements into predicate logic : Adding two odd integers yields an even number. Use only addition and multiplication; do not use division, mod, or predicates even(x) and odd(x).

2. Attempt at a solution

Now here is my attempt:

a) I defined the variables:
- c = courses
- s = students

And the functions:
- isReg(s, c)
- getGrades(s, c)

And then combined them into the following formal statement:

(\forall s|: (\forall c | isReg(s,c) : getsGrade(s, c)))

b) Now for this I simply derived the following:

(\forall x,y:Z|(\exists n:Z|:(2n+1) = x) \wedge (\exists n:Z|:(2n+1) = y):(\exists n:Z|:(2n) = (x + y)))

If I've gone wrong, any help at getting back onto the right track would be much appreciated.

Thanks :)
 
Physics news on Phys.org
(a) is probably right... but English can be ambiguous. When the sentence says "a student..." it could also be taken to mean that "there is a student..." which would be a quite different meaning.

But I suspect you've given what was intended.

I wonder a bit about your syntax for the restricted quantifiers (using "|" to restrict the range of a variable) in part a, where you have the "|" without the preceding domain. Is there a clearly defined syntax you are using?
 
Ya, I was wondering that exact same thing sylas. My textbook talks a lot about how English is so ambiguous, so I'm going to assume that whether this applies to one student or all students is open to my interpretation ;).
 
sylas said:
I wonder a bit about your syntax for the restricted quantifiers (using "|" to restrict the range of a variable) in part a, where you have the "|" without the preceding domain. Is there a clearly defined syntax you are using?

Oh I was led to believe that that's the equivalent to saying "over the whole domain", which is the equivalent to just putting "true" there.
 
Ownaginatious said:
Oh I was led to believe that that's the equivalent to saying "over the whole domain", which is the equivalent to just putting "true" there.

It depends on what rules you've been given for syntax. Your syntax uses ":" for two different roles, which is ok. I've seen it done before. I'll use "•" for the start of the statement to which the quantified applies, just for clarity. Here's a possible grammar:
Code:
    statement ::= quantifier variable ":" range "•" statement
    range ::= setvariable
            | setvariable "|" statement
Basically, a grammar like this requires a range for a variable, to be either just named set, or perhaps a named set with an additional constraint or restriction. That's how I have usually seen "|" used. It can be read "such that".

The "•" can be replaced with another ":" without ambiguity, unless the first ":" becomes optional. If the first ":" is optional you might have the following rule as well:
Code:
    statement ::= quantifier variable "•" statement
In this case there has to be some understood domain that is being used.

What I have not seen is "|" by itself, without the first ":". It makes sense, if understood has having a ":X" implied before hand, where X is the understood domain.

I'm just asking in case... have you been given a syntax you are expected to use? What you have is still quite comprehensible, but it you have a required syntax you might want to check.

Cheers -- sylas
 
Well, as given in our book, the syntax they want us to use is the following:

(*x | R : P)

R = Range, P = Body, * = operator/function, x = variable(s). The ':' is also used to represent type (i.e. x : Z = x of type integer).

In class my professor just left out R or made it "true" when he wanted to use the whole domain.

Here is an example he did:

"Some integer is larger than 23" formally is (\exists x:Z|:x > 23) or (\exists x:Z|true:x > 23)

Sorry if I've misunderstood your question. This is all new to me.
 
Ownaginatious said:
Well, as given in our book, the syntax they want us to use is the following:

(*x | R : P)

R = Range, P = Body, * = operator/function, x = variable(s). The ':' is also used to represent type (i.e. x : Z = x of type integer).

In class my professor just left out R or made it "true" when he wanted to use the whole domain.

Here is an example he did:

"Some integer is larger than 23" formally is (\exists x:Z|:x > 23) or (\exists x:Z|true:x > 23)

Sorry if I've misunderstood your question. This is all new to me.

You've understood fine, and your answers seem fine and consistent with the syntax you've provided. I just wondered about the syntax, and you've explained it well.

Cheers -- sylas
 
sylas said:
You've understood fine, and your answers seem fine and consistent with the syntax you've provided. I just wondered about the syntax, and you've explained it well.

Cheers -- sylas

Oh awesome :) Thank you very much for you help!
 

Similar threads

Replies
2
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 35 ·
2
Replies
35
Views
5K
  • · Replies 4 ·
Replies
4
Views
4K
Replies
3
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 16 ·
Replies
16
Views
6K
  • · Replies 3 ·
Replies
3
Views
3K
Replies
3
Views
2K