equal
deleted
inserted
replaced
23 val indexname_ord: indexname * indexname -> order |
23 val indexname_ord: indexname * indexname -> order |
24 val tvar_ord: (indexname * sort) * (indexname * sort) -> order |
24 val tvar_ord: (indexname * sort) * (indexname * sort) -> order |
25 val var_ord: (indexname * typ) * (indexname * typ) -> order |
25 val var_ord: (indexname * typ) * (indexname * typ) -> order |
26 val term_ord: term * term -> order |
26 val term_ord: term * term -> order |
27 val hd_ord: term * term -> order |
27 val hd_ord: term * term -> order |
28 val termless: term * term -> bool |
|
29 val term_lpo: (term -> int) -> term * term -> order |
28 val term_lpo: (term -> int) -> term * term -> order |
30 val term_cache: (term -> 'a) -> term -> 'a |
29 val term_cache: (term -> 'a) -> term -> 'a |
31 end; |
30 end; |
32 |
31 |
33 structure Term_Ord: TERM_ORD = |
32 structure Term_Ord: TERM_ORD = |
160 and hd_ord (f, g) = |
159 and hd_ord (f, g) = |
161 prod_ord (prod_ord indexname_ord typ_ord) int_ord (dest_hd f, dest_hd g) |
160 prod_ord (prod_ord indexname_ord typ_ord) int_ord (dest_hd f, dest_hd g) |
162 and args_ord (f $ t, g $ u) = |
161 and args_ord (f $ t, g $ u) = |
163 (case args_ord (f, g) of EQUAL => term_ord (t, u) | ord => ord) |
162 (case args_ord (f, g) of EQUAL => term_ord (t, u) | ord => ord) |
164 | args_ord _ = EQUAL; |
163 | args_ord _ = EQUAL; |
165 |
|
166 fun termless tu = (term_ord tu = LESS); |
|
167 |
164 |
168 end; |
165 end; |
169 |
166 |
170 |
167 |
171 (* Lexicographic path order on terms *) |
168 (* Lexicographic path order on terms *) |