src/Pure/primitive_defs.ML
changeset 56243 2e10a36b8d46
parent 46218 ecf6375e2abb
child 63038 1fbad761c1ba
equal deleted inserted replaced
56242:d0a9100a5a38 56243:2e10a36b8d46
    35     val (head, args) = Term.strip_comb lhs;
    35     val (head, args) = Term.strip_comb lhs;
    36     val head_tfrees = Term.add_tfrees head [];
    36     val head_tfrees = Term.add_tfrees head [];
    37 
    37 
    38     fun check_arg (Bound _) = true
    38     fun check_arg (Bound _) = true
    39       | check_arg (Free (x, _)) = not (is_fixed x)
    39       | check_arg (Free (x, _)) = not (is_fixed x)
    40       | check_arg (Const ("TYPE", Type ("itself", [TFree _]))) = true
    40       | check_arg (Const ("Pure.type", Type ("itself", [TFree _]))) = true
    41       | check_arg _ = false;
    41       | check_arg _ = false;
    42     fun close_arg (Bound _) t = t
    42     fun close_arg (Bound _) t = t
    43       | close_arg x t = Logic.all x t;
    43       | close_arg x t = Logic.all x t;
    44 
    44 
    45     val lhs_bads = filter_out check_arg args;
    45     val lhs_bads = filter_out check_arg args;