equal
deleted
inserted
replaced
23 val insert_typ: typ -> sort OrdList.T -> sort OrdList.T |
23 val insert_typ: typ -> sort OrdList.T -> sort OrdList.T |
24 val insert_typs: typ list -> sort OrdList.T -> sort OrdList.T |
24 val insert_typs: typ list -> sort OrdList.T -> sort OrdList.T |
25 val insert_term: term -> sort OrdList.T -> sort OrdList.T |
25 val insert_term: term -> sort OrdList.T -> sort OrdList.T |
26 val insert_terms: term list -> sort OrdList.T -> sort OrdList.T |
26 val insert_terms: term list -> sort OrdList.T -> sort OrdList.T |
27 type algebra |
27 type algebra |
28 val rep_algebra: algebra -> |
28 val classes_of: algebra -> serial Graph.T |
29 {classes: serial Graph.T, |
29 val arities_of: algebra -> (class * (class * sort list)) list Symtab.table |
30 arities: (class * (class * sort list)) list Symtab.table} |
|
31 val all_classes: algebra -> class list |
30 val all_classes: algebra -> class list |
32 val super_classes: algebra -> class -> class list |
31 val super_classes: algebra -> class -> class list |
33 val class_less: algebra -> class * class -> bool |
32 val class_less: algebra -> class * class -> bool |
34 val class_le: algebra -> class * class -> bool |
33 val class_le: algebra -> class * class -> bool |
35 val sort_eq: algebra -> sort * sort -> bool |
34 val sort_eq: algebra -> sort * sort -> bool |
114 |
113 |
115 datatype algebra = Algebra of |
114 datatype algebra = Algebra of |
116 {classes: serial Graph.T, |
115 {classes: serial Graph.T, |
117 arities: (class * (class * sort list)) list Symtab.table}; |
116 arities: (class * (class * sort list)) list Symtab.table}; |
118 |
117 |
119 fun rep_algebra (Algebra args) = args; |
118 fun classes_of (Algebra {classes, ...}) = classes; |
120 |
119 fun arities_of (Algebra {arities, ...}) = arities; |
121 val classes_of = #classes o rep_algebra; |
|
122 val arities_of = #arities o rep_algebra; |
|
123 |
120 |
124 fun make_algebra (classes, arities) = |
121 fun make_algebra (classes, arities) = |
125 Algebra {classes = classes, arities = arities}; |
122 Algebra {classes = classes, arities = arities}; |
126 |
123 |
127 fun map_classes f (Algebra {classes, arities}) = make_algebra (f classes, arities); |
124 fun map_classes f (Algebra {classes, arities}) = make_algebra (f classes, arities); |