@@ -281,67 +281,67 @@ \subsection{Introduction and Generalization}
281
281
equivalent to \rtactic {idtac}.
282
282
In its simplest form, the introduction tactical simply gives names
283
283
to assumptions. For example, if the current goal is
284
- \ecinput {examps/parts/tactics/introduction/1-1.0.ec}{}{}{}{}
284
+ \ecinput {examps/parts/tactics/introduction/1-1.0.ec}
285
285
then running
286
- \ecinput {examps/parts/tactics/introduction/1-1.ec}{}{}{}{}
286
+ \ecinput {examps/parts/tactics/introduction/1-1.ec}
287
287
produces
288
- \ecinput {examps/parts/tactics/introduction/1-1.1.ec}{}{}{}{}
288
+ \ecinput {examps/parts/tactics/introduction/1-1.1.ec}
289
289
Alternatively, we can use the introduction pattern \ec {?}
290
290
to let \EasyCrypt choose the assumption names, using
291
291
\ec {H} as a base for formula assumptions and starting
292
292
from the identifier names given in universal quantifiers:
293
- \ecinput {examps/parts/tactics/introduction/2-1.ec}{}{}{}{}
293
+ \ecinput {examps/parts/tactics/introduction/2-1.ec}
294
294
produces
295
- \ecinput {examps/parts/tactics/introduction/2-1.1.ec}{}{}{}{}
295
+ \ecinput {examps/parts/tactics/introduction/2-1.1.ec}
296
296
297
297
To see how the \ec {->} rewriting pattern works, suppose
298
298
the current goal is
299
- \ecinput {examps/parts/tactics/introduction/4-1.0.ec}{}{}{}{}
299
+ \ecinput {examps/parts/tactics/introduction/4-1.0.ec}
300
300
Then running
301
- \ecinput {examps/parts/tactics/introduction/4-1.ec}{}{}{}{}
301
+ \ecinput {examps/parts/tactics/introduction/4-1.ec}
302
302
produces
303
- \ecinput {examps/parts/tactics/introduction/4-1.1.ec}{}{}{}{}
303
+ \ecinput {examps/parts/tactics/introduction/4-1.1.ec}
304
304
Alternatively, one can introduce the assumption \ec {x = y},
305
305
and then use the \ec {->>} substitution pattern:
306
306
if the current goal is
307
- \ecinput {examps/parts/tactics/introduction/8-1.0.ec}{}{}{}{}
307
+ \ecinput {examps/parts/tactics/introduction/8-1.0.ec}
308
308
then running
309
- \ecinput {examps/parts/tactics/introduction/8-1.ec}{}{}{}{}
309
+ \ecinput {examps/parts/tactics/introduction/8-1.ec}
310
310
produces
311
- \ecinput {examps/parts/tactics/introduction/8-1.1.ec}{}{}{}{}
311
+ \ecinput {examps/parts/tactics/introduction/8-1.1.ec}
312
312
313
313
To see how a view may be applied to a not-yet-introduced formula
314
314
assumption, suppose the current goal is
315
- \ecinput {examps/parts/tactics/introduction/5-1.0.ec}{}{}{}{}
315
+ \ecinput {examps/parts/tactics/introduction/5-1.0.ec}
316
316
Then running
317
- \ecinput {examps/parts/tactics/introduction/5-1.ec}{}{}{}{}
317
+ \ecinput {examps/parts/tactics/introduction/5-1.ec}
318
318
produces
319
- \ecinput {examps/parts/tactics/introduction/5-1.1.ec}{}{}{}{}
319
+ \ecinput {examps/parts/tactics/introduction/5-1.1.ec}
320
320
And then running
321
- \ecinput {examps/parts/tactics/introduction/5-2.ec}{}{}{}{}
321
+ \ecinput {examps/parts/tactics/introduction/5-2.ec}
322
322
on this goal produces
323
- \ecinput {examps/parts/tactics/introduction/5-2.1.ec}{}{}{}{}
323
+ \ecinput {examps/parts/tactics/introduction/5-2.1.ec}
324
324
325
325
Finally, let's see examples of how a disjunction assumption
326
326
may be destructed, either using the \ec {case} tactic followed
327
327
by a case introduction pattern, or by making the
328
328
case introduction pattern do the destruction.
329
329
For the first case, if the current goal is
330
- \ecinput {examps/parts/tactics/introduction/6-1.0.ec}{}{}{}{}
330
+ \ecinput {examps/parts/tactics/introduction/6-1.0.ec}
331
331
then running
332
- \ecinput {examps/parts/tactics/introduction/6-1.ec}{}{}{}{}
332
+ \ecinput {examps/parts/tactics/introduction/6-1.ec}
333
333
produces the two goals
334
- \ecinput {examps/parts/tactics/introduction/6-1.1.ec}{}{}{}{}
334
+ \ecinput {examps/parts/tactics/introduction/6-1.1.ec}
335
335
and
336
- \ecinput {examps/parts/tactics/introduction/6-1.2.ec}{}{}{}{}
336
+ \ecinput {examps/parts/tactics/introduction/6-1.2.ec}
337
337
And for the second case, if the current goal is
338
- \ecinput {examps/parts/tactics/introduction/7-1.0.ec}{}{}{}{}
338
+ \ecinput {examps/parts/tactics/introduction/7-1.0.ec}
339
339
then running
340
- \ecinput {examps/parts/tactics/introduction/7-1.ec}{}{}{}{}
340
+ \ecinput {examps/parts/tactics/introduction/7-1.ec}
341
341
produces the two goals
342
- \ecinput {examps/parts/tactics/introduction/7-1.1.ec}{}{}{}{}
342
+ \ecinput {examps/parts/tactics/introduction/7-1.1.ec}
343
343
and
344
- \ecinput {examps/parts/tactics/introduction/7-1.2.ec}{}{}{}{}
344
+ \ecinput {examps/parts/tactics/introduction/7-1.2.ec}
345
345
Note how we used the clear pattern to discard the assumption
346
346
\ec {X}.
347
347
\end {tsyntax }
@@ -368,10 +368,10 @@ \subsection{Introduction and Generalization}
368
368
generalizing the former.
369
369
370
370
For example, if the current goal is
371
- \ecinput {examps/parts/tactics/generalize/2-1.0.ec}{}{}{}{} then
372
- running \ecinput {examps/parts/tactics/generalize/2-1.ec}{}{}{}{}
371
+ \ecinput {examps/parts/tactics/generalize/2-1.0.ec} then
372
+ running \ecinput {examps/parts/tactics/generalize/2-1.ec}
373
373
produces
374
- \ecinput {examps/parts/tactics/generalize/2-1.1.ec}{}{}{}{} In
374
+ \ecinput {examps/parts/tactics/generalize/2-1.1.ec} In
375
375
this example, one can't generalize \ec {x} without also
376
376
generalizing \ec {eq_xy}.
377
377
@@ -381,14 +381,14 @@ \subsection{Introduction and Generalization}
381
381
universally quantified identifier of the approprate type.
382
382
383
383
For example, if the current goal is
384
- \ecinput {examps/parts/tactics/generalize/1-1.0.ec}{}{}{}{} then
385
- running \ecinput {examps/parts/tactics/generalize/1-1.ec}{}{}{}{}
384
+ \ecinput {examps/parts/tactics/generalize/1-1.0.ec} then
385
+ running \ecinput {examps/parts/tactics/generalize/1-1.ec}
386
386
produces
387
- \ecinput {examps/parts/tactics/generalize/1-1.1.ec}{}{}{}{}
387
+ \ecinput {examps/parts/tactics/generalize/1-1.1.ec}
388
388
Alternatively, running
389
- \ecinput {examps/parts/tactics/generalize/3-1.ec}{}{}{}{}
389
+ \ecinput {examps/parts/tactics/generalize/3-1.ec}
390
390
produces
391
- \ecinput {examps/parts/tactics/generalize/3-1.1.ec}{}{}{}{}
391
+ \ecinput {examps/parts/tactics/generalize/3-1.1.ec}
392
392
\end {itemize }
393
393
\end {tsyntax }
394
394
\end {tactic }
@@ -444,10 +444,10 @@ \subsection{Tacticals}
444
444
\ec {($ \tau _1 $ ; $ \; \tau _2 $ ); $ \; \tau _3 $ }.
445
445
446
446
For example, if the current goal is
447
- \ecinput {examps/parts/tactics/sequence-tactical/1-1.0.ec}{}{}{}{} then
448
- running \ecinput {examps/parts/tactics/sequence-tactical/1-1.ec}{}{}{}{}
447
+ \ecinput {examps/parts/tactics/sequence-tactical/1-1.0.ec} then
448
+ running \ecinput {examps/parts/tactics/sequence-tactical/1-1.ec}
449
449
produces the goals
450
- \ecinput {examps/parts/tactics/sequence-tactical/1-1.1.ec}{}{}{}{}
450
+ \ecinput {examps/parts/tactics/sequence-tactical/1-1.1.ec}
451
451
\end {tsyntax }
452
452
\end {tactic }
453
453
@@ -457,8 +457,8 @@ \subsection{Tacticals}
457
457
Then apply $ \tau '_i$ to $ G_i$ , for all $ i$ .
458
458
459
459
For example, if the current goal is
460
- \ecinput {examps/parts/tactics/sequence-branching-tactical/1-1.0.ec}{}{}{}{} then
461
- running \ecinput {examps/parts/tactics/sequence-branching-tactical/1-1.ec}{}{}{}{}
460
+ \ecinput {examps/parts/tactics/sequence-branching-tactical/1-1.0.ec} then
461
+ running \ecinput {examps/parts/tactics/sequence-branching-tactical/1-1.ec}
462
462
solves the goal.
463
463
\end {tsyntax }
464
464
\end {tactic }
@@ -489,12 +489,12 @@ \subsection{Tacticals}
489
489
\end {tsyntax }
490
490
491
491
For example, if the current goal is
492
- \ecinput {examps/parts/tactics/do-tactical/1-1.0.ec}{}{}{}{} then
493
- running \ecinput {examps/parts/tactics/do-tactical/1-1.ec}{}{}{}{}
492
+ \ecinput {examps/parts/tactics/do-tactical/1-1.0.ec} then
493
+ running \ecinput {examps/parts/tactics/do-tactical/1-1.ec}
494
494
produces the goals
495
- \ecinput {examps/parts/tactics/do-tactical/1-1.1.ec}{}{}{}{}
495
+ \ecinput {examps/parts/tactics/do-tactical/1-1.1.ec}
496
496
and
497
- \ecinput {examps/parts/tactics/do-tactical/1-1.2.ec}{}{}{}{}
497
+ \ecinput {examps/parts/tactics/do-tactical/1-1.2.ec}
498
498
499
499
\paragraph {Variants. }\strut
500
500
@@ -534,12 +534,12 @@ \subsection{Tacticals}
534
534
535
535
\bigskip
536
536
For example, if the current goal is
537
- \ecinput {examps/parts/tactics/sequence-reordering-tactical/1-1.0.ec}{}{}{}{} then
538
- running \ecinput {examps/parts/tactics/sequence-reordering-tactical/1-1.ec}{}{}{}{}
537
+ \ecinput {examps/parts/tactics/sequence-reordering-tactical/1-1.0.ec} then
538
+ running \ecinput {examps/parts/tactics/sequence-reordering-tactical/1-1.ec}
539
539
produces the goals
540
- \ecinput {examps/parts/tactics/sequence-reordering-tactical/1-1.1.ec}{}{}{}{}
540
+ \ecinput {examps/parts/tactics/sequence-reordering-tactical/1-1.1.ec}
541
541
and
542
- \ecinput {examps/parts/tactics/sequence-reordering-tactical/1-1.2.ec}{}{}{}{}
542
+ \ecinput {examps/parts/tactics/sequence-reordering-tactical/1-1.2.ec}
543
543
\end {tsyntax }
544
544
\end {tactic }
545
545
0 commit comments