-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhw2_1.sp
More file actions
39 lines (30 loc) · 848 Bytes
/
hw2_1.sp
File metadata and controls
39 lines (30 loc) · 848 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
% Program for Chapter 5 Exercise problem 1.
% Apollo and Helios are lions in a zoo.
% Normally lions are dangerous.
% Baby Lions are not dangerous.
% Helios is a baby Lion.
%Query for dangerous(X) where X is a lion.
sorts
#lions = {helios, apollo, momos}.
#babies = {helios, momos}.
#default = d_dangerous(#lions).
predicates
dangerous(#lions).
lion(#lions).
d_dangerous(#lions).
baby(#babies).
ab(#default).
rules
%default - Normally lions are dangerous
dangerous(X) :- lion(X), not ab(d_dangerous(X)), not -dangerous(X).
%Strong exception - Baby Lions are not dangerous
-dangerous(X) :- lion(X), baby(X).
%If X is a baby then it is also a lion.
lion(X) :- baby(X).
%CWA - If X may not be a baby lion then it is not a baby lion.
-baby(X) :- lion(X), not baby(X).
%Facts
lion(apollo).
baby(helios).
%Additional Facts
-dangerous(apollo).