kdrag.solvers.datalog
Classes
| 
 | A simple datalog solver using sqlite | 
- class kdrag.solvers.datalog.Datalog
- Bases: - object- A simple datalog solver using sqlite - >>> import kdrag as kd >>> s = Datalog() >>> edge = smt.Function('edge', smt.IntSort(), smt.IntSort(), smt.BoolSort()) >>> path = smt.Function('path', smt.IntSort(), smt.IntSort(), smt.BoolSort()) >>> s.declare_sig([edge, path]) >>> x, y, z = smt.Ints('x y z') >>> s.run(edge(1,2)) >>> s.run(edge(2,3)) >>> s.run(kd.QForAll([x,y], edge(x,y), path(x,y))) >>> s.run(kd.QForAll([x,y,z], edge(x,y), path(y,z), path(x,z))) >>> s.run(kd.QForAll([x,y,z], edge(x,y), path(y,z), path(x,z))) >>> s.db.execute("SELECT * FROM path").fetchall() [(1, 2), (2, 3), (1, 3)] - declare_sig(sig: list[FuncDeclRef])
- Parameters:
- sig (list[FuncDeclRef])