199 | group_quant qname vs t = (vs, t) |
199 | group_quant qname vs t = (vs, t) |
200 |
200 |
201 fun dest_trigger (@{term trigger} $ tl $ t) = (HOLogic.dest_list tl, t) |
201 fun dest_trigger (@{term trigger} $ tl $ t) = (HOLogic.dest_list tl, t) |
202 | dest_trigger t = ([], t) |
202 | dest_trigger t = ([], t) |
203 |
203 |
204 fun pat f ps (Const (@{const_name pat}, _) $ p) = SPat (rev (f p :: ps)) |
204 fun pat f ts (Const (@{const_name pat}, _) $ t) = SPat (rev (f t :: ts)) |
205 | pat f ps (Const (@{const_name nopat}, _) $ p) = SNoPat (rev (f p :: ps)) |
205 | pat f ts (Const (@{const_name nopat}, _) $ t) = SNoPat (rev (f t :: ts)) |
206 | pat f ps (Const (@{const_name andpat}, _) $ p $ t) = pat f (f p :: ps) t |
206 | pat f ts (Const (@{const_name andpat}, _) $ p $ t) = pat f (f t :: ts) p |
207 | pat _ _ t = raise TERM ("pat", [t]) |
207 | pat _ _ t = raise TERM ("pat", [t]) |
208 |
208 |
209 fun trans Ts t = |
209 fun trans Ts t = |
210 (case Term.strip_comb t of |
210 (case Term.strip_comb t of |
211 (t1 as Const (qn, qT), [t2 as Abs (n, T, t3)]) => |
211 (t1 as Const (qn, qT), [t2 as Abs (n, T, t3)]) => |