Post your solution to the Oct 30 In-Class Exercise to this thread.
Best,
Chris
GreaterThanOne(3). GreaterThanOne(4). GreaterThanOne(5).
GreaterThan(5, 4). GreaterThan(4, 3). GreaterThan(3, 2). GreaterThan(2, 1). GreaterThan(1, 0).
LessThanFive(4). LessThanFive(3). LessThanFive(2). LessThanFive(1). LessThanFive(0).
OrderPair(x, y) <- GreaterThanOne(x), GreaterThan(x, y), LessThanFive(y).
Number(2). Number(3). Number(4). MoreThanOne(x) <- Number(x), 1<x. LessThanFive(x) <- Number(x), x<5. Ordered(x, y) <- MoreThanOne(x), LessThanFive(y), x<y.
or
Ordered(2, 3). Ordered(2, 4). Ordered(3, 4).
Pair(x, y) <- Ordered(x, y), y>3.
(Edited: 2019-10-30)Age('John', 17) Age('Mark', 22)
Adult(Y) <- Age(Y, Z), NOT Z < 18
Smaller(1, 2) Smaller(3, 4) Smaller(4, 5)
Bigger(Y, Z) <- Smaller(Y, D) AND Y > Z
(Edited: 2019-10-30)P(x,y) <- Q(x, y, z), z > 1, NOT R(y)
P(x, y) <- x > 1, y > x, 5 > y.
P(x, y) <- Q(x,y), y > 3
1.) P(x,y) <- Q(x,z), NOT R(x)
2.) OrderedPairs(2,3) <-. OrderedPairs(2,4) <-. OrderedPairs(3,4) <-.
3.) GreaterOrderedPairs(x, y) <- OrderedPairs(x, y), y > 3
This rule is safe because ID and GRADE appear safely in the first two subgoal and an arithmetic atom with GPA > 3.0.
OrderedPairs(2, 3) <-.
OrderedPairs(2, 4) <-.
OrderedPairs(3, 4) <-.
Note: #2 is not a Datalog
Pair(x, y) <- Smaller(x, y), y > 3.
(Edited: 2019-10-30)1.)
isPhone(X) <- isHandy(X) , NOT( isLaptop(X) ) , X >0
isHandy(X) <- X< 100 isLaptop(X) <- X> 2000
coordinates(2,4)
isValid(X) <- X>0
(Edited: 2019-10-30)