Difference between revisions of "Generic Instantiation"

From Event-B
Jump to navigationJump to search
imported>Son
imported>Son
Line 4: Line 4:
 
== Issues: Instantiation of Carrier Sets ==
 
== Issues: Instantiation of Carrier Sets ==
  
Currently, the proposal mentions that the carrier sets can be instantiated to any set expressions (which contains existing carrier sets and constants).  Beside the declared axioms in the development to be extended there are two ''hidden'' axioms about a carrier set <code>S<code>
+
Currently, the proposal mentions that the carrier sets can be instantiated to any set expressions (which contains existing carrier sets and constants).  Beside the declared axioms in the development to be extended there are two ''hidden'' axioms about a carrier set <code>S</code>
  
<math>
+
<math> S \neq \emptyset</math>
  S \neq \emptyset
 
</math>
 
  
 
<math>\forall x \qdot x \in S</math>
 
<math>\forall x \qdot x \in S</math>

Revision as of 16:25, 26 March 2010

The initial proposal from Southampton is as follows. File:Proposal generic instantiation rodin.pdf.

Issues: Instantiation of Carrier Sets

Currently, the proposal mentions that the carrier sets can be instantiated to any set expressions (which contains existing carrier sets and constants). Beside the declared axioms in the development to be extended there are two hidden axioms about a carrier set S

  S \neq \emptyset

\forall x \qdot x \in S

Both these axioms can be generated as theorems in the instantiating context which need to be proved.

However, the second theorem can be proved if S is instantiated to another carrier set in the instantiating context.

This could be a limitation of generic instantiation (Son: Is this a real limitation? To be discussed) and may restrict the applicability of the approach. One should allow carrier sets to be instantiated to some set expressions which are not necessary carrier sets themselves.

The issue, here is that this will definitely introduce unsoundness into the instantiation process. An example is formula which are no longer well-defined, and the meaning operator such id or prj1, prj2 has been changed (Son: Maybe some examples are needed).