Experiment the addition of sealed/unsealed attributes #19029
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The PR experiments an implementation of the proposition made in CEP #42 of attributes
sealed
andunsealed
that allows to indicate the opacity of a definition defined non-interactively, and that provides the current role ofQed
/Defined
without having to break the intuitive matching of keywordsTheorem
/Qed
andDefinition
/Defined
.The main changes are:
Declare.Info.t
while it was before passed as a standalone argument or stored in the program obligation state -> a better idea would be to have them in theCInfo.t
actually, since they can be different for different components of a block of definitionsQed
/Defined
time, a check is done to determine if there is an attribute which takes precedence over theQed
/Defined
keyword`;At the current time, there is a warning in case of a
sealed
/Defined
orunsealed
/Qed
mismatch, as well as when the attribute is defined and there is mismatchTheorem
/Defined
orDefinition
/Qed
. But the warning is deactivated because it is too much work to adapt the stdlib to the warning.