.decl Instance1(d:number)
.output Instance1()
.decl Instance2(d:number)
.output Instance2()
.decl Instance3(d:number)
.output Instance3()
.decl Instance4(d:number)
.output Instance4()

.decl In(s1: number, s2:number, s3:number, d1:number, d2:number, d3:number, d:number)
.input In()
.decl Tbl(s1: number, s2:number, s3:number, in:number)
.input Tbl()

Instance1(d) :- In(s1, _, s3, d1, d2, d3, d),
                   Tbl(s1, _, s3, 1), Tbl(d1, d2, d3, 0),
                   s1 = 5, s3 = 2, d1 = 1, d2 = 3, d3 = 5.

Instance2(d) :- In(s1, _, _, d1, d2, d3, d),
                   Tbl(s1, _, _, 1), Tbl(d1, d2, d3, 0),
                   s1 = 4, d1 = 2, d2 = 4, d3 = 4.

Instance3(d) :- In(_, s2, s3, d1, d2, d3, d),
                   Tbl(_, s2, s3, 1), Tbl(d1, d2, d3, 0),
                   s2 = 4, s3 = 2, d1 = 3, d2 = 5, d3 = 3.

Instance3(d) :- In(_, s2, s3, d1, _, d3, d),
                   Tbl(_, s2, s3, 1), Tbl(d1, _, d3, 0),
                   s2 = 4, s3 = 2, d1 = 4, d3 = 3.


Instance4(d) :- In(s1, _, _, d1, _, _, d),
                   Tbl(s1, _, _, 1), Tbl(d1, d2, _, 0),
                   s1 = 0, d1 = 4, d2 = 4.

In(s1, s2, s3, 4, d2, d3, d) :- In(s1, s2, s3, d1, d2, d3, d),
                              Tbl(s1, s2, s3, 1), Tbl(d1, _, _, 0),
                              d1 = 0.
