src/Pure/term.ML
changeset 18871 ca48320f6619
parent 18847 5fac129ae936
child 18893 2dbf73278b0e
equal deleted inserted replaced
18870:020e242c02a0 18871:ca48320f6619
   893         | _ => raise SAME);
   893         | _ => raise SAME);
   894   in abs 0 body handle SAME => body end;
   894   in abs 0 body handle SAME => body end;
   895 
   895 
   896 fun lambda (v as Free (x, T)) t = Abs (x, T, abstract_over (v, t))
   896 fun lambda (v as Free (x, T)) t = Abs (x, T, abstract_over (v, t))
   897   | lambda (v as Var ((x, _), T)) t = Abs (x, T, abstract_over (v, t))
   897   | lambda (v as Var ((x, _), T)) t = Abs (x, T, abstract_over (v, t))
       
   898   | lambda (v as Const ("TYPE", T)) t = Abs ("uu", T, abstract_over (v, t))
   898   | lambda v t = raise TERM ("lambda", [v, t]);
   899   | lambda v t = raise TERM ("lambda", [v, t]);
   899 
   900 
   900 (*Form an abstraction over a free variable.*)
   901 (*Form an abstraction over a free variable.*)
   901 fun absfree (a,T,body) = Abs(a, T, abstract_over (Free(a,T), body));
   902 fun absfree (a,T,body) = Abs(a, T, abstract_over (Free(a,T), body));
   902 fun absdummy (T, body) = Abs ("uu", T, body);
   903 fun absdummy (T, body) = Abs ("uu", T, body);