src/HOL/MiniML/I.thy
changeset 1400 5d909faf0e04
parent 1376 92f83b9d17e1
child 1476 608483c2122a
--- a/src/HOL/MiniML/I.thy	Fri Dec 08 13:22:55 1995 +0100
+++ b/src/HOL/MiniML/I.thy	Fri Dec 08 19:48:15 1995 +0100
@@ -8,17 +8,16 @@
 I = W +
 
 consts
-	I :: [expr, type_expr list, nat, subst] => result_W
+	I :: [expr, typ list, nat, subst] => result_W
 
 primrec I expr
         I_Var	"I (Var i) a n s = (if i < length a then Ok(s, nth i a, n)
                                     else Fail)"
-        I_Abs	"I (Abs e) a n s = I e ((TVar n)#a) (Suc n) s   bind
-                                   (%(s,t,m). Ok(s, Fun (TVar n) t, m) )"
+        I_Abs	"I (Abs e) a n s = ( (s,t,m) := I e ((TVar n)#a) (Suc n) s;
+                                     Ok(s, TVar n -> t, m) )"
         I_App	"I (App e1 e2) a n s =
- 		 I e1 a n s   bind
-		 (%(s1,t1,m1). I e2 a m1 s1  bind   
-		 (%(s2,t2,m2). mgu ($s2 t1) (Fun ($s2 t2) (TVar m2)) bind
-		 (%u. Ok($u o s2, TVar m2, Suc m2) ) ))"
-
+ 		   ( (s1,t1,m1) := I e1 a n s;
+		     (s2,t2,m2) := I e2 a m1 s1;
+		     u := mgu ($s2 t1) ($s2 t2 -> TVar m2);
+		     Ok($u o s2, TVar m2, Suc m2) )"
 end