Dependable Polygon-Processing Algorithms for Safety-Critical Embedded Systems

Algorithms that process geometric objects become more and more important for many safety-critical embedded systems, e.g. for motion planning or collision detection, where correctness is indispensable. The main challenge to demonstrating correctness is the consistent handling of degenerate cases like collinear line segments. In this paper, we therefore propose the use of an interactive theorem prover to develop dependable geometry algorithms for safety-critical embedded systems. Our solution is based on the use of a three-valued logic to make degenerate cases explicit. Using the theorem prover, we are not only able to prove the correctness of the obtained algorithms, but also to directly derive a software library of provably correct geometry algorithms for safety-critical applications.

[1]  Tobias Schüle,et al.  Maximal causality analysis , 2005, Fifth International Conference on Application of Concurrency to System Design (ACSD'05).

[2]  Klaus Schneider,et al.  Using Three-Valued Logic to Specify and Verify Algorithms of Computational Geometry , 2005, ICFEM.

[3]  A. Sangiovanni-Vincentelli,et al.  Formal analysis of synchronous circuits , 1996 .

[4]  Thomas Ertl,et al.  Computer Graphics - Principles and Practice, 3rd Edition , 2014 .

[5]  Kurt Mehlhorn,et al.  On degeneracy in geometric computations , 1994, SODA '94.

[6]  S-C Chou,et al.  Machine Proofs in Geometry , 1994 .

[7]  Gérard Berry,et al.  The constructive semantics of pure esterel , 1996 .

[8]  Tobias Schüle,et al.  Three-valued logic in bounded model checking , 2005, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2005. MEMOCODE '05..

[9]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[10]  M. Carter Computer graphics: Principles and practice , 1997 .

[11]  Kai Hormann,et al.  The point in polygon problem for arbitrary polygons , 2001, Comput. Geom..

[12]  大野 義夫,et al.  Computer Graphics : Principles and Practice, 2nd edition, J.D. Foley, A.van Dam, S.K. Feiner, J.F. Hughes, Addison-Wesley, 1990 , 1991 .

[13]  Klaus Schneider,et al.  Improving Constructiveness in Code Generators , 2005 .

[14]  M. Shams Asynchronous Circuits , 2005 .

[15]  Sharad Malik,et al.  Analysis of cyclic combinational circuits , 1993, ICCAD '93.

[16]  Herbert Edelsbrunner,et al.  Simulation of simplicity: a technique to cope with degenerate cases in geometric algorithms , 1988, SCG '88.

[17]  Kurt Mehlhorn,et al.  LEDA: a platform for combinatorial and geometric computing , 1997, CACM.

[18]  David Pichardie,et al.  Formalizing Convex Hull Algorithms , 2001, TPHOLs.

[19]  Reinhard Wilhelm,et al.  Cache Behavior Prediction by Abstract Interpretation , 1996, Sci. Comput. Program..

[20]  S. C. Kleene,et al.  Introduction to Metamathematics , 1952 .

[21]  David Aspinall,et al.  Formalising Java's Data Race Free Guarantee , 2007, TPHOLs.

[22]  F. Frances Yao,et al.  Computational Geometry , 1991, Handbook of Theoretical Computer Science, Volume A: Algorithms and Complexity.