src/Pure/pattern.ML
changeset 32738 15bb09ca0378
parent 32035 8e77b6a250d5
child 33037 b22e44496dc2
equal deleted inserted replaced
32737:76fa673eee8b 32738:15bb09ca0378
    12 
    12 
    13 infix aeconv;
    13 infix aeconv;
    14 
    14 
    15 signature PATTERN =
    15 signature PATTERN =
    16 sig
    16 sig
    17   val trace_unify_fail: bool ref
    17   val trace_unify_fail: bool Unsynchronized.ref
    18   val aeconv: term * term -> bool
    18   val aeconv: term * term -> bool
    19   val eta_long: typ list -> term -> term
    19   val eta_long: typ list -> term -> term
    20   val match: theory -> term * term -> Type.tyenv * Envir.tenv -> Type.tyenv * Envir.tenv
    20   val match: theory -> term * term -> Type.tyenv * Envir.tenv -> Type.tyenv * Envir.tenv
    21   val first_order_match: theory -> term * term
    21   val first_order_match: theory -> term * term
    22     -> Type.tyenv * Envir.tenv -> Type.tyenv * Envir.tenv
    22     -> Type.tyenv * Envir.tenv -> Type.tyenv * Envir.tenv
    38 struct
    38 struct
    39 
    39 
    40 exception Unif;
    40 exception Unif;
    41 exception Pattern;
    41 exception Pattern;
    42 
    42 
    43 val trace_unify_fail = ref false;
    43 val trace_unify_fail = Unsynchronized.ref false;
    44 
    44 
    45 fun string_of_term thy env binders t =
    45 fun string_of_term thy env binders t =
    46   Syntax.string_of_term_global thy
    46   Syntax.string_of_term_global thy
    47     (Envir.norm_term env (subst_bounds (map Free binders, t)));
    47     (Envir.norm_term env (subst_bounds (map Free binders, t)));
    48 
    48