Type-Based Structural Analysis for Modular Systems of Equations

This paper investigates a novel approach to a type system for modular systems of equations; i.e., equation systems constructed by composition of individual equation system fragments. The purpose of the type system is to ensure, to the extent possible, that the composed system is solvable. The central idea is to attribute a structural type to equation system fragments that reflects which variables occur in which equations. In many instances, this allows over- and underdetermined system fragments to be identified separately, without first having to assemble all fragments into a complete system of equations. The setting of the paper is equation-based, non-causal modelling, specifically Functional Hybrid Modelling (FHM). However, the central ideas are not tied to FHM, but should be applicable to equation-based modelling languages in general, like Modelica, as well as to applications featuring modular systems of equations outside the field of modelling and simulation.

[1]  Henrik Nilsson,et al.  Functional reactive programming, continued , 2002, Haskell '02.

[2]  Paul Hudak,et al.  Functional Hybrid Modeling from an Object-Oriented Perspective , 2007, EOOLT.

[3]  Hilding Elmqvist,et al.  DYMOLA - A Structured Model Language for Large Continuous Systems , 1978 .

[4]  John Beidler,et al.  Data Structures and Algorithms , 1996, Wiley Encyclopedia of Computer Science and Engineering.

[5]  Andrew Kennedy,et al.  Dimension Types , 1994, ESOP.

[6]  Peter Fritzson,et al.  Methods for Structural Analysis and Debugging of Modelica Models , 2002 .

[7]  Peter Fritzson,et al.  A Debugging Scheme for Declarative Equation Based Modeling Languages , 2002, PADL.

[8]  Frank Pfenning,et al.  Dependent types in practical programming , 1999, POPL '99.

[9]  Paul Hudak,et al.  Functional Hybrid Modeling , 2003, PADL.

[10]  N. S. Mendelsohn,et al.  Coverings of Bipartite Graphs , 1958, Canadian Journal of Mathematics.

[11]  Frank Pfenning,et al.  Eliminating array bound checking through dependent types , 1998, PLDI.

[12]  Henrik Nilsson,et al.  The Yampa arcade , 2003, Haskell '03.

[13]  Paul Hudak,et al.  Functional reactive programming from first principles , 2000, PLDI '00.

[14]  David Broman,et al.  Determining over- and under-constrained systems of equations using structural constraint delta , 2006, GPCE '06.

[15]  Henrik Nilsson,et al.  Switched-On Yampa Declarative Programming of Modular Synthesizers , 2007 .

[16]  Simon Thompson,et al.  Type theory and functional programming , 1991, International computer science series.

[17]  Paul Hudak,et al.  Arrows, Robots, and Functional Reactive Programming , 2002, Advanced Functional Programming.

[18]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..