equal
deleted
inserted
replaced
3 Author: Lawrence C Paulson, Cambridge University Computer Laboratory |
3 Author: Lawrence C Paulson, Cambridge University Computer Laboratory |
4 Copyright Cambridge University 1992 |
4 Copyright Cambridge University 1992 |
5 |
5 |
6 Abstract syntax operations of the Pure meta-logic. |
6 Abstract syntax operations of the Pure meta-logic. |
7 *) |
7 *) |
8 |
|
9 infix occs; |
|
10 |
8 |
11 signature LOGIC = |
9 signature LOGIC = |
12 sig |
10 sig |
13 val is_all : term -> bool |
11 val is_all : term -> bool |
14 val mk_equals : term * term -> term |
12 val mk_equals : term * term -> term |
177 |
175 |
178 (*** Low-level term operations ***) |
176 (*** Low-level term operations ***) |
179 |
177 |
180 (*Does t occur in u? Or is alpha-convertible to u? |
178 (*Does t occur in u? Or is alpha-convertible to u? |
181 The term t must contain no loose bound variables*) |
179 The term t must contain no loose bound variables*) |
182 fun t occs u = exists_subterm (fn s => t aconv s) u; |
180 fun occs (t, u) = exists_subterm (fn s => t aconv s) u; |
183 |
181 |
184 (*Close up a formula over all free variables by quantification*) |
182 (*Close up a formula over all free variables by quantification*) |
185 fun close_form A = |
183 fun close_form A = |
186 list_all_free (sort_wrt fst (map dest_Free (term_frees A)), A); |
184 list_all_free (sort_wrt fst (map dest_Free (term_frees A)), A); |
187 |
185 |