{aig : Std.Sat.AIG ℕ} →
  {cnf : Std.Sat.CNF aig.CNFVar} →
    {motive : Std.Sat.AIG.toCNF.Cache aig cnf → Sort u} →
      (t : Std.Sat.AIG.toCNF.Cache aig cnf) →
        ((marks : Array Bool) →
            (hmarks : marks.size = aig.decls.size) →
              (inv : Std.Sat.AIG.toCNF.Cache.Inv cnf marks hmarks) →
                motive { marks := marks, hmarks := hmarks, inv := inv }) →
          motive t