Anne is big. Anne is nice. Anne is rough. Anne is round. Anne is young. Bob is nice. Charlie is big. Charlie is kind. Erin is big. Erin is rough. All kind people are rough. If Charlie is young then Charlie is rough. If someone is big then they are young. Rough, blue people are big. All nice people are blue. Rough people are kind. All blue, nice people are kind. All round people are blue.
Anne is big.
("Anne" "is" "big" "+")
Anne is nice.
("Anne" "is" "nice" "+")
Anne is rough.
("Anne" "is" "rough" "+")
Anne is round.
("Anne" "is" "round" "+")
Anne is young.
("Anne" "is" "young" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Charlie is big.
("Charlie" "is" "big" "+")
Charlie is kind.
("Charlie" "is" "kind" "+")
Erin is big.
("Erin" "is" "big" "+")
Erin is rough.
("Erin" "is" "rough" "+")
All kind people are rough.
((("someone" "is" "kind" "+")) -> ("someone" "is" "rough" "+"))
If Charlie is young then Charlie is rough.
((("Charlie" "is" "young" "+")) -> ("Charlie" "is" "rough" "+"))
If someone is big then they are young.
((("someone" "is" "big" "+")) -> ("someone" "is" "young" "+"))
Rough, blue people are big.
((("someone" "is" "rough" "+") ("someone" "is" "blue" "+")) -> ("someone" "is" "big" "+"))
All nice people are blue.
((("someone" "is" "nice" "+")) -> ("someone" "is" "blue" "+"))
Rough people are kind.
((("someone" "is" "rough" "+")) -> ("someone" "is" "kind" "+"))
All blue, nice people are kind.
((("someone" "is" "blue" "+") ("someone" "is" "nice" "+")) -> ("someone" "is" "kind" "+"))
All round people are blue.
((("someone" "is" "round" "+")) -> ("someone" "is" "blue" "+"))
Charlie is big.
True
1
proof
[(triple7)]
("Charlie" "is" "big" "+")
triple7
Bob is not nice.
False
1
inv-proof
[(triple6)]
("Bob" "is" "nice" "-")
triple6
Anne is kind.
True
2
proof
[(((triple3) -> rule6) OR ((((triple2) -> rule5) triple2) -> rule7) OR ((((triple4) -> rule8) triple2) -> rule7))]
("Anne" "is" "kind" "+")
((triple3) -> (rule6 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
((((triple2) -> (rule5 % int2)) triple2) -> (rule7 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
((((triple4) -> (rule8 % int2)) triple2) -> (rule7 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
Erin is not young.
False
2
inv-proof
[(((triple9) -> rule3))]
("Erin" "is" "young" "-")
((triple9) -> (rule3 % int1))
Erin is young.
("Erin" "is" "young" "+")
int1
Bob is kind.
True
4
proof
[(((((triple6) -> rule5) triple6) -> rule7))]
("Bob" "is" "kind" "+")
((((triple6) -> (rule5 % int2)) triple6) -> (rule7 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is not kind.
False
4
inv-proof
[(((((triple6) -> rule5) triple6) -> rule7))]
("Bob" "is" "kind" "-")
((((triple6) -> (rule5 % int2)) triple6) -> (rule7 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is rough.
True
5
proof
[(((((((triple6) -> rule5) triple6) -> rule7)) -> rule1))]
("Bob" "is" "rough" "+")
((((((triple6) -> (rule5 % int3)) triple6) -> (rule7 % int2))) -> (rule1 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Bob is not rough.
False
5
inv-proof
[(((((((triple6) -> rule5) triple6) -> rule7)) -> rule1))]
("Bob" "is" "rough" "-")
((((((triple6) -> (rule5 % int3)) triple6) -> (rule7 % int2))) -> (rule1 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Bob is big.
True
8
proof
[(((((((((triple6) -> rule5) triple6) -> rule7)) -> rule1) ((triple6) -> rule5)) -> rule4))]
("Bob" "is" "big" "+")
((((((((triple6) -> (rule5 % int4)) triple6) -> (rule7 % int3))) -> (rule1 % int2)) ((triple6) -> (rule5 % int4))) -> (rule4 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is kind.
("Bob" "is" "kind" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Bob is not big.
False
8
inv-proof
[(((((((((triple6) -> rule5) triple6) -> rule7)) -> rule1) ((triple6) -> rule5)) -> rule4))]
("Bob" "is" "big" "-")
((((((((triple6) -> (rule5 % int4)) triple6) -> (rule7 % int3))) -> (rule1 % int2)) ((triple6) -> (rule5 % int4))) -> (rule4 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is kind.
("Bob" "is" "kind" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Bob is young.
True
9
proof
[(((((((((((triple6) -> rule5) triple6) -> rule7)) -> rule1) ((triple6) -> rule5)) -> rule4)) -> rule3))]
("Bob" "is" "young" "+")
((((((((((triple6) -> (rule5 % int5)) triple6) -> (rule7 % int4))) -> (rule1 % int3)) ((triple6) -> (rule5 % int5))) -> (rule4 % int2))) -> (rule3 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is kind.
("Bob" "is" "kind" "+")
int4
Bob is blue.
("Bob" "is" "blue" "+")
int5
Bob is not young.
False
9
inv-proof
[(((((((((((triple6) -> rule5) triple6) -> rule7)) -> rule1) ((triple6) -> rule5)) -> rule4)) -> rule3))]
("Bob" "is" "young" "-")
((((((((((triple6) -> (rule5 % int5)) triple6) -> (rule7 % int4))) -> (rule1 % int3)) ((triple6) -> (rule5 % int5))) -> (rule4 % int2))) -> (rule3 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is kind.
("Bob" "is" "kind" "+")
int4
Bob is blue.
("Bob" "is" "blue" "+")
int5
Erin is not blue.
Unknown
inv-rconc
[@1: Erin is blue.[CWA. Example of deepest failure = (rule5 <- FAIL)]]
("Erin" "is" "blue" "-")
Charlie is blue.
Unknown
rconc
[@1: Charlie is blue.[CWA. Example of deepest failure = (rule5 <- FAIL)]]
("Charlie" "is" "blue" "+")
Erin is not round.
Unknown
inv-random
[@0: Erin is round.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "round" "-")
Erin is nice.
Unknown
random
[@0: Erin is nice.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "nice" "+")
Bob is not round.
Unknown
inv-random
[@0: Bob is round.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "round" "-")
Charlie is nice.
Unknown
random
[@0: Charlie is nice.[CWA. Example of deepest failure = (FAIL)]]
("Charlie" "is" "nice" "+")
@0: Anne is big.[(triple1 OR ((triple3 ((triple2) -> rule5)) -> rule4) OR ((triple3 ((triple4) -> rule8)) -> rule4) OR ((((((((triple2) -> rule5) triple2) -> rule7)) -> rule1) ((triple2) -> rule5)) -> rule4) OR ((((((((triple2) -> rule5) triple2) -> rule7)) -> rule1) ((triple4) -> rule8)) -> rule4) OR ((((((((triple4) -> rule8) triple2) -> rule7)) -> rule1) ((triple2) -> rule5)) -> rule4) OR ((((((((triple4) -> rule8) triple2) -> rule7)) -> rule1) ((triple4) -> rule8)) -> rule4))] Anne is nice.[(triple2)] Anne is rough.[(triple3 OR ((((((triple2) -> rule5) triple2) -> rule7)) -> rule1) OR ((((((triple4) -> rule8) triple2) -> rule7)) -> rule1))] Anne is round.[(triple4)] Anne is young.[(triple5 OR ((triple1) -> rule3) OR ((((triple3 ((triple2) -> rule5)) -> rule4)) -> rule3) OR ((((triple3 ((triple4) -> rule8)) -> rule4)) -> rule3) OR ((((((((((triple2) -> rule5) triple2) -> rule7)) -> rule1) ((triple2) -> rule5)) -> rule4)) -> rule3) OR ((((((((((triple2) -> rule5) triple2) -> rule7)) -> rule1) ((triple4) -> rule8)) -> rule4)) -> rule3) OR ((((((((((triple4) -> rule8) triple2) -> rule7)) -> rule1) ((triple2) -> rule5)) -> rule4)) -> rule3) OR ((((((((((triple4) -> rule8) triple2) -> rule7)) -> rule1) ((triple4) -> rule8)) -> rule4)) -> rule3))] Bob is nice.[(triple6)] Charlie is big.[(triple7)] Charlie is kind.[(triple8 OR ((((((triple7) -> rule3)) -> rule2)) -> rule6))] Erin is big.[(triple9)] Erin is rough.[(triple10)] @1: Anne is blue.[(((triple2) -> rule5) OR ((triple4) -> rule8))] Anne is kind.[(((triple3) -> rule6) OR ((((triple2) -> rule5) triple2) -> rule7) OR ((((triple4) -> rule8) triple2) -> rule7))] Bob is blue.[(((triple6) -> rule5))] Charlie is rough.[(((triple8) -> rule1) OR ((((triple7) -> rule3)) -> rule2))] Charlie is young.[(((triple7) -> rule3))] Erin is kind.[(((triple10) -> rule6))] Erin is young.[(((triple9) -> rule3))] @2: Bob is kind.[(((((triple6) -> rule5) triple6) -> rule7))] @3: Bob is rough.[(((((((triple6) -> rule5) triple6) -> rule7)) -> rule1))] @4: Bob is big.[(((((((((triple6) -> rule5) triple6) -> rule7)) -> rule1) ((triple6) -> rule5)) -> rule4))] @5: Bob is young.[(((((((((((triple6) -> rule5) triple6) -> rule7)) -> rule1) ((triple6) -> rule5)) -> rule4)) -> rule3))]
Anne is big.
("Anne" "is" "big" "+")
triple1
((triple3 ((triple2) -> (rule5 % int2))) -> (rule4 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
((triple3 ((triple4) -> (rule8 % int2))) -> (rule4 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
((((((((triple2) -> (rule5 % int4)) triple2) -> (rule7 % int3))) -> (rule1 % int2)) ((triple2) -> (rule5 % int4))) -> (rule4 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is kind.
("Anne" "is" "kind" "+")
int3
Anne is blue.
("Anne" "is" "blue" "+")
int4
((((((((triple2) -> (rule5 % int4)) triple2) -> (rule7 % int3))) -> (rule1 % int2)) ((triple4) -> (rule8 % int4))) -> (rule4 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is kind.
("Anne" "is" "kind" "+")
int3
Anne is blue.
("Anne" "is" "blue" "+")
int4
((((((((triple4) -> (rule8 % int4)) triple2) -> (rule7 % int3))) -> (rule1 % int2)) ((triple2) -> (rule5 % int4))) -> (rule4 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is kind.
("Anne" "is" "kind" "+")
int3
Anne is blue.
("Anne" "is" "blue" "+")
int4
((((((((triple4) -> (rule8 % int4)) triple2) -> (rule7 % int3))) -> (rule1 % int2)) ((triple4) -> (rule8 % int4))) -> (rule4 % int1))
Anne is big.
("Anne" "is" "big" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is kind.
("Anne" "is" "kind" "+")
int3
Anne is blue.
("Anne" "is" "blue" "+")
int4
Anne is nice.
("Anne" "is" "nice" "+")
triple2
Anne is rough.
("Anne" "is" "rough" "+")
triple3
((((((triple2) -> (rule5 % int3)) triple2) -> (rule7 % int2))) -> (rule1 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
int2
Anne is blue.
("Anne" "is" "blue" "+")
int3
((((((triple4) -> (rule8 % int3)) triple2) -> (rule7 % int2))) -> (rule1 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
int2
Anne is blue.
("Anne" "is" "blue" "+")
int3
Anne is round.
("Anne" "is" "round" "+")
triple4
Anne is young.
("Anne" "is" "young" "+")
triple5
((triple1) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
((((triple3 ((triple2) -> (rule5 % int3))) -> (rule4 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Anne is blue.
("Anne" "is" "blue" "+")
int3
((((triple3 ((triple4) -> (rule8 % int3))) -> (rule4 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Anne is blue.
("Anne" "is" "blue" "+")
int3
((((((((((triple2) -> (rule5 % int5)) triple2) -> (rule7 % int4))) -> (rule1 % int3)) ((triple2) -> (rule5 % int5))) -> (rule4 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3
Anne is kind.
("Anne" "is" "kind" "+")
int4
Anne is blue.
("Anne" "is" "blue" "+")
int5
((((((((((triple2) -> (rule5 % int5)) triple2) -> (rule7 % int4))) -> (rule1 % int3)) ((triple4) -> (rule8 % int5))) -> (rule4 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3
Anne is kind.
("Anne" "is" "kind" "+")
int4
Anne is blue.
("Anne" "is" "blue" "+")
int5
((((((((((triple4) -> (rule8 % int5)) triple2) -> (rule7 % int4))) -> (rule1 % int3)) ((triple2) -> (rule5 % int5))) -> (rule4 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3
Anne is kind.
("Anne" "is" "kind" "+")
int4
Anne is blue.
("Anne" "is" "blue" "+")
int5
((((((((((triple4) -> (rule8 % int5)) triple2) -> (rule7 % int4))) -> (rule1 % int3)) ((triple4) -> (rule8 % int5))) -> (rule4 % int2))) -> (rule3 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is big.
("Anne" "is" "big" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3
Anne is kind.
("Anne" "is" "kind" "+")
int4
Anne is blue.
("Anne" "is" "blue" "+")
int5
Bob is nice.
("Bob" "is" "nice" "+")
triple6
Charlie is big.
("Charlie" "is" "big" "+")
triple7
Charlie is kind.
("Charlie" "is" "kind" "+")
triple8
((((((triple7) -> (rule3 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Charlie is kind.
("Charlie" "is" "kind" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Charlie is young.
("Charlie" "is" "young" "+")
int3
Erin is big.
("Erin" "is" "big" "+")
triple9
Erin is rough.
("Erin" "is" "rough" "+")
triple10
Anne is blue.
("Anne" "is" "blue" "+")
((triple2) -> (rule5 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
((triple4) -> (rule8 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is kind.
("Anne" "is" "kind" "+")
((triple3) -> (rule6 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
((((triple2) -> (rule5 % int2)) triple2) -> (rule7 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
((((triple4) -> (rule8 % int2)) triple2) -> (rule7 % int1))
Anne is kind.
("Anne" "is" "kind" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
((triple6) -> (rule5 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
((triple8) -> (rule1 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
((((triple7) -> (rule3 % int2))) -> (rule2 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Charlie is young.
("Charlie" "is" "young" "+")
int2
Charlie is young.
("Charlie" "is" "young" "+")
((triple7) -> (rule3 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Erin is kind.
("Erin" "is" "kind" "+")
((triple10) -> (rule6 % int1))
Erin is kind.
("Erin" "is" "kind" "+")
int1
Erin is young.
("Erin" "is" "young" "+")
((triple9) -> (rule3 % int1))
Erin is young.
("Erin" "is" "young" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
((((triple6) -> (rule5 % int2)) triple6) -> (rule7 % int1))
Bob is kind.
("Bob" "is" "kind" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
((((((triple6) -> (rule5 % int3)) triple6) -> (rule7 % int2))) -> (rule1 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is kind.
("Bob" "is" "kind" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Bob is big.
("Bob" "is" "big" "+")
((((((((triple6) -> (rule5 % int4)) triple6) -> (rule7 % int3))) -> (rule1 % int2)) ((triple6) -> (rule5 % int4))) -> (rule4 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is kind.
("Bob" "is" "kind" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Bob is young.
("Bob" "is" "young" "+")
((((((((((triple6) -> (rule5 % int5)) triple6) -> (rule7 % int4))) -> (rule1 % int3)) ((triple6) -> (rule5 % int5))) -> (rule4 % int2))) -> (rule3 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
int3
Bob is kind.
("Bob" "is" "kind" "+")
int4
Bob is blue.
("Bob" "is" "blue" "+")
int5