src/HOL/Tools/Nitpick/nitpick_nut.ML
changeset 47909 5f1afeebafbc
parent 47753 792634c6679e
child 48323 7b5f7ca25d17
equal deleted inserted replaced
47908:25686e1e0024 47909:5f1afeebafbc
   567           else if is_built_in_const thy stds x then
   567           else if is_built_in_const thy stds x then
   568             (* FIXME: find out if this case is necessary *)
   568             (* FIXME: find out if this case is necessary *)
   569             Op1 (Not, bool_T, Any, Op2 (Less, bool_T, Any, sub t2, sub t1))
   569             Op1 (Not, bool_T, Any, Op2 (Less, bool_T, Any, sub t2, sub t1))
   570           else
   570           else
   571             do_apply t0 ts
   571             do_apply t0 ts
   572         | (Const (@{const_name nat_gcd}, T), []) => Cst (Gcd, T, Any)
   572         | (Const (@{const_name Nitpick.nat_gcd}, T), []) => Cst (Gcd, T, Any)
   573         | (Const (@{const_name nat_lcm}, T), []) => Cst (Lcm, T, Any)
   573         | (Const (@{const_name Nitpick.nat_lcm}, T), []) => Cst (Lcm, T, Any)
   574         | (Const (x as (s as @{const_name uminus_class.uminus}, T)), []) =>
   574         | (Const (x as (s as @{const_name uminus_class.uminus}, T)), []) =>
   575           if is_built_in_const thy stds x then
   575           if is_built_in_const thy stds x then
   576             let val num_T = domain_type T in
   576             let val num_T = domain_type T in
   577               Op2 (Apply, num_T --> num_T, Any,
   577               Op2 (Apply, num_T --> num_T, Any,
   578                    Cst (Subtract, num_T --> num_T --> num_T, Any),
   578                    Cst (Subtract, num_T --> num_T --> num_T, Any),
   584         | (Const (@{const_name is_unknown}, _), [t1]) =>
   584         | (Const (@{const_name is_unknown}, _), [t1]) =>
   585           Op1 (IsUnknown, bool_T, Any, sub t1)
   585           Op1 (IsUnknown, bool_T, Any, sub t1)
   586         | (Const (@{const_name safe_The},
   586         | (Const (@{const_name safe_The},
   587                   Type (@{type_name fun}, [_, T2])), [t1]) =>
   587                   Type (@{type_name fun}, [_, T2])), [t1]) =>
   588           Op1 (SafeThe, T2, Any, sub t1)
   588           Op1 (SafeThe, T2, Any, sub t1)
   589         | (Const (@{const_name Frac}, T), []) => Cst (Fracs, T, Any)
   589         | (Const (@{const_name Nitpick.Frac}, T), []) => Cst (Fracs, T, Any)
   590         | (Const (@{const_name norm_frac}, T), []) => Cst (NormFrac, T, Any)
   590         | (Const (@{const_name Nitpick.norm_frac}, T), []) =>
       
   591           Cst (NormFrac, T, Any)
   591         | (Const (@{const_name of_nat}, T as @{typ "nat => int"}), []) =>
   592         | (Const (@{const_name of_nat}, T as @{typ "nat => int"}), []) =>
   592           Cst (NatToInt, T, Any)
   593           Cst (NatToInt, T, Any)
   593         | (Const (@{const_name of_nat},
   594         | (Const (@{const_name of_nat},
   594                   T as @{typ "unsigned_bit word => signed_bit word"}), []) =>
   595                   T as @{typ "unsigned_bit word => signed_bit word"}), []) =>
   595           Cst (NatToInt, T, Any)
   596           Cst (NatToInt, T, Any)