2 Model validation and verification
If the programming language corresponds to a logical formalism, then any program viewed as a set of statements or sentences which runs in that language will necessarily be sound and consistent relative to that logical formalism. One such language, implemented precisely to capture this feature of programs, is SDML [1] which corresponds to a fragment of strongly-grounded autoepistemic logic [2].
Programming languages generally make it easier to do some things than others. Fortran is optimized for numerical calculation; LISP for functional programming, PROLOG for backward-chaining deduction, and so on. Numerical calculations, functional programming and backward chaining can all be programmed in any of these languages though, as stated, there is a clear correspondence between the ease of programming in any of these styles and the language used.
The immediate advantage of programming in a language which corresponds to a logical formalism is that there are no hidden assumptions in the form of unstated axioms or rules of inference. In SDML, and therefore in the models reported below, each agent is defined on a rulebase and database for each period of time. Every rule in the rulebases and every clause asserted to the databases is sound and consistent relative to strongly grounded autoepistemic logic. This is not to imply that agents are individually represented as a logical formalism as in, for example, BDI agent-based models - only that the whole model is sound and consistent relative to the formalism to which SDML corresponds.
Generated with CERN WebMaker