Open nano-o opened 3 years ago
There are a couple of ways you could hide axiom r1 in 'this'. You could put isolate 'a' in the implementation (or private) section of 'this':
#lang ivy1.7
relation r1
implementation {
isolate a = {
axiom r1
}
}
isolate b = {
invariant true
} with this
That is, the visibility of sub-isolates is controlled in the same way as the visibility of other objects.
Or, you could could put the axiom in the implementation (or private) section of isolate 'a':
#lang ivy1.7
relation r1
isolate a = {
implementation {
axiom r1
}
}
isolate b = {
invariant true
} with this
Consider this example:
and the output of
ivy_show isolate=b
:Should
axiom r1
appear here? Or would it be better to require an explicitwith a
to bring in this property? Because of the current behavior, it is sometimes awkward to isolate properties and invariants that have quantifier alternations. For invariants, it seems one can useexplicit
as a workaround, but it does not work for properties.