src/Pure/unify.ML
changeset 2193 b7e59795c75b
parent 2178 acb0afbf61a3
child 2753 bcde71e5f371
equal deleted inserted replaced
2192:3bf092b5310b 2193:b7e59795c75b
    83 	      (case Envir.lookup (env,v) of
    83 	      (case Envir.lookup (env,v) of
    84 		  Some u => head_norm (env, u)
    84 		  Some u => head_norm (env, u)
    85 		| None   => raise SAME)
    85 		| None   => raise SAME)
    86 	  | hnorm (Abs(a,T,body)) =  Abs(a, T, hnorm body)
    86 	  | hnorm (Abs(a,T,body)) =  Abs(a, T, hnorm body)
    87 	  | hnorm (Abs(_,_,body) $ t) =
    87 	  | hnorm (Abs(_,_,body) $ t) =
    88 	      head_norm (env, subst_bounds([t], body))
    88 	      head_norm (env, subst_bound (t, body))
    89 	  | hnorm (f $ t) =
    89 	  | hnorm (f $ t) =
    90 	      (case hnorm f of
    90 	      (case hnorm f of
    91 		 Abs(_,_,body) =>
    91 		 Abs(_,_,body) =>
    92 		   head_norm (env, subst_bounds([t], body))
    92 		   head_norm (env, subst_bound (t, body))
    93 	       | nf => nf $ t)
    93 	       | nf => nf $ t)
    94 	  | hnorm _ =  raise SAME
    94 	  | hnorm _ =  raise SAME
    95     in  hnorm t  handle SAME=> t  end
    95     in  hnorm t  handle SAME=> t  end
    96 end;
    96 end;
    97 
    97