520 | (Const (@{const_name "op ="}, T), [t1, t2]) => sub_equals T t1 t2 |
520 | (Const (@{const_name "op ="}, T), [t1, t2]) => sub_equals T t1 t2 |
521 | (Const (@{const_name "op &"}, _), [t1, t2]) => |
521 | (Const (@{const_name "op &"}, _), [t1, t2]) => |
522 Op2 (And, bool_T, Any, sub' t1, sub' t2) |
522 Op2 (And, bool_T, Any, sub' t1, sub' t2) |
523 | (Const (@{const_name "op |"}, _), [t1, t2]) => |
523 | (Const (@{const_name "op |"}, _), [t1, t2]) => |
524 Op2 (Or, bool_T, Any, sub t1, sub t2) |
524 Op2 (Or, bool_T, Any, sub t1, sub t2) |
525 | (Const (@{const_name "op -->"}, _), [t1, t2]) => |
525 | (Const (@{const_name HOL.implies}, _), [t1, t2]) => |
526 Op2 (Or, bool_T, Any, Op1 (Not, bool_T, Any, sub t1), sub' t2) |
526 Op2 (Or, bool_T, Any, Op1 (Not, bool_T, Any, sub t1), sub' t2) |
527 | (Const (@{const_name If}, T), [t1, t2, t3]) => |
527 | (Const (@{const_name If}, T), [t1, t2, t3]) => |
528 Op3 (If, nth_range_type 3 T, Any, sub t1, sub t2, sub t3) |
528 Op3 (If, nth_range_type 3 T, Any, sub t1, sub t2, sub t3) |
529 | (Const (@{const_name Let}, T), [t1, Abs (s, T', t2)]) => |
529 | (Const (@{const_name Let}, T), [t1, Abs (s, T', t2)]) => |
530 Op3 (Let, nth_range_type 2 T, Any, BoundName (length Ts, T', Any, s), |
530 Op3 (Let, nth_range_type 2 T, Any, BoundName (length Ts, T', Any, s), |