diff -r e74f694ca1da -r c7a8f374339b src/HOL/MiniML/MiniML.thy --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/HOL/MiniML/MiniML.thy Wed Oct 25 09:46:46 1995 +0100 @@ -0,0 +1,32 @@ +(* Title: HOL/MiniML/MiniML.thy + ID: $Id$ + Author: Dieter Nazareth and Tobias Nipkow + Copyright 1995 TU Muenchen + +Mini_ML with type inference rules. +*) + +MiniML = Type + + +(* expressions *) +datatype + expr = Var nat | Abs expr | App expr expr + +(* type inference rules *) +consts + has_type :: "(type_expr list * expr * type_expr)set" +syntax + "@has_type" :: "[type_expr list, expr, type_expr] => bool" + ("((_) |-/ (_) :: (_))" 60) +translations + "a |- e :: t" == "(a,e,t):has_type" + +inductive "has_type" +intrs + VarI "[| n < length a |] ==> a |- Var n :: nth n a" + AbsI "[| t1#a |- e :: t2 |] ==> a |- Abs e :: Fun t1 t2" + AppI "[| a |- e1 :: Fun t2 t1; a |- e2 :: t2 |] + ==> a |- App e1 e2 :: t1" + +end +