equal
deleted
inserted
replaced
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 |