Skip to content

Commit e85232b

Browse files
committed
repair HB/common/database.elpi/mixin-instance-type->mixin-src
1 parent 926c09a commit e85232b

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

HB/common/database.elpi

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -370,14 +370,16 @@ pred mixin-instance-type->mixin-src.aux
370370
i:term, % head of the original application
371371
i:mixinname, % name of mixin
372372
i:term, % instance body
373+
i:list prop, % decl list
373374
i:list prop, % Cond list
374375
o:prop.
375-
mixin-instance-type->mixin-src.aux [] T M I Cond (mixin-src T M I :- Cond).
376-
mixin-instance-type->mixin-src.aux [A|Args] T M I Cond (pi a \ C a) :-
376+
mixin-instance-type->mixin-src.aux [] T M I Decls Cond (mixin-src T M I :- std.do! DeclsCond) :-
377+
std.append Decls Cond DeclsCond.
378+
mixin-instance-type->mixin-src.aux [A|Args] T M I Decls Cond (pi a \ C a) :-
377379
pi a \
378380
sigma Ta\
379381
coq.mk-app T [a] Ta,
380-
mixin-instance-type->mixin-src.aux Args Ta M I [coq.unify-eq A a ok|Cond] (C a).
382+
mixin-instance-type->mixin-src.aux Args Ta M I Decls [coq.unify-eq A a ok|Cond] (C a).
381383

382384

383385
% transforms the type of a mixin instance into a
@@ -386,25 +388,26 @@ pred mixin-instance-type->mixin-src
386388
i:term, % type of the instance Ty
387389
i:mixinname, % name of mixin
388390
i:term, % instance body I of type Ty
391+
i:list prop,
389392
i:list prop, % Cond list
390393
o:prop.
391394

392-
mixin-instance-type->mixin-src (app _ as F) M I Cond C :-
395+
mixin-instance-type->mixin-src (app _ as F) M I Decls Cond C :-
393396
factory? F (triple _ _ Subject),
394397
safe-dest-app Subject Hd Args,
395-
mixin-instance-type->mixin-src.aux Args Hd M I Cond C.
398+
mixin-instance-type->mixin-src.aux Args Hd M I Decls Cond C.
396399

397-
mixin-instance-type->mixin-src (prod N_ _ F) M I Cond (pi a \ C a) :-
400+
mixin-instance-type->mixin-src (prod N_ T F) M I Decls Cond (pi a \ C a) :-
398401
pi a\
399402
sigma Ia \
400403
coq.mk-app I [a] Ia,
401-
mixin-instance-type->mixin-src (F a) M Ia Cond (C a).
404+
mixin-instance-type->mixin-src (F a) M Ia [coq.typecheck a T ok|Decls] Cond (C a).
402405

403406
pred has-mixin-instance->mixin-src i:prop, o:prop.
404407
has-mixin-instance->mixin-src (has-mixin-instance _ M IHd) C :- std.do![
405408
T = global IHd,
406409
coq.env.typeof IHd Ty,
407-
mixin-instance-type->mixin-src Ty M T [] C,
410+
mixin-instance-type->mixin-src Ty M T [] [] C,
408411
].
409412

410413
pred get-canonical-structures i:term, o:list structure.

0 commit comments

Comments
 (0)