Jonas Barklund

Learn More
We introduce the concept of reeection principle as a knowledge representation paradigm in a computational logic setting. Reeection principles are expressed as certain kinds of logic schemata intended to capture the basic properties of the domain knowledge to be modeled. Reeection is then used to instantiate these schemata to answer speciic queries about the(More)
Programs operating on inductively deened data structures, such as lists, are naturally deened by recur-sive programs, while programs operating onìndexable' data structures, such as arrays, are naturally deened by iterative programs. It has recently been shown how many recursive programs can be transformed or compiled to iterative programs operating on(More)
A theory system is a collection of interdependent theories, some if which stand in a meta/object relationship, forming an arbitrary number of meta-levels. The main thesis of this chapter is that theory systems constitute a suitable formalism for constructing advanced applications in reasoning and software engineering. The Alloy language for deening theory(More)
D We present an application of metaprogramming in logic that, unlike most metaprogramming applications, is not primarily concerned with controlling the execution of logic programs. Metalevel computation is used to define theories from schemata that were either given explicitly or obtained by abstraction from other theories. Our main application is a(More)
We are developing a multilevel metalogic programming language that we call Alloy. It is based on rst-order predicate calculus extended with metalogical constructs. An Alloy program consists of a collection of theories, all in the same language, and a representation relation over these theories. The whole language is self-representable, including names for(More)