Bob is rough. Bob is round. Dave is kind. Dave is rough. Dave is round. Gary is kind. Gary is nice. Gary is round. Harry is blue. Harry is young. Blue people are round. Smart, blue people are round. If someone is round then they are young. If someone is kind then they are smart. All round, young people are blue. If someone is smart and kind then they are rough. Round, blue people are kind. If someone is rough and nice then they are smart.
Bob is rough.
("Bob" "is" "rough" "+")
Bob is round.
("Bob" "is" "round" "+")
Dave is kind.
("Dave" "is" "kind" "+")
Dave is rough.
("Dave" "is" "rough" "+")
Dave is round.
("Dave" "is" "round" "+")
Gary is kind.
("Gary" "is" "kind" "+")
Gary is nice.
("Gary" "is" "nice" "+")
Gary is round.
("Gary" "is" "round" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is young.
("Harry" "is" "young" "+")
Blue people are round.
((("someone" "is" "blue" "+")) -> ("someone" "is" "round" "+"))
Smart, blue people are round.
((("someone" "is" "smart" "+") ("someone" "is" "blue" "+")) -> ("someone" "is" "round" "+"))
If someone is round then they are young.
((("someone" "is" "round" "+")) -> ("someone" "is" "young" "+"))
If someone is kind then they are smart.
((("someone" "is" "kind" "+")) -> ("someone" "is" "smart" "+"))
All round, young people are blue.
((("someone" "is" "round" "+") ("someone" "is" "young" "+")) -> ("someone" "is" "blue" "+"))
If someone is smart and kind then they are rough.
((("someone" "is" "smart" "+") ("someone" "is" "kind" "+")) -> ("someone" "is" "rough" "+"))
Round, blue people are kind.
((("someone" "is" "round" "+") ("someone" "is" "blue" "+")) -> ("someone" "is" "kind" "+"))
If someone is rough and nice then they are smart.
((("someone" "is" "rough" "+") ("someone" "is" "nice" "+")) -> ("someone" "is" "smart" "+"))
Gary is kind.
True
1
proof
[(triple6 OR ((triple8 ((triple8 ((triple8) -> rule3)) -> rule5)) -> rule7))]
("Gary" "is" "kind" "+")
triple6
((triple8 ((triple8 ((triple8) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule7 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
Gary is young.
("Gary" "is" "young" "+")
int3
Harry is not young.
False
1
inv-proof
[(triple10 OR ((((triple9) -> rule1)) -> rule3))]
("Harry" "is" "young" "-")
triple10
((((triple9) -> (rule1 % int2))) -> (rule3 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Gary is young.
True
2
proof
[(((triple8) -> rule3))]
("Gary" "is" "young" "+")
((triple8) -> (rule3 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Gary is not young.
False
2
inv-proof
[(((triple8) -> rule3))]
("Gary" "is" "young" "-")
((triple8) -> (rule3 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Bob is blue.
True
4
proof
[(((triple2 ((triple2) -> rule3)) -> rule5))]
("Bob" "is" "blue" "+")
((triple2 ((triple2) -> (rule3 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is not blue.
False
4
inv-proof
[(((triple2 ((triple2) -> rule3)) -> rule5))]
("Bob" "is" "blue" "-")
((triple2 ((triple2) -> (rule3 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Harry is smart.
True
5
proof
[(((((((triple9) -> rule1) triple9) -> rule7)) -> rule4))]
("Harry" "is" "smart" "+")
((((((triple9) -> (rule1 % int3)) triple9) -> (rule7 % int2))) -> (rule4 % int1))
Harry is smart.
("Harry" "is" "smart" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
Harry is not smart.
False
5
inv-proof
[(((((((triple9) -> rule1) triple9) -> rule7)) -> rule4))]
("Harry" "is" "smart" "-")
((((((triple9) -> (rule1 % int3)) triple9) -> (rule7 % int2))) -> (rule4 % int1))
Harry is smart.
("Harry" "is" "smart" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
Bob is not nice.
Unknown
inv-random
[@0: Bob is nice.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "nice" "-")
Harry is nice.
Unknown
random
[@0: Harry is nice.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "nice" "+")
@0: Bob is rough.[(triple1 OR ((((((triple2 ((triple2 ((triple2) -> rule3)) -> rule5)) -> rule7)) -> rule4) ((triple2 ((triple2 ((triple2) -> rule3)) -> rule5)) -> rule7)) -> rule6))] Bob is round.[(triple2)] Dave is kind.[(triple3 OR ((triple5 ((triple5 ((triple5) -> rule3)) -> rule5)) -> rule7))] Dave is rough.[(triple4 OR ((((triple3) -> rule4) triple3) -> rule6) OR ((((triple3) -> rule4) ((triple5 ((triple5 ((triple5) -> rule3)) -> rule5)) -> rule7)) -> rule6) OR ((((((triple5 ((triple5 ((triple5) -> rule3)) -> rule5)) -> rule7)) -> rule4) triple3) -> rule6) OR ((((((triple5 ((triple5 ((triple5) -> rule3)) -> rule5)) -> rule7)) -> rule4) ((triple5 ((triple5 ((triple5) -> rule3)) -> rule5)) -> rule7)) -> rule6))] Dave is round.[(triple5)] Gary is kind.[(triple6 OR ((triple8 ((triple8 ((triple8) -> rule3)) -> rule5)) -> rule7))] Gary is nice.[(triple7)] Gary is round.[(triple8)] Harry is blue.[(triple9)] Harry is young.[(triple10 OR ((((triple9) -> rule1)) -> rule3))] @1: Bob is young.[(((triple2) -> rule3))] Dave is smart.[(((triple3) -> rule4) OR ((((triple5 ((triple5 ((triple5) -> rule3)) -> rule5)) -> rule7)) -> rule4))] Dave is young.[(((triple5) -> rule3))] Gary is smart.[(((triple6) -> rule4) OR ((((triple8 ((triple8 ((triple8) -> rule3)) -> rule5)) -> rule7)) -> rule4))] Gary is young.[(((triple8) -> rule3))] Harry is round.[(((triple9) -> rule1))] @2: Bob is blue.[(((triple2 ((triple2) -> rule3)) -> rule5))] Dave is blue.[(((triple5 ((triple5) -> rule3)) -> rule5))] Gary is blue.[(((triple8 ((triple8) -> rule3)) -> rule5))] Gary is rough.[(((((triple6) -> rule4) triple6) -> rule6) OR ((((triple6) -> rule4) ((triple8 ((triple8 ((triple8) -> rule3)) -> rule5)) -> rule7)) -> rule6) OR ((((((triple8 ((triple8 ((triple8) -> rule3)) -> rule5)) -> rule7)) -> rule4) triple6) -> rule6) OR ((((((triple8 ((triple8 ((triple8) -> rule3)) -> rule5)) -> rule7)) -> rule4) ((triple8 ((triple8 ((triple8) -> rule3)) -> rule5)) -> rule7)) -> rule6))] Harry is kind.[(((((triple9) -> rule1) triple9) -> rule7))] @3: Bob is kind.[(((triple2 ((triple2 ((triple2) -> rule3)) -> rule5)) -> rule7))] Harry is smart.[(((((((triple9) -> rule1) triple9) -> rule7)) -> rule4))] @4: Bob is smart.[(((((triple2 ((triple2 ((triple2) -> rule3)) -> rule5)) -> rule7)) -> rule4))] Harry is rough.[(((((((((triple9) -> rule1) triple9) -> rule7)) -> rule4) ((((triple9) -> rule1) triple9) -> rule7)) -> rule6))]
Bob is rough.
("Bob" "is" "rough" "+")
triple1
((((((triple2 ((triple2 ((triple2) -> (rule3 % int5))) -> (rule5 % int4))) -> (rule7 % int3))) -> (rule4 % int2)) ((triple2 ((triple2 ((triple2) -> (rule3 % int5))) -> (rule5 % int4))) -> (rule7 % int3))) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
Bob is kind.
("Bob" "is" "kind" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Bob is young.
("Bob" "is" "young" "+")
int5
Bob is round.
("Bob" "is" "round" "+")
triple2
Dave is kind.
("Dave" "is" "kind" "+")
triple3
((triple5 ((triple5 ((triple5) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule7 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is blue.
("Dave" "is" "blue" "+")
int2
Dave is young.
("Dave" "is" "young" "+")
int3
Dave is rough.
("Dave" "is" "rough" "+")
triple4
((((triple3) -> (rule4 % int2)) triple3) -> (rule6 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is smart.
("Dave" "is" "smart" "+")
int2
((((triple3) -> (rule4 % int5)) ((triple5 ((triple5 ((triple5) -> (rule3 % int4))) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
Dave is young.
("Dave" "is" "young" "+")
int4
Dave is smart.
("Dave" "is" "smart" "+")
int5
((((((triple5 ((triple5 ((triple5) -> (rule3 % int5))) -> (rule5 % int4))) -> (rule7 % int3))) -> (rule4 % int2)) triple3) -> (rule6 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is smart.
("Dave" "is" "smart" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
int3
Dave is blue.
("Dave" "is" "blue" "+")
int4
Dave is young.
("Dave" "is" "young" "+")
int5
((((((triple5 ((triple5 ((triple5) -> (rule3 % int5))) -> (rule5 % int4))) -> (rule7 % int3))) -> (rule4 % int2)) ((triple5 ((triple5 ((triple5) -> (rule3 % int5))) -> (rule5 % int4))) -> (rule7 % int3))) -> (rule6 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is smart.
("Dave" "is" "smart" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
int3
Dave is blue.
("Dave" "is" "blue" "+")
int4
Dave is young.
("Dave" "is" "young" "+")
int5
Dave is round.
("Dave" "is" "round" "+")
triple5
Gary is kind.
("Gary" "is" "kind" "+")
triple6
((triple8 ((triple8 ((triple8) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule7 % int1))
Gary is kind.
("Gary" "is" "kind" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
Gary is young.
("Gary" "is" "young" "+")
int3
Gary is nice.
("Gary" "is" "nice" "+")
triple7
Gary is round.
("Gary" "is" "round" "+")
triple8
Harry is blue.
("Harry" "is" "blue" "+")
triple9
Harry is young.
("Harry" "is" "young" "+")
triple10
((((triple9) -> (rule1 % int2))) -> (rule3 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Bob is young.
("Bob" "is" "young" "+")
((triple2) -> (rule3 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Dave is smart.
("Dave" "is" "smart" "+")
((triple3) -> (rule4 % int1))
Dave is smart.
("Dave" "is" "smart" "+")
int1
((((triple5 ((triple5 ((triple5) -> (rule3 % int4))) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule4 % int1))
Dave is smart.
("Dave" "is" "smart" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
Dave is young.
("Dave" "is" "young" "+")
int4
Dave is young.
("Dave" "is" "young" "+")
((triple5) -> (rule3 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
Gary is smart.
("Gary" "is" "smart" "+")
((triple6) -> (rule4 % int1))
Gary is smart.
("Gary" "is" "smart" "+")
int1
((((triple8 ((triple8 ((triple8) -> (rule3 % int4))) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule4 % int1))
Gary is smart.
("Gary" "is" "smart" "+")
int1
Gary is kind.
("Gary" "is" "kind" "+")
int2
Gary is blue.
("Gary" "is" "blue" "+")
int3
Gary is young.
("Gary" "is" "young" "+")
int4
Gary is young.
("Gary" "is" "young" "+")
((triple8) -> (rule3 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
((triple9) -> (rule1 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
((triple2 ((triple2) -> (rule3 % int2))) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
((triple5 ((triple5) -> (rule3 % int2))) -> (rule5 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is young.
("Dave" "is" "young" "+")
int2
Gary is blue.
("Gary" "is" "blue" "+")
((triple8 ((triple8) -> (rule3 % int2))) -> (rule5 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is young.
("Gary" "is" "young" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
((((triple6) -> (rule4 % int2)) triple6) -> (rule6 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is smart.
("Gary" "is" "smart" "+")
int2
((((triple6) -> (rule4 % int5)) ((triple8 ((triple8 ((triple8) -> (rule3 % int4))) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is kind.
("Gary" "is" "kind" "+")
int2
Gary is blue.
("Gary" "is" "blue" "+")
int3
Gary is young.
("Gary" "is" "young" "+")
int4
Gary is smart.
("Gary" "is" "smart" "+")
int5
((((((triple8 ((triple8 ((triple8) -> (rule3 % int5))) -> (rule5 % int4))) -> (rule7 % int3))) -> (rule4 % int2)) triple6) -> (rule6 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is smart.
("Gary" "is" "smart" "+")
int2
Gary is kind.
("Gary" "is" "kind" "+")
int3
Gary is blue.
("Gary" "is" "blue" "+")
int4
Gary is young.
("Gary" "is" "young" "+")
int5
((((((triple8 ((triple8 ((triple8) -> (rule3 % int5))) -> (rule5 % int4))) -> (rule7 % int3))) -> (rule4 % int2)) ((triple8 ((triple8 ((triple8) -> (rule3 % int5))) -> (rule5 % int4))) -> (rule7 % int3))) -> (rule6 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is smart.
("Gary" "is" "smart" "+")
int2
Gary is kind.
("Gary" "is" "kind" "+")
int3
Gary is blue.
("Gary" "is" "blue" "+")
int4
Gary is young.
("Gary" "is" "young" "+")
int5
Harry is kind.
("Harry" "is" "kind" "+")
((((triple9) -> (rule1 % int2)) triple9) -> (rule7 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Bob is kind.
("Bob" "is" "kind" "+")
((triple2 ((triple2 ((triple2) -> (rule3 % int3))) -> (rule5 % int2))) -> (rule7 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is young.
("Bob" "is" "young" "+")
int3
Harry is smart.
("Harry" "is" "smart" "+")
((((((triple9) -> (rule1 % int3)) triple9) -> (rule7 % int2))) -> (rule4 % int1))
Harry is smart.
("Harry" "is" "smart" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
Bob is smart.
("Bob" "is" "smart" "+")
((((triple2 ((triple2 ((triple2) -> (rule3 % int4))) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule4 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Bob is young.
("Bob" "is" "young" "+")
int4
Harry is rough.
("Harry" "is" "rough" "+")
((((((((triple9) -> (rule1 % int4)) triple9) -> (rule7 % int3))) -> (rule4 % int2)) ((((triple9) -> (rule1 % int4)) triple9) -> (rule7 % int3))) -> (rule6 % int1))
Harry is rough.
("Harry" "is" "rough" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
Harry is kind.
("Harry" "is" "kind" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
int4