ABSTRACT
We introduce higher-order, multi-parameter, tree transducers (HMTTs, for short), which are kinds of higher-order tree transducers that take input trees and output a (possibly infinite) tree. We study the problem of checking whether the tree generated by a given HMTT conforms to a given output specification, provided that the input trees conform to input specifications (where both input/output specifications are regular tree languages). HMTTs subsume higher-order recursion schemes and ordinary tree transducers, so that their verification has a number of potential applications to verification of functional programs using recursive data structures, including resource usage verification, string analysis, and exact type-checking of XML-processing programs.
We propose a sound but incomplete verification algorithm for the HMTT verification problem: the algorithm reduces the verification problem to a model-checking problem for higher-order recursion schemes extended with finite data domains, and then uses (an extension of)Kobayashi's algorithm for model-checking recursion schemes. While the algorithm is incomplete (indeed, as we show in the paper, the verification problem is undecidable in general), it is sound and complete for a subclass of HMTTs called linear HMTTs . We have applied our HMTT verification algorithm to various program verification problems and obtained promising results.
- K. Aehlig. A finite semantics of simply-typed lambda terms for infinite runs of automata. Logical Methods in Computer Science, 3(3), 2007.Google Scholar
- K. Aehlig, J. G. de Miranda, and C.-H. L. Ong. The monadic second order theory of trees given by arbitrary level-two recursion schemes is decidable. In TLCA 2005, volume 3461 of Lecture Notes in Computer Science, pages 39--54. Springer-Verlag, 2005. Google ScholarDigital Library
- A. S. Christensen, A. Møller, and M. I. Schwartzbach. Precise analysis of string expressions. In Static Analysis, 10th International Symposium, SAS 2003, volume 2694 of Lecture Notes in Computer Science, pages 1--18. Springer-Verlag, 2003. Google ScholarDigital Library
- W. Dam. The io- and oi-hierarchies. Theoretical Computer Science, 20:95--207, 1982.Google ScholarCross Ref
- R. Davies. Practical refinement-type checking. PhD thesis, Pittsburgh, PA, USA, 2005. Google ScholarDigital Library
- J. Engelfriet and S. Maneth. A comparison of pebble tree transducers with macro tree transducers. Acta Inf., 39(9):613--698, 2003.Google ScholarDigital Library
- J. Engelfriet and H. Vogler. Macro tree transducers. J. Comput. Syst. Sci., 31(1):71--146, 1985.Google ScholarCross Ref
- J. Engelfriet and H. Vogler. High level tree transducers and iterated pushdown tree transducers. Acta Inf., 26(1/2):131--192, 1988. Google ScholarDigital Library
- T. Freeman and F. Pfenning. Refinement types forML. In Proceedings of ACMSIGPLAN Conference on Programming Language Design and Implementation, pages 268--277. ACM Press, 1991. Google ScholarDigital Library
- A. Frisch and H. Hosoya. Towards practical typechecking for macro tree transducers. In Database Programming Languages, 11th International Symposium (DBPL 2007), volume 4797 of Lecture Notes in Computer Science, pages 246--260. Springer-Verlag, 2007. Google ScholarDigital Library
- M. Hague, A. Murawski, C.-H. L. Ong, and O. Serre. Collapsible pushdown automata and recursion schemes. In Proceedings of 23rd Annual IEEE Symposium on Logic in Computer Science, pages 452--461. IEEE Computer Society, 2008. Google ScholarDigital Library
- W. G. J. Halfond and A. Orso. Amnesia: analysis and monitoring for neutralizing sql-injection attacks. In ASE '05: Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering, pages 174--183, New York, NY, USA, 2005. ACM. Google ScholarDigital Library
- Z. Hu, H. Iwasaki, M. Takeichi, and A. Takano. Tupling calculation eliminates multiple data traversals. In Proceedings of International Conference on Functional Programming, pages 164--175, 1997. Google ScholarDigital Library
- A. Igarashi and N. Kobayashi. Resource usage analysis. ACM Transactions on Programming Languages and Systems, 27(2):264--313, 2005. Google ScholarDigital Library
- N. Jovanovic, C. Kruegel, and E. Kirda. Precise alias analysis for static detection of web application vulnerabilities. In PLAS '06: Proceedings of the 2006 workshop on Programming languages and analysis for security, pages 27--36, New York, NY, USA, 2006. ACM. Google ScholarDigital Library
- T. Knapik, D. Niwinski, and P. Urzyczyn. Deciding monadic theories of hyperalgebraic trees. In TLCA 2001, volume 2044 of Lecture Notes in Computer Science, pages 253--267. Springer-Verlag, 2001. Google ScholarDigital Library
- T. Knapik, D. Niwinski, and P. Urzyczyn. Higher-order pushdown trees are easy. In FoSSaCS 2002, volume 2303 of Lecture Notes in Computer Science, pages 205--222. Springer-Verlag, 2002. Google ScholarDigital Library
- N. Kobayashi. Model-checking higher-order functions. In Proceedings of PPDP 2009. ACM Press, 2009. Google ScholarDigital Library
- N. Kobayashi. TRECS. http://www.kb.ecei.tohoku.ac.jp/~koba/trecs/, 2009.Google Scholar
- N. Kobayashi. Types and higher-order recursion schemes for verification of higher-order programs. In Proceedings of ACM SIGPLAN/SIGACT Symposium on Principles of Programming Languages, pages 416--428, 2009. Google ScholarDigital Library
- N. Kobayashi and C.-H. L. Ong. Complexity of model checking recursion schemes for fragments of the modal mu-calculus. In Proceedings of ICALP 2009, volume 5556 of Lecture Notes in Computer Science. Springer-Verlag, 2009. Google ScholarDigital Library
- N. Kobayashi and C.-H. L. Ong. A type system equivalent to themodal mu-calculus model checking of higher-order recursion schemes. In Proceedings of LICS 2009, pages 179--188. IEEE Computer Society Press, 2009. Google ScholarDigital Library
- N. Kobayashi, N. Tabuchi, and H. Unno. Higher-order multiparameter tree transducers and recursion schemes for program verification. A longer version, available from http://www.kb.ecei.tohoku.ac.jp/~koba/papers/hmtt.pdf, 2009.Google Scholar
- M. Koganeyama, N. Tabuchi, and T. Tateishi. Reducing unnecessary conservativeness in access rights analysis with string analysis. In APSEC '07: Proceedings of the 14th Asia-Pacific Software Engineering Conference, pages 438--445, Washington, DC, USA, 2007. IEEE Computer Society. Google ScholarDigital Library
- S. Maneth, A. Berlea, T. Perst, and H. Seidl. XML type checking with macro tree transducers. In Proceedings of the Twenty-fourth ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems (PODS 2005), pages 283--294, 2005. Google ScholarDigital Library
- S. Maneth and K. Nakano. XML type checking for macro tree transducers with holes. In Programming Language Technologies for XML (PLAN-X), 2008.Google Scholar
- S. Maneth, T. Perst, and H. Seidl. Exact XML type checking in polynomial time. In ICDT 2007, volume 4353 of Lecture Notes in Computer Science, pages 254--268. Springer-Verlag, 2007. Google ScholarDigital Library
- T. Milo, D. Suciu, and V. Vianu. Typechecking for XML transformers. J. Comput. Syst. Sci., 66(1):66--97, 2003. Google ScholarDigital Library
- Y. Minamide. Static approximation of dynamically generated web pages. In Proceedings of the 14th international conference on World Wide Web (WWW 2005), pages 432--441. ACM Press, 2005. Google ScholarDigital Library
- M. Naik. A type system equivalent to a model checker. Master Thesis, Purdue University.Google Scholar
- M. Naik and J. Palsberg. A type system equivalent to a model checker. In ESOP 2005, volume 3444 of Lecture Notes in Computer Science, pages 374--388. Springer-Verlag, 2005. Google ScholarDigital Library
- C.-H. L. Ong. On model-checking trees generated by higher-order recursion schemes. In LICS 2006, pages 81--90. IEEE Computer Society Press, 2006. Google ScholarDigital Library
- J. Sawin and A. Rountev. Improving static resolution of dynamic class loading in java using dynamically gathered environment information. Automated Software Engg., 16(2):357--381, 2009. Google ScholarDigital Library
- A. Tozawa. XML type checking using high-level tree transducer. In Functional and Logic Programming, 8th International Symposium (FLOPS 2006), volume 3945 of Lecture Notes in Computer Science, pages 81--96. Springer-Verlag, 2006. Google ScholarDigital Library
- R. Turner. An infinite hierarchy of term languages - an approach to mathematical complexity. In Proceedings of ICALP, pages 593--608, 1972.Google Scholar
- P. Wadler. Deforestation: Transforming programs to eliminate trees. Theoretical Computer Science, 73(2):231--248, 1990. Google ScholarDigital Library
- M. Wand. An algebraic formulation of the chomsky hierarchy. In Category Theory Applied to Computation and Control, volume 25 of Lecture Notes in Computer Science, pages 209--213. Springer-Verlag, 1974. Google ScholarDigital Library
- G. Wassermann and Z. Su. Static detection of cross-site scripting vulnerabilities. In ICSE '08: Proceedings of the 30th international conference on Software engineering, pages 171--180, New York, NY, USA, 2008. ACM. Google ScholarDigital Library
Index Terms
- Higher-order multi-parameter tree transducers and recursion schemes for program verification
Recommendations
Types and higher-order recursion schemes for verification of higher-order programs
POPL '09: Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesWe propose a new verification method for temporal properties of higher-order functional programs, which takes advantage of Ong's recent result on the decidability of the model-checking problem for higher-order recursion schemes (HORS's). A program is ...
Higher-order multi-parameter tree transducers and recursion schemes for program verification
POPL '10We introduce higher-order, multi-parameter, tree transducers (HMTTs, for short), which are kinds of higher-order tree transducers that take input trees and output a (possibly infinite) tree. We study the problem of checking whether the tree generated by ...
Types and higher-order recursion schemes for verification of higher-order programs
POPL '09We propose a new verification method for temporal properties of higher-order functional programs, which takes advantage of Ong's recent result on the decidability of the model-checking problem for higher-order recursion schemes (HORS's). A program is ...
Comments