src/HOL/Tools/Predicate_Compile/predicate_compile_compilations.ML
changeset 39648 655307cb8489
parent 37678 0040bafffdef
child 40049 75d9f57123d6
equal deleted inserted replaced
39647:7bf0c7f0f24c 39648:655307cb8489
    45     Const (@{const_name Predicate.Pred}, T --> mk_predT T') $ f    
    45     Const (@{const_name Predicate.Pred}, T --> mk_predT T') $ f    
    46   end;
    46   end;
    47 
    47 
    48 fun mk_Eval (f, x) =
    48 fun mk_Eval (f, x) =
    49   let
    49   let
    50     val T = fastype_of x
    50     val T = dest_predT (fastype_of f)
    51   in
    51   in
    52     Const (@{const_name Predicate.eval}, mk_predT T --> T --> HOLogic.boolT) $ f $ x
    52     Const (@{const_name Predicate.eval}, mk_predT T --> T --> HOLogic.boolT) $ f $ x
    53   end;
    53   end;
    54 
    54 
    55 fun dest_Eval (Const (@{const_name Predicate.eval}, _) $ f $ x) = (f, x)
    55 fun dest_Eval (Const (@{const_name Predicate.eval}, _) $ f $ x) = (f, x)