@@ -5,6 +5,7 @@ namespace structure {
55
66% HB.structure Definition S P1 P2 := { T of F1 P1 T & F2 P1 (P2*P2) T }
77% cons p1\ cons p2\ nil t\ [triple f1 [p1] t,triple f2 [p1, {{p1 * p2}}] t]
8+ pred declare i:string, i:term, i:sort.
89pred declare i:string, i:term, i:universe.
910declare Module BSkel Sort :- std.do! [
1011 disable-id-phant BSkel BSkelNoId,
@@ -495,6 +496,7 @@ pred synthesize-fields.body i:list term, i:term, i:list (w-args mixinname), o:in
495496synthesize-fields.body _Params T ML (record "axioms_" {{ Type }} "Class" FS) :-
496497 synthesize-fields T ML FS.
497498
499+ pred mk-record+sort-field i:sort, i:name, i:term, i:(term -> record-decl), o:indt-decl.
498500pred mk-record+sort-field i:universe, i:name, i:term, i:(term -> record-decl), o:indt-decl.
499501mk-record+sort-field Sort _ T F (record RecordName (sort Sort) "Pack" (field _ "sort" T F)) :- !, std.do! [
500502 if (get-option "infer" _) (RecordName = "type_") (RecordName = "type")
@@ -505,6 +507,7 @@ mk-class-field ClassName Params T _ (field [canonical ff] "class" (app [global C
505507 std.append Params [T] Args.
506508
507509% Builds the axioms record and the factories from this class to each mixin
510+ pred declare-class+structure i:mixins, i:sort, o:factoryname, o:structure, o:term, o:term, o:list prop, o:prop.
508511pred declare-class+structure i:mixins, i:universe, o:factoryname, o:structure, o:term, o:term, o:list prop, o:prop.
509512declare-class+structure MLwP Sort
510513 (indt ClassInd) (indt StructureInd) SortProjection ClassProjection AllFactories
0 commit comments