Problem Description Given the following prolog program, answer the following que
ID: 3823715 • Letter: P
Question
Problem Description Given the following prolog program, answer the following queries:
/* Comments in prolog + represents "not equal to" */
%single line comments
day("sunday").
day("monday").
day("tuesay").
day("wednesday").
day("thursday").
day("friday").
no_office("sunday").
no_office("saturday").
take_leave("monday").
visit_mom(X) :- no_office(X) | take_leave(X).
Interpret the queries and guess(!) the answer(s) produced by the program:
1. day("Holiday").
2. day(X).
3. visit_mom(X).
4. visit_mom(X). provided you have changed the rule with this: visit_mom(X) :- no_office(X) , take_leave(X).
5. define a new rule “working_day(X)”to detect the days that are not holidays.
6. Express the following statements in first order logic. You can define the predicates as you wish. Apply appropriate quantifiers for each expression.
a. I can visit my mom every day.
b. I can visit my mom if I have no office.
c. I take leave some day and I can visit my mom.
d. I can take leave if it is a working day.
e. What is the domain for a possible predicate “day(X)”?
Explanation / Answer
day("sunday").
day("monday").
day("tuesay").
day("wednesday").
day("thursday").
day("friday").
no_office("sunday").
no_office("saturday").
take_leave("monday").
visit_mom(X) :- no_office(X) | take_leave(X).
Based on above facts and rules, prolog program will answer the queries as follows.
1. day("Holiday").
No
2. day(X).
No
3. visit_mom(X).
No (X is a variable here)
4. visit_mom(X). provided you have changed the rule with this: visit_mom(X) :- no_office(X) , take_leave(X).
??X is a variable here, value of X is required.
5. define a new rule “working_day(X)”to detect the days that are not holidays.
working_day(X) :- + no_office(X) | take_leave(X)
6. Express the following statements in first order logic. You can define the predicates as you wish. Apply appropriate quantifiers for each expression.
a. I can visit my mom every day.
X visit_mom(X) :- day(X)
b. I can visit my mom if I have no office.
visit_mom(X) :- no_office(X) | take_leave(X)
c. I take leave some day and I can visit my mom.
X visit_mom(X) :- take_leave(X)
d. I can take leave if it is a working day.
X take_leave(X) :- + no_office(X)
e. What is the domain for a possible predicate “day(X)”?
domain for predicate day(X) is the possible values of variable X which are {"monday","tuesday","wednesday","thrusday","friday","saturday","sunday"}.
Please let me know in case of any doubts.
Thanks.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.