expansion in sub-vocabulary
Issue #939
invalid
The IDP3 manual has this to say about modelexpand(theory, structure, vocabulary) : "The third argument (vocabulary) is optional and allows you to specify a subvocabulary containing only the symbols in which you’re intersted." This is useful to write test cases on part of the theory.
It does not seem to work though:
vocabulary V {
p
q
}
theory T : V {
p.
q.
}
vocabulary V2 { // a subvocabulary
p
}
structure S2 : V {
p = true
}
procedure main(){
stdoptions.nbmodels = 0
printmodels((modelexpand(T,S2,V2)))
}
modelexpand(T,S2,V) is correct, but not modelexpand(T,S2,V2). It finds 2 models for p : true and false. But false is not consistent with S2.
Comments (3)
-
-
- changed status to invalid
-
reporter OK. Thanks for the clarification.
- Log in to comment
The reason is that V2 is not a subvocabulary of V. Both of them have an atom named "p", but it is a diferent one. If you want the same, you should put (in V2) extern V::p/0
to include the p from V
See eg http://dtai.cs.kuleuven.be/krr/idp-ide/?src=48e1c2e2c7069569da033b9b33e55c82