Blame view

circus/help/en_uk/development/development.html 7.85 KB
8d0dc533f   Madiel de Souza Conserva Filho   first
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
  <html>
  <head>
      <title>CRefine</title>
      <link rel="stylesheet" type="text/css" href="../../style.css" />
  
  </head>
  
  <body>
  
  <table>
      <tr height="10">
        <td>
        </td>
      </tr>
      <tr>
        <td class="tituloAzul">
          Development
        </td>
      </tr>
      <tr>
        <td class="grande">
                 <div align="justify">
                 After loading the original specification, we start the development stage.
                 So, we start from the abstract specification, which is generally centralised,
                 and using successive refinement law applications, we reach the concrete specification,
                 which is generally distributed.
                 <br>
  
                 <h5>Applying Refinement Laws</h5>
                 In order to apply a refinement law, we must select a specific term. This selection is
                 realised on the lines of the <a href="../gui/development.html" target="body">
                 development window</a>; hold the CTRL key and click on the first and last line of the term
                 in order to select multiple lines.
                  <br>
                  <br>
                  <img border = "0" src="../images/selection.jpg" align="center">
                  <br>
                  <br>
  
                  Once you have selected a term, the tool allows us to check, using a pop-up menu, which laws can
                  be applied to the selected term. Using the right button, click on the selected term to visualise the pop-up menu.
                  If there are any refinement law that can be applied to the selected term, the names of these laws will be displayed.
  
                  <br>
                  Go to "Apply Law" on the menu and select the desired law in the pop-up menu if you wish to apply the law.
                  <br>
                  <br>
                  <img border = "0" src="../images/selectionlaw.jpg" align="center">
                  <br>
                  <br>
  
                  We can also selected a law to apply using the text field in the right-hand side
                  of the toolbar in the main window. For that, click, using the left button, on it.
  
                  <br>
                  <br>
                  <img border = "0" src="../images/selectionlaw2.jpg" align="center">
                  <br>
                  <br>
  
                  After clicking on it, a pop-up menu of laws will be displayed. This menu classifies
                  the laws; this facilitates their selection, given the large number of existent laws.
  
                  <br>
                  <br>
                  <img border = "0" src="../images/selectionlaw3.jpg" align="center">
                  <br>
                  <br>
  
                  After selecting the law, the text field will store the law name. If the law is applicable to
                  the selected term, the button <img border =
                  "0" src="../../../images/generate.gif" align="center">
                  will be enabled. Hence, the law may be applied.
  
                  <br>
                  <br>
                  <img border = "0" src="../images/butaoapply.jpg" align="center">
                  <br>
                  <br>
  
                  The law application can be done either by clicking on the apply law button or by choosing
                  the apply law option in the pop-up menu that can be activated from the text field. In order to visualise
                  this pop-up menu, we must click, using the right button, on the text field. If the selected term pattern matches with
                  the law, the lines of the term will be highlighted and the apply law option will be enabled. This pop-up menu has also
                  a see <a href="../utils/law-details.html" target="body">Law details</a> option.
  
                  <br>
                  <br>
                  <img border = "0" src="../images/applyLaw.jpg" align="center">
                  <br>
                  <br>
  
                  Some laws are parametrised and need that some arguments are given to them before their application.
                  For each argument, a small window will be displayed and can be used to input the right argument. Initially,
                  this window is set to receive arguments in the LaTeX format.
  
                  <br>
                  <br>
                  <img border = "0" src="../images/param.jpg" align="center">
                  <br>
                  <br>
  
                  However, the argument can also be given in Unicode format, the user only need to set
                  this option using the Combo box in the parameter window. The insertion of symbols in Unicode
                  format can be done using the <a href=
                  "../utils/virtual-keyboard.html" target="body"> Virtual Keyboard</a>.
  
                  <br>
  
                  After giving the arguments, the law application takes place. In this moment, the Development
                  and <a href=
                  "../gui/code.html" target="body"> Code </a> window are updated. The
                  <a href="../gui/proofobligation.html" target="body">Proof Obligation</a> window may also be updated
                  if the law application generates any new one. The development windows is updated with
                  a new line that contains the name of the law that was applied and the type of refinement (simulation, refinement, or equivalence), and the resulting term.
                  By selecting the line that contains the law name, and starting the pop-up menu, we may
                  see the <a href="../utils/law-details.html" target="body">
                  Law Details</a>.
  
                  <br>
                  <br>
                  <img border = "0" src="../images/lawapply.jpg" align="center">
                  <br>
                  <br>
  
                  <br>
                  <h5>Collecting Code</h5>
  
                  Eventually, the application of laws to terms whose sons have already been modified, requires
                  the exhibition of a new instance of the whole term. This is called Term Collection. This collection is
                  based on two kinds of terms: Actions and Processes.
  
                  <br>
  
                  In order to start a term collection, we first must select the type of term we want to collect: action or process.
                  For that, we may use the combo box at the toolbar in section Collect.
  
                  <br>
                  <br>
                  <img border = "0" src="../images/optionsCollect.jpg" align="center">
                  <br>
                  <br>
  
                  After selecting the type of term, the second combo box will be updated to contain the names of the terms
                  that can be collected that are of the selected type. The simple selection of their names will trigger the
                  term's collection.
  
                  <br>
                  <br>
                  <img border = "0" src="../images/collectTerm.jpg" align="center">
                  <br>
                  <br>
  
                  In this case, only the development window is updated. It will indicated that a collection has taken place and, of course,
                  the collected term will also be shown.
                  <br>
                  <br>
                  <img border = "0" src="../images/collectedTermo.jpg" align="center">
                  <br>
                  <br>
  
                  Another way to make the term collection is using the pop-up menu in the development window. The "Collect Code" option of this
                  pop-up menu give two options (one for each term type): Action and Process. From these option, we can
                  select the desired term for collection.
                  <br>
                  <br>
                  <img border = "0" src="../images/collectTerm2.jpg" align="center">
                  <br>
                  <br>
  
        </td>
      </tr>
  </table>
  
  
  </body>
  
  </html>