<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.event-b.org/index.php?action=history&amp;feed=atom&amp;title=Generic_Instantiation_Plug-in_User_Guide</id>
	<title>Generic Instantiation Plug-in User Guide - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.event-b.org/index.php?action=history&amp;feed=atom&amp;title=Generic_Instantiation_Plug-in_User_Guide"/>
	<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;action=history"/>
	<updated>2026-04-30T01:39:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5370&amp;oldid=prev</id>
		<title>imported&gt;Asiehsalehi: /* Refinement Instantiation */</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5370&amp;oldid=prev"/>
		<updated>2013-07-04T15:20:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Refinement Instantiation&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:20, 4 July 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l77&quot;&gt;Line 77:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 77:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Generic Instantiation Plug-in]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:User documentation]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Asiehsalehi</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5369&amp;oldid=prev</id>
		<title>imported&gt;Asiehsalehi: /* Setup */</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5369&amp;oldid=prev"/>
		<updated>2013-01-21T13:28:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Setup&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:28, 21 January 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l13&quot;&gt;Line 13:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## In the menu choose &amp;#039;&amp;#039;Help&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;Install New Software...&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## In the menu choose &amp;#039;&amp;#039;Help&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;Install New Software...&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## In the &amp;#039;&amp;#039;Work with&amp;#039;&amp;#039; dropdown list, choose the location URL: Rodin&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## In the &amp;#039;&amp;#039;Work with&amp;#039;&amp;#039; dropdown list, choose the location URL: Rodin&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## Select the &#039;&#039;Generic Instantiation &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Feature&lt;/del&gt;&#039;&#039; feature under the &#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Utilities&lt;/del&gt;&#039;&#039; category, then click the check box&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## Select the &#039;&#039;Generic Instantiation &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(Soton)&lt;/ins&gt;&#039;&#039; feature under the &#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Composition and Decomposition&lt;/ins&gt;&#039;&#039; category, then click the check box&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## Click &amp;#039;&amp;#039;Next&amp;#039;&amp;#039;, after some time, the &amp;#039;&amp;#039;Install Details&amp;#039;&amp;#039; page appears&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## Click &amp;#039;&amp;#039;Next&amp;#039;&amp;#039;, after some time, the &amp;#039;&amp;#039;Install Details&amp;#039;&amp;#039; page appears&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## Click &amp;#039;&amp;#039;Next&amp;#039;&amp;#039; and accept the license&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## Click &amp;#039;&amp;#039;Next&amp;#039;&amp;#039; and accept the license&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l23&quot;&gt;Line 23:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 23:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Now you are ready to use the Generic Instantiation Feature plug-in.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Now you are ready to use the Generic Instantiation Feature plug-in.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Update ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Update ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Asiehsalehi</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5368&amp;oldid=prev</id>
		<title>imported&gt;Asiehsalehi at 19:36, 17 December 2012</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5368&amp;oldid=prev"/>
		<updated>2012-12-17T19:36:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:36, 17 December 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l75&quot;&gt;Line 75:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 75:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Refinement Instantiation ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Refinement Instantiation ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above example describes generic instantiation applied to individual machines. Although it is already an interesting way of reusing, in a large model it would be more interesting to instantiate a chain of machines, or in other words instantiate a chain of refinement. Considering the below figure, suppose we have a development (problem) containing several refinement levels (&amp;lt;math&amp;gt;P_0&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;). The most concrete model &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; matches a generic model (pattern) &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; that is part of a chain of refinement &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; ;... ;&amp;lt;math&amp;gt;G_j&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;. By applying generic instantiation we instantiate the pattern &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; according to &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;. That instantiation is a refinement of &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; and it is called &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt;. In addition we can extend the instantiation to one of the refinement layers of the pattern and apply it to the problem development. As an outcome we get a further refinement layer for &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; for free (&amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;). The refinement between &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; does not introduce refinement proof obligations since the proof obligations were already discharged in the pattern chain. This follows from the instantiated machines where it is avoided the re-proof of pattern proof obligations. Afterwards &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; can be further refined to &amp;lt;math&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;P_k&lt;/del&gt;&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above example describes generic instantiation applied to individual machines. Although it is already an interesting way of reusing, in a large model it would be more interesting to instantiate a chain of machines, or in other words instantiate a chain of refinement. Considering the below figure, suppose we have a development (problem) containing several refinement levels (&amp;lt;math&amp;gt;P_0&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;). The most concrete model &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; matches a generic model (pattern) &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; that is part of a chain of refinement &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; ;... ;&amp;lt;math&amp;gt;G_j&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;. By applying generic instantiation we instantiate the pattern &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; according to &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;. That instantiation is a refinement of &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; and it is called &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt;. In addition we can extend the instantiation to one of the refinement layers of the pattern and apply it to the problem development. As an outcome we get a further refinement layer for &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; for free (&amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;). The refinement between &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; does not introduce refinement proof obligations since the proof obligations were already discharged in the pattern chain. This follows from the instantiated machines where it is avoided the re-proof of pattern proof obligations. Afterwards &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; can be further refined to &amp;lt;math&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;P_{k+n}&lt;/ins&gt;&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Asiehsalehi</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5367&amp;oldid=prev</id>
		<title>imported&gt;Asiehsalehi at 19:35, 17 December 2012</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5367&amp;oldid=prev"/>
		<updated>2012-12-17T19:35:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:35, 17 December 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l75&quot;&gt;Line 75:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 75:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Refinement Instantiation ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Refinement Instantiation ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above example describes generic instantiation applied to individual machines. Although it is already an interesting way of reusing, in a large model it would be more interesting to instantiate a chain of machines, or in other words instantiate a chain of refinement. Considering the below figure, suppose we have a development (problem) containing several refinement levels (&amp;lt;math&amp;gt;P_0&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;). The most concrete model &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; matches a generic model (pattern) &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; that is part of a chain of refinement &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; ;... ;&amp;lt;math&amp;gt;G_j&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;. By applying generic instantiation we instantiate the pattern &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; according to &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;. That instantiation is a refinement of &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; and it is called &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt;. In addition we can extend the instantiation to one of the refinement layers of the pattern and apply it to the problem development. As an outcome we get a further refinement layer for &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; for free (&amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;). The refinement between &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; does not introduce refinement proof obligations since the proof obligations were already discharged in the pattern chain. This follows from the instantiated machines where it is avoided the re-proof of pattern proof obligations. Afterwards &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; can be further refined to &amp;lt;math&amp;gt;P_k &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;_+ _n&lt;/del&gt;&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above example describes generic instantiation applied to individual machines. Although it is already an interesting way of reusing, in a large model it would be more interesting to instantiate a chain of machines, or in other words instantiate a chain of refinement. Considering the below figure, suppose we have a development (problem) containing several refinement levels (&amp;lt;math&amp;gt;P_0&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;). The most concrete model &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; matches a generic model (pattern) &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; that is part of a chain of refinement &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; ;... ;&amp;lt;math&amp;gt;G_j&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;. By applying generic instantiation we instantiate the pattern &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; according to &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;. That instantiation is a refinement of &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; and it is called &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt;. In addition we can extend the instantiation to one of the refinement layers of the pattern and apply it to the problem development. As an outcome we get a further refinement layer for &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; for free (&amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;). The refinement between &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; does not introduce refinement proof obligations since the proof obligations were already discharged in the pattern chain. This follows from the instantiated machines where it is avoided the re-proof of pattern proof obligations. Afterwards &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; can be further refined to &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Asiehsalehi</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5366&amp;oldid=prev</id>
		<title>imported&gt;Asiehsalehi at 19:35, 17 December 2012</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5366&amp;oldid=prev"/>
		<updated>2012-12-17T19:35:31Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:35, 17 December 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l75&quot;&gt;Line 75:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 75:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Refinement Instantiation ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Refinement Instantiation ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above example describes generic instantiation applied to individual machines. Although it is already an interesting way of reusing, in a large model it would be more interesting to instantiate a chain of machines, or in other words instantiate a chain of refinement. Considering the below figure, suppose we have a development (problem) containing several refinement levels (&amp;lt;math&amp;gt;P_0&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;). The most concrete model &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; matches a generic model (pattern) &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; that is part of a chain of refinement &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; ;... ;&amp;lt;math&amp;gt;G_j&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;. By applying generic instantiation we instantiate the pattern &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; according to &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;. That instantiation is a refinement of &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; and it is called &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt;. In addition we can extend the instantiation to one of the refinement layers of the pattern and apply it to the problem development. As an outcome we get a further refinement layer for &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; for free (&amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;). The refinement between &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; does not introduce refinement proof obligations since the proof obligations were already discharged in the pattern chain. This follows from the instantiated machines where it is avoided the re-proof of pattern proof obligations. Afterwards &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; can be further refined to &amp;lt;math&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;P_k_&lt;/del&gt;+_n&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above example describes generic instantiation applied to individual machines. Although it is already an interesting way of reusing, in a large model it would be more interesting to instantiate a chain of machines, or in other words instantiate a chain of refinement. Considering the below figure, suppose we have a development (problem) containing several refinement levels (&amp;lt;math&amp;gt;P_0&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;). The most concrete model &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; matches a generic model (pattern) &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; that is part of a chain of refinement &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; ;... ;&amp;lt;math&amp;gt;G_j&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;. By applying generic instantiation we instantiate the pattern &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; according to &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;. That instantiation is a refinement of &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; and it is called &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt;. In addition we can extend the instantiation to one of the refinement layers of the pattern and apply it to the problem development. As an outcome we get a further refinement layer for &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; for free (&amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;). The refinement between &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; does not introduce refinement proof obligations since the proof obligations were already discharged in the pattern chain. This follows from the instantiated machines where it is avoided the re-proof of pattern proof obligations. Afterwards &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; can be further refined to &amp;lt;math&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;P_k _&lt;/ins&gt;+ _n&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Asiehsalehi</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5365&amp;oldid=prev</id>
		<title>imported&gt;Asiehsalehi at 19:34, 17 December 2012</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5365&amp;oldid=prev"/>
		<updated>2012-12-17T19:34:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:34, 17 December 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l75&quot;&gt;Line 75:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 75:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Refinement Instantiation ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Refinement Instantiation ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above example describes generic instantiation applied to individual machines. Although it is already an interesting way of reusing, in a large model it would be more interesting to instantiate a chain of machines, or in other words instantiate a chain of refinement. Considering the below figure, suppose we have a development (problem) containing several refinement levels (&amp;lt;math&amp;gt;P_0&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;). The most concrete model &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; matches a generic model (pattern) &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; that is part of a chain of refinement &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; ;... ;&amp;lt;math&amp;gt;G_j&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;. By applying generic instantiation we instantiate the pattern &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; according to &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;. That instantiation is a refinement of &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; and it is called &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt;. In addition we can extend the instantiation to one of the refinement layers of the pattern and apply it to the problem development. As an outcome we get a further refinement layer for &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; for free (&amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;). The refinement between &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; does not introduce refinement proof obligations since the proof obligations were already discharged in the pattern chain. This follows from the instantiated machines where it is avoided the re-proof of pattern proof obligations. Afterwards &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; can be further refined to &amp;lt;math&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;P_(k&lt;/del&gt;+&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;n)&lt;/del&gt;&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above example describes generic instantiation applied to individual machines. Although it is already an interesting way of reusing, in a large model it would be more interesting to instantiate a chain of machines, or in other words instantiate a chain of refinement. Considering the below figure, suppose we have a development (problem) containing several refinement levels (&amp;lt;math&amp;gt;P_0&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;). The most concrete model &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; matches a generic model (pattern) &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; that is part of a chain of refinement &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; ;... ;&amp;lt;math&amp;gt;G_j&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;. By applying generic instantiation we instantiate the pattern &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; according to &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;. That instantiation is a refinement of &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; and it is called &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt;. In addition we can extend the instantiation to one of the refinement layers of the pattern and apply it to the problem development. As an outcome we get a further refinement layer for &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; for free (&amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;). The refinement between &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; does not introduce refinement proof obligations since the proof obligations were already discharged in the pattern chain. This follows from the instantiated machines where it is avoided the re-proof of pattern proof obligations. Afterwards &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; can be further refined to &amp;lt;math&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;P_k_&lt;/ins&gt;+&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;_n&lt;/ins&gt;&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Asiehsalehi</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5364&amp;oldid=prev</id>
		<title>imported&gt;Asiehsalehi at 19:34, 17 December 2012</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5364&amp;oldid=prev"/>
		<updated>2012-12-17T19:34:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:34, 17 December 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l75&quot;&gt;Line 75:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 75:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Refinement Instantiation ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Refinement Instantiation ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above example describes generic instantiation applied to individual machines. Although it is already an interesting way of reusing, in a large model it would be more interesting to instantiate a chain of machines, or in other words instantiate a chain of refinement. Considering the below figure, suppose we have a development (problem) containing several refinement levels (&amp;lt;math&amp;gt;P_0&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;). The most concrete model &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; matches a generic model (pattern) &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; that is part of a chain of refinement &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; ;... ;&amp;lt;math&amp;gt;G_j&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;. By applying generic instantiation we instantiate the pattern &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; according to &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;. That instantiation is a refinement of &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; and it is called &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt;. In addition we can extend the instantiation to one of the refinement layers of the pattern and apply it to the problem development. As an outcome we get a further refinement layer for &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; for free (&amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;). The refinement between &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; does not introduce refinement proof obligations since the proof obligations were already discharged in the pattern chain. This follows from the instantiated machines where it is avoided the re-proof of pattern proof obligations. Afterwards &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; can be further refined to &amp;lt;math&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;P_k&lt;/del&gt;+n&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above example describes generic instantiation applied to individual machines. Although it is already an interesting way of reusing, in a large model it would be more interesting to instantiate a chain of machines, or in other words instantiate a chain of refinement. Considering the below figure, suppose we have a development (problem) containing several refinement levels (&amp;lt;math&amp;gt;P_0&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;). The most concrete model &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; matches a generic model (pattern) &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; that is part of a chain of refinement &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; ;... ;&amp;lt;math&amp;gt;G_j&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;. By applying generic instantiation we instantiate the pattern &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; according to &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;. That instantiation is a refinement of &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; and it is called &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt;. In addition we can extend the instantiation to one of the refinement layers of the pattern and apply it to the problem development. As an outcome we get a further refinement layer for &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; for free (&amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;). The refinement between &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; does not introduce refinement proof obligations since the proof obligations were already discharged in the pattern chain. This follows from the instantiated machines where it is avoided the re-proof of pattern proof obligations. Afterwards &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; can be further refined to &amp;lt;math&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;P_(k&lt;/ins&gt;+n&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/ins&gt;&amp;lt;/math&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Asiehsalehi</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5363&amp;oldid=prev</id>
		<title>imported&gt;Asiehsalehi at 19:34, 17 December 2012</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5363&amp;oldid=prev"/>
		<updated>2012-12-17T19:34:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:34, 17 December 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l75&quot;&gt;Line 75:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 75:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Refinement Instantiation ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Refinement Instantiation ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above example describes generic instantiation applied to individual machines. Although it is already an interesting way of reusing, in a large model it would be more interesting to instantiate a chain of machines, or in other words instantiate a chain of refinement. Considering the below figure, suppose we have a development (problem) containing several refinement levels (&amp;lt;math&amp;gt;P_0&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;). The most concrete model &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; matches a generic model (pattern) &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; that is part of a chain of refinement &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; ;... ;&amp;lt;math&amp;gt;G_j&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;. By applying generic instantiation we instantiate the pattern &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; according to &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;. That instantiation is a refinement of &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; and it is called &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt;. In addition we can extend the instantiation to one of the refinement layers of the pattern and apply it to the problem development. As an outcome we get a further refinement layer for &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; for free (&amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;). The refinement between &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; does not introduce refinement proof obligations since the proof obligations were already discharged in the pattern chain. This follows from the instantiated machines where it is avoided the re-proof of pattern proof obligations. Afterwards &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; can be further refined to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pk&lt;/del&gt;+n.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above example describes generic instantiation applied to individual machines. Although it is already an interesting way of reusing, in a large model it would be more interesting to instantiate a chain of machines, or in other words instantiate a chain of refinement. Considering the below figure, suppose we have a development (problem) containing several refinement levels (&amp;lt;math&amp;gt;P_0&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;). The most concrete model &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; matches a generic model (pattern) &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; that is part of a chain of refinement &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; ;... ;&amp;lt;math&amp;gt;G_j&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;. By applying generic instantiation we instantiate the pattern &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; according to &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;. That instantiation is a refinement of &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; and it is called &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt;. In addition we can extend the instantiation to one of the refinement layers of the pattern and apply it to the problem development. As an outcome we get a further refinement layer for &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; for free (&amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;). The refinement between &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; does not introduce refinement proof obligations since the proof obligations were already discharged in the pattern chain. This follows from the instantiated machines where it is avoided the re-proof of pattern proof obligations. Afterwards &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; can be further refined to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;P_k&lt;/ins&gt;+n&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/math&amp;gt;&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Asiehsalehi</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5362&amp;oldid=prev</id>
		<title>imported&gt;Asiehsalehi at 19:32, 17 December 2012</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5362&amp;oldid=prev"/>
		<updated>2012-12-17T19:32:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:32, 17 December 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l75&quot;&gt;Line 75:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 75:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Refinement Instantiation ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Refinement Instantiation ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above example describes generic instantiation applied to individual machines. Although it is already an interesting way of reusing, in a large model it would be more interesting to instantiate a chain of machines, or in other words instantiate a chain of refinement. Considering the below figure, suppose we have a development (problem) containing several refinement levels (&amp;lt;math&amp;gt;P_0&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;). The most concrete model &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; matches a generic model (pattern) &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; that is part of a chain of refinement &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; ;... ;&amp;lt;math&amp;gt;G_j&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;. By applying generic instantiation we instantiate the pattern &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; according to &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;. That instantiation is a refinement of &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; and it is called &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt;. In addition we can extend the instantiation to one of the refinement layers of the pattern and apply it to the problem development. As an outcome we get a further refinement layer for &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; for free (&amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; and&amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;). The refinement between &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; does not introduce refinement proof obligations since the proof obligations were already discharged in the pattern chain. This follows from the instantiated machines where it is avoided the re-proof of pattern proof obligations. Afterwards &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; can be further refined to Pk+n.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above example describes generic instantiation applied to individual machines. Although it is already an interesting way of reusing, in a large model it would be more interesting to instantiate a chain of machines, or in other words instantiate a chain of refinement. Considering the below figure, suppose we have a development (problem) containing several refinement levels (&amp;lt;math&amp;gt;P_0&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;). The most concrete model &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; matches a generic model (pattern) &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; that is part of a chain of refinement &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; ;... ;&amp;lt;math&amp;gt;G_j&amp;lt;/math&amp;gt; ;... ; &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;. By applying generic instantiation we instantiate the pattern &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; according to &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;. That instantiation is a refinement of &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; and it is called &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt;. In addition we can extend the instantiation to one of the refinement layers of the pattern and apply it to the problem development. As an outcome we get a further refinement layer for &amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; for free (&amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; corresponds to the instantiation of &amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;). The refinement between &amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; does not introduce refinement proof obligations since the proof obligations were already discharged in the pattern chain. This follows from the instantiated machines where it is avoided the re-proof of pattern proof obligations. Afterwards &amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; can be further refined to Pk+n.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Asiehsalehi</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5361&amp;oldid=prev</id>
		<title>imported&gt;Asiehsalehi at 19:22, 17 December 2012</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Generic_Instantiation_Plug-in_User_Guide&amp;diff=5361&amp;oldid=prev"/>
		<updated>2012-12-17T19:22:31Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:22, 17 December 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l75&quot;&gt;Line 75:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 75:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Refinement Instantiation ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Refinement Instantiation ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above example describes generic instantiation applied to individual machines. Although it is already an interesting way of reusing, in a large model it would be more interesting to instantiate a chain of machines, or in other words instantiate a chain of refinement. Considering the below figure, suppose we have a development (problem) containing several refinement levels (&amp;lt;math&amp;gt;P_0&amp;lt;/math&amp;gt;; ...; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pk&lt;/del&gt;). The most concrete model &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pk &lt;/del&gt;matches a generic model (pattern) &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;G0 &lt;/del&gt;that is part of a chain of refinement &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;G0&lt;/del&gt;; ...; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Gj&lt;/del&gt;; ...;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Gm. 10&lt;/del&gt;. By applying generic instantiation we instantiate the pattern &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;G0 &lt;/del&gt;according to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pk&lt;/del&gt;. That instantiation is a refinement of &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pk &lt;/del&gt;and it is called &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;GI0&lt;/del&gt;. In addition we can extend the instantiation to one of the refinement layers of the pattern and apply it to the problem development. As an outcome we get a further refinement layer for &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pk &lt;/del&gt;for free (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;GI0 &lt;/del&gt;corresponds to the instantiation of &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;G0 &lt;/del&gt;and &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;GIn &lt;/del&gt;corresponds to the instantiation of &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Gm&lt;/del&gt;). The refinement between &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;GI0 &lt;/del&gt;and &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;GIn &lt;/del&gt;does not introduce refinement proof obligations since the proof obligations were already discharged in the pattern chain. This follows from the instantiated machines where it is avoided the re-proof of pattern proof obligations. Afterwards &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;GIn &lt;/del&gt;can be further refined to Pk+n.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above example describes generic instantiation applied to individual machines. Although it is already an interesting way of reusing, in a large model it would be more interesting to instantiate a chain of machines, or in other words instantiate a chain of refinement. Considering the below figure, suppose we have a development (problem) containing several refinement levels (&amp;lt;math&amp;gt;P_0&amp;lt;/math&amp;gt; ;... ; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;&lt;/ins&gt;). The most concrete model &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; &lt;/ins&gt;matches a generic model (pattern) &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; &lt;/ins&gt;that is part of a chain of refinement &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; &lt;/ins&gt;;... ;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;G_j&amp;lt;/math&amp;gt; &lt;/ins&gt;;... ; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;&lt;/ins&gt;. By applying generic instantiation we instantiate the pattern &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; &lt;/ins&gt;according to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt;&lt;/ins&gt;. That instantiation is a refinement of &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; &lt;/ins&gt;and it is called &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt;&lt;/ins&gt;. In addition we can extend the instantiation to one of the refinement layers of the pattern and apply it to the problem development. As an outcome we get a further refinement layer for &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;P_k&amp;lt;/math&amp;gt; &lt;/ins&gt;for free (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; &lt;/ins&gt;corresponds to the instantiation of &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;G_0&amp;lt;/math&amp;gt; &lt;/ins&gt;and&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; &lt;/ins&gt;corresponds to the instantiation of &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;G_m&amp;lt;/math&amp;gt;&lt;/ins&gt;). The refinement between &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;GI_0&amp;lt;/math&amp;gt; &lt;/ins&gt;and &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; &lt;/ins&gt;does not introduce refinement proof obligations since the proof obligations were already discharged in the pattern chain. This follows from the instantiated machines where it is avoided the re-proof of pattern proof obligations. Afterwards &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;math&amp;gt;GI_n&amp;lt;/math&amp;gt; &lt;/ins&gt;can be further refined to Pk+n.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:GI_Refinement.jpg|center]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Asiehsalehi</name></author>
	</entry>
</feed>