291 | @{const "op -->"} $ t1 $ t2 => |
291 | @{const "op -->"} $ t1 $ t2 => |
292 @{const "op -->"} $ do_term new_Ts old_Ts (flip_polarity polar) t1 |
292 @{const "op -->"} $ do_term new_Ts old_Ts (flip_polarity polar) t1 |
293 $ do_term new_Ts old_Ts polar t2 |
293 $ do_term new_Ts old_Ts polar t2 |
294 | Const (s as @{const_name The}, T) => do_description_operator s T |
294 | Const (s as @{const_name The}, T) => do_description_operator s T |
295 | Const (s as @{const_name Eps}, T) => do_description_operator s T |
295 | Const (s as @{const_name Eps}, T) => do_description_operator s T |
296 | Const (@{const_name quot_normal}, Type ("fun", [_, T2])) => |
296 | Const (@{const_name quot_normal}, Type ("fun", [T, _])) => |
297 let val T' = box_type hol_ctxt InSel T2 in |
297 let val T' = box_type hol_ctxt InFunLHS T in |
298 Const (@{const_name quot_normal}, T' --> T') |
298 Const (@{const_name quot_normal}, T' --> T') |
299 end |
299 end |
300 | Const (s as @{const_name Tha}, T) => do_description_operator s T |
300 | Const (s as @{const_name Tha}, T) => do_description_operator s T |
301 | Const (x as (s, T)) => |
301 | Const (x as (s, T)) => |
302 Const (s, if s = @{const_name converse} orelse |
302 Const (s, if s = @{const_name converse} orelse |