非表示:
キーワード:
-
要旨:
Operational semantics provide a simple, high-level and elegant
means of specifying interpreters for programming languages. In
natural semantics, a form of operational semantics, programs
are traditionally represented as first-order tree structures
and reasoned about using natural deduction-like methods.
Hannan and Miller combined these methods with higher-order
representations using $\lambda$Prolog.
In this paper we go one step further and investigate the use
of the logic programming language Elf to represent natural semantics.
Because Elf is based on the LF Logical Framework with dependent
types, it is possible to write programs that reason about their
own partial correctness. We illustrate these techniques by giving
type checking rules and operational semantics for Mini-ML,
a small functional language based on a simply typed $\lambda$-calculus
with polymorphism, constants, products, conditionals, and
recursive function definitions. We also partially internalize
proofs for some metatheoretic properties of Mini-ML,
the most difficult of which is subject reduction.