diff -r 7f5a4cd08209 -r 608483c2122a src/HOL/MiniML/W.thy --- a/src/HOL/MiniML/W.thy Mon Feb 05 21:27:16 1996 +0100 +++ b/src/HOL/MiniML/W.thy Mon Feb 05 21:29:06 1996 +0100 @@ -13,16 +13,16 @@ (* type inference algorithm W *) consts - W :: [expr, typ list, nat] => result_W + W :: [expr, typ list, nat] => result_W primrec W expr - W_Var "W (Var i) a n = (if i < length a then Ok(id_subst, nth i a, n) - else Fail)" - W_Abs "W (Abs e) a n = ( (s,t,m) := W e ((TVar n)#a) (Suc n); - Ok(s, (s n) -> t, m) )" - W_App "W (App e1 e2) a n = - ( (s1,t1,m1) := W e1 a n; - (s2,t2,m2) := W e2 ($s1 a) m1; - u := mgu ($s2 t1) (t2 -> (TVar m2)); - Ok( $u o $s2 o s1, $u (TVar m2), Suc m2) )" + W_Var "W (Var i) a n = (if i < length a then Ok(id_subst, nth i a, n) + else Fail)" + W_Abs "W (Abs e) a n = ( (s,t,m) := W e ((TVar n)#a) (Suc n); + Ok(s, (s n) -> t, m) )" + W_App "W (App e1 e2) a n = + ( (s1,t1,m1) := W e1 a n; + (s2,t2,m2) := W e2 ($s1 a) m1; + u := mgu ($s2 t1) (t2 -> (TVar m2)); + Ok( $u o $s2 o s1, $u (TVar m2), Suc m2) )" end