Bob is blue. Bob is kind. Bob is red. Bob is rough. Bob is round. Bob is white. Bob is young. Fiona is blue. Fiona is kind. Fiona is rough. Fiona is round. Fiona is young. If something is round and white then it is young. Kind things are red. If something is blue then it is red. If something is rough then it is blue. Blue things are white. Young, round things are kind.
Bob is blue.
("Bob" "is" "blue" "+")
Bob is kind.
("Bob" "is" "kind" "+")
Bob is red.
("Bob" "is" "red" "+")
Bob is rough.
("Bob" "is" "rough" "+")
Bob is round.
("Bob" "is" "round" "+")
Bob is white.
("Bob" "is" "white" "+")
Bob is young.
("Bob" "is" "young" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is kind.
("Fiona" "is" "kind" "+")
Fiona is rough.
("Fiona" "is" "rough" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Fiona is young.
("Fiona" "is" "young" "+")
If something is round and white then it is young.
((("something" "is" "round" "+") ("something" "is" "white" "+")) -> ("something" "is" "young" "+"))
Kind things are red.
((("something" "is" "kind" "+")) -> ("something" "is" "red" "+"))
If something is blue then it is red.
((("something" "is" "blue" "+")) -> ("something" "is" "red" "+"))
If something is rough then it is blue.
((("something" "is" "rough" "+")) -> ("something" "is" "blue" "+"))
Blue things are white.
((("something" "is" "blue" "+")) -> ("something" "is" "white" "+"))
Young, round things are kind.
((("something" "is" "young" "+") ("something" "is" "round" "+")) -> ("something" "is" "kind" "+"))
Fiona is round.
True
1
proof
[(triple11)]
("Fiona" "is" "round" "+")
triple11
Fiona is not rough.
False
1
inv-proof
[(triple10)]
("Fiona" "is" "rough" "-")
triple10
Fiona is red.
True
2
proof
[(((triple8) -> rule3) OR ((triple9) -> rule2) OR ((((triple10) -> rule4)) -> rule3) OR ((((triple12 triple11) -> rule6)) -> rule2) OR ((((((triple11 ((triple8) -> rule5)) -> rule1) triple11) -> rule6)) -> rule2) OR ((((((triple11 ((((triple10) -> rule4)) -> rule5)) -> rule1) triple11) -> rule6)) -> rule2))]
("Fiona" "is" "red" "+")
((triple8) -> (rule3 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
((triple9) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
((((triple10) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
((((triple12 triple11) -> (rule6 % int2))) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
((((((triple11 ((triple8) -> (rule5 % int4))) -> (rule1 % int3)) triple11) -> (rule6 % int2))) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is young.
("Fiona" "is" "young" "+")
int3
Fiona is white.
("Fiona" "is" "white" "+")
int4
((((((triple11 ((((triple10) -> (rule4 % int5))) -> (rule5 % int4))) -> (rule1 % int3)) triple11) -> (rule6 % int2))) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is young.
("Fiona" "is" "young" "+")
int3
Fiona is white.
("Fiona" "is" "white" "+")
int4
Fiona is blue.
("Fiona" "is" "blue" "+")
int5
Fiona is not white.
False
2
inv-proof
[(((triple8) -> rule5) OR ((((triple10) -> rule4)) -> rule5))]
("Fiona" "is" "white" "-")
((triple8) -> (rule5 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
((((triple10) -> (rule4 % int2))) -> (rule5 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
@0: Bob is blue.[(triple1 OR ((triple4) -> rule4))] Bob is kind.[(triple2 OR ((triple7 triple5) -> rule6) OR ((((triple5 triple6) -> rule1) triple5) -> rule6) OR ((((triple5 ((triple1) -> rule5)) -> rule1) triple5) -> rule6) OR ((((triple5 ((((triple4) -> rule4)) -> rule5)) -> rule1) triple5) -> rule6))] Bob is red.[(triple3 OR ((triple1) -> rule3) OR ((triple2) -> rule2) OR ((((triple4) -> rule4)) -> rule3) OR ((((triple7 triple5) -> rule6)) -> rule2) OR ((((((triple5 triple6) -> rule1) triple5) -> rule6)) -> rule2) OR ((((((triple5 ((triple1) -> rule5)) -> rule1) triple5) -> rule6)) -> rule2) OR ((((((triple5 ((((triple4) -> rule4)) -> rule5)) -> rule1) triple5) -> rule6)) -> rule2))] Bob is rough.[(triple4)] Bob is round.[(triple5)] Bob is white.[(triple6 OR ((triple1) -> rule5) OR ((((triple4) -> rule4)) -> rule5))] Bob is young.[(triple7 OR ((triple5 triple6) -> rule1) OR ((triple5 ((triple1) -> rule5)) -> rule1) OR ((triple5 ((((triple4) -> rule4)) -> rule5)) -> rule1))] Fiona is blue.[(triple8 OR ((triple10) -> rule4))] Fiona is kind.[(triple9 OR ((triple12 triple11) -> rule6) OR ((((triple11 ((triple8) -> rule5)) -> rule1) triple11) -> rule6) OR ((((triple11 ((((triple10) -> rule4)) -> rule5)) -> rule1) triple11) -> rule6))] Fiona is rough.[(triple10)] Fiona is round.[(triple11)] Fiona is young.[(triple12 OR ((triple11 ((triple8) -> rule5)) -> rule1) OR ((triple11 ((((triple10) -> rule4)) -> rule5)) -> rule1))] @1: Fiona is red.[(((triple8) -> rule3) OR ((triple9) -> rule2) OR ((((triple10) -> rule4)) -> rule3) OR ((((triple12 triple11) -> rule6)) -> rule2) OR ((((((triple11 ((triple8) -> rule5)) -> rule1) triple11) -> rule6)) -> rule2) OR ((((((triple11 ((((triple10) -> rule4)) -> rule5)) -> rule1) triple11) -> rule6)) -> rule2))] Fiona is white.[(((triple8) -> rule5) OR ((((triple10) -> rule4)) -> rule5))]
Bob is blue.
("Bob" "is" "blue" "+")
triple1
((triple4) -> (rule4 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
triple2
((triple7 triple5) -> (rule6 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
((((triple5 triple6) -> (rule1 % int2)) triple5) -> (rule6 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
((((triple5 ((triple1) -> (rule5 % int3))) -> (rule1 % int2)) triple5) -> (rule6 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
int3
((((triple5 ((((triple4) -> (rule4 % int4))) -> (rule5 % int3))) -> (rule1 % int2)) triple5) -> (rule6 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Bob is red.
("Bob" "is" "red" "+")
triple3
((triple1) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
((triple2) -> (rule2 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
((((triple4) -> (rule4 % int2))) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((triple7 triple5) -> (rule6 % int2))) -> (rule2 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
((((((triple5 triple6) -> (rule1 % int3)) triple5) -> (rule6 % int2))) -> (rule2 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Bob is young.
("Bob" "is" "young" "+")
int3
((((((triple5 ((triple1) -> (rule5 % int4))) -> (rule1 % int3)) triple5) -> (rule6 % int2))) -> (rule2 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Bob is young.
("Bob" "is" "young" "+")
int3
Bob is white.
("Bob" "is" "white" "+")
int4
((((((triple5 ((((triple4) -> (rule4 % int5))) -> (rule5 % int4))) -> (rule1 % int3)) triple5) -> (rule6 % int2))) -> (rule2 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Bob is young.
("Bob" "is" "young" "+")
int3
Bob is white.
("Bob" "is" "white" "+")
int4
Bob is blue.
("Bob" "is" "blue" "+")
int5
Bob is rough.
("Bob" "is" "rough" "+")
triple4
Bob is round.
("Bob" "is" "round" "+")
triple5
Bob is white.
("Bob" "is" "white" "+")
triple6
((triple1) -> (rule5 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
((((triple4) -> (rule4 % int2))) -> (rule5 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is young.
("Bob" "is" "young" "+")
triple7
((triple5 triple6) -> (rule1 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
((triple5 ((triple1) -> (rule5 % int2))) -> (rule1 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
((triple5 ((((triple4) -> (rule4 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Fiona is blue.
("Fiona" "is" "blue" "+")
triple8
((triple10) -> (rule4 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
triple9
((triple12 triple11) -> (rule6 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
((((triple11 ((triple8) -> (rule5 % int3))) -> (rule1 % int2)) triple11) -> (rule6 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is white.
("Fiona" "is" "white" "+")
int3
((((triple11 ((((triple10) -> (rule4 % int4))) -> (rule5 % int3))) -> (rule1 % int2)) triple11) -> (rule6 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is white.
("Fiona" "is" "white" "+")
int3
Fiona is blue.
("Fiona" "is" "blue" "+")
int4
Fiona is rough.
("Fiona" "is" "rough" "+")
triple10
Fiona is round.
("Fiona" "is" "round" "+")
triple11
Fiona is young.
("Fiona" "is" "young" "+")
triple12
((triple11 ((triple8) -> (rule5 % int2))) -> (rule1 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
int2
((triple11 ((((triple10) -> (rule4 % int3))) -> (rule5 % int2))) -> (rule1 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
int2
Fiona is blue.
("Fiona" "is" "blue" "+")
int3
Fiona is red.
("Fiona" "is" "red" "+")
((triple8) -> (rule3 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
((triple9) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
((((triple10) -> (rule4 % int2))) -> (rule3 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
((((triple12 triple11) -> (rule6 % int2))) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
((((((triple11 ((triple8) -> (rule5 % int4))) -> (rule1 % int3)) triple11) -> (rule6 % int2))) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is young.
("Fiona" "is" "young" "+")
int3
Fiona is white.
("Fiona" "is" "white" "+")
int4
((((((triple11 ((((triple10) -> (rule4 % int5))) -> (rule5 % int4))) -> (rule1 % int3)) triple11) -> (rule6 % int2))) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is young.
("Fiona" "is" "young" "+")
int3
Fiona is white.
("Fiona" "is" "white" "+")
int4
Fiona is blue.
("Fiona" "is" "blue" "+")
int5
Fiona is white.
("Fiona" "is" "white" "+")
((triple8) -> (rule5 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
((((triple10) -> (rule4 % int2))) -> (rule5 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2