func (t *T) SetMaxDepth(d int) {
	t.maxDepth = d
}
SetMaxDepth sets the maximum depth of subsequent bmc runs.
package bmc
import (
	"log"
	"time"
	"github.com/go-air/gini"
	"github.com/go-air/gini/logic"
	"github.com/go-air/gini/z"
	"github.com/go-air/reach"
)
type bmcBad struct {
	*reach.Result
	Timed     bool
	timeSpent time.Duration
}
func (b *bmcBad) remaining() time.Duration {
	return b.Dur - b.timeSpent
}
type T struct {
	sat  *gini.Gini
	roll *logic.Roll
	bads map[z.Lit]*bmcBad
	deadLine time.Time
	maxDepth int
	trace    bool
}
func New(s *logic.S, bads ...z.Lit) *T {
	if len(bads) == 0 {
		panic("cannot do bmc without bad states!\n")
	}
	res := &T{sat: gini.NewVc(s.Len()*11, s.Len()*3*11), roll: logic.NewRoll(s)}
	res.bads = make(map[z.Lit]*bmcBad, len(bads))
	for _, m := range bads {
		res.bads[m] = &bmcBad{Result: &reach.Result{M: m}}
	}
	res.maxDepth = 1 << 30
	res.trace = true
	return res
}