
simple = [
    "p", "q",
    "p&q", "p|q", "p->q", "p<->q", "-p",
    "all x (p(x))", "all x y (p(x,y))",
    "all x (p(x) -> q(x))", "all x y (p(x) -> q(x)",
    "exists x (p(x))", "exists x y (p(x,y))"
    ]

#  Sample otterlang/rdf expressions in canonical form (this is
#  what we'd output, as well.
rdf = [
    "rdf('<a>','<b>','<c>').",
    "rdf(a,b,c).",
    "rdf(d,e,f).",
    "rdf(a,b,c). rdf(d,e,f).",
    "(rdf(a,b,c) & rdf(d,e,f)).",
    "(rdf(a,b,c) | rdf(d,e,f)).",
    "(rdf(a,b,c) -> rdf(d,e,f)).",
    "(rdf(a,b,c) <-> rdf(d,e,f)).",
    "-rdf(a,b,c).",
    "(all x (rdf(a,b,x))).",
    "(all x ((all y (rdf(a,x,y))))).",
    "(all x ((rdf(a,b,x) -> rdf(d,e,x)))).",
    "(all x ((all y ((rdf(a,b,x) -> rdf(d,e,x)))))).",
    "(exists x (rdf(a,b,x))).",
    "(exists x ((exists y (rdf(a,x,y))))).",
    ]

#   These ones are not in canonical form.
rdf_non_canonical = [
    "rdf(a,b,c) & rdf(d,e,f).",
    "rdf(a,b,c) | rdf(d,e,f).",
    "rdf(a,b,c) -> rdf(d,e,f).",
    "rdf(a,b,c) <-> rdf(d,e,f).",
    "-rdf(a,b,c).",
    "all x (rdf(a,b,x)).",
    "all x y (rdf(a,x,y)).",
    "all x (rdf(a,b,x) -> rdf(d,e,x)).",
    "all x y (rdf(a,b,x) -> rdf(d,e,x)).",
    "exists x (rdf(a,b,x)).",
    "exists x y (rdf(a,x,y)).",
    ]

