SLIDE is a prototype tool for checking entailment in Separation Logic with user-provided inductive definitions of recursive data structures (lists, trees, and beyond)
File name | Recursive definition |
DLL.pred | DLL(p1,nil,p2,nil) |
DLL-rev.pred | DLLrev(p1,nil,p2,nil) |
DLL-mid.pred | DLLmid(p1,nil,p2,nil) |
node+DLL-rev+DLL.pred | \ex. x,n,b. x-> (n,b) * DLLrev(p1,nil,b,x) * DLL(n,x,p2,nil) |
node+node+DLL.pred | \ex. y,a. p1-> (y,nil) * y->(a,p1) * DLL(a,y,p2,\nil) |
dll-rev+dll.pred | \ex. x,b. DLLrev(x,b,p2,nil) * DLL(p1,nil,b,x) |
DLL0+.pred | DLL0+(p1,nil,p2,nil) |
TREE-pp.pred | TREEpp(p1,nil) |
TREE-pp-rev.pred | TREEpprev(p1,nil) |
TLL-pp.pred | TLLpp(p1,nil,ml,mr) |
TLL-pp-rev.pred | TLLpprev(p1,nil,ml,mr) |
node+TLL-pp.pred | \ex. l,r,z. p1->(l,r,nil,nil) * TLL (l,p1,ml,z)* TLL(r,p1,z,mr) |