29 \begin{isamarkuptext}% |
29 \begin{isamarkuptext}% |
30 \begin{matharray}{rcl} |
30 \begin{matharray}{rcl} |
31 \indexdef{HOL}{command}{typedef}\hypertarget{command.HOL.typedef}{\hyperlink{command.HOL.typedef}{\mbox{\isa{\isacommand{typedef}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ proof{\isaliteral{28}{\isacharparenleft}}prove{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequote}}} \\ |
31 \indexdef{HOL}{command}{typedef}\hypertarget{command.HOL.typedef}{\hyperlink{command.HOL.typedef}{\mbox{\isa{\isacommand{typedef}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ proof{\isaliteral{28}{\isacharparenleft}}prove{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequote}}} \\ |
32 \end{matharray} |
32 \end{matharray} |
33 |
33 |
34 \begin{rail} |
34 \begin{railoutput} |
35 'typedef' altname? abstype '=' repset |
35 \rail@begin{2}{\isa{}} |
36 ; |
36 \rail@term{\hyperlink{command.HOL.typedef}{\mbox{\isa{\isacommand{typedef}}}}}[] |
37 |
37 \rail@bar |
38 altname: '(' (name | 'open' | 'open' name) ')' |
38 \rail@nextbar{1} |
39 ; |
39 \rail@nont{\isa{altname}}[] |
40 abstype: typespecsorts mixfix? |
40 \rail@endbar |
41 ; |
41 \rail@nont{\isa{abstype}}[] |
42 repset: term ('morphisms' name name)? |
42 \rail@term{\isa{{\isaliteral{3D}{\isacharequal}}}}[] |
43 ; |
43 \rail@nont{\isa{repset}}[] |
44 \end{rail} |
44 \rail@end |
|
45 \rail@begin{3}{\isa{altname}} |
|
46 \rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[] |
|
47 \rail@bar |
|
48 \rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[] |
|
49 \rail@nextbar{1} |
|
50 \rail@term{\isa{\isakeyword{open}}}[] |
|
51 \rail@nextbar{2} |
|
52 \rail@term{\isa{\isakeyword{open}}}[] |
|
53 \rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[] |
|
54 \rail@endbar |
|
55 \rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[] |
|
56 \rail@end |
|
57 \rail@begin{2}{\isa{abstype}} |
|
58 \rail@nont{\hyperlink{syntax.typespecsorts}{\mbox{\isa{typespecsorts}}}}[] |
|
59 \rail@bar |
|
60 \rail@nextbar{1} |
|
61 \rail@nont{\hyperlink{syntax.mixfix}{\mbox{\isa{mixfix}}}}[] |
|
62 \rail@endbar |
|
63 \rail@end |
|
64 \rail@begin{2}{\isa{repset}} |
|
65 \rail@nont{\hyperlink{syntax.term}{\mbox{\isa{term}}}}[] |
|
66 \rail@bar |
|
67 \rail@nextbar{1} |
|
68 \rail@term{\isa{\isakeyword{morphisms}}}[] |
|
69 \rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[] |
|
70 \rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[] |
|
71 \rail@endbar |
|
72 \rail@end |
|
73 \end{railoutput} |
|
74 |
45 |
75 |
46 \begin{description} |
76 \begin{description} |
47 |
77 |
48 \item \hyperlink{command.HOL.typedef}{\mbox{\isa{\isacommand{typedef}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{28}{\isacharparenleft}}{\isaliteral{5C3C616C7068613E}{\isasymalpha}}\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}{\isaliteral{2C}{\isacharcomma}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{2C}{\isacharcomma}}\ {\isaliteral{5C3C616C7068613E}{\isasymalpha}}\isaliteral{5C3C5E7375623E}{}\isactrlsub n{\isaliteral{29}{\isacharparenright}}\ t\ {\isaliteral{3D}{\isacharequal}}\ A{\isaliteral{22}{\isachardoublequote}}} |
78 \item \hyperlink{command.HOL.typedef}{\mbox{\isa{\isacommand{typedef}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{28}{\isacharparenleft}}{\isaliteral{5C3C616C7068613E}{\isasymalpha}}\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}{\isaliteral{2C}{\isacharcomma}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{2C}{\isacharcomma}}\ {\isaliteral{5C3C616C7068613E}{\isasymalpha}}\isaliteral{5C3C5E7375623E}{}\isactrlsub n{\isaliteral{29}{\isacharparenright}}\ t\ {\isaliteral{3D}{\isacharequal}}\ A{\isaliteral{22}{\isachardoublequote}}} |
49 axiomatizes a Gordon/HOL-style type definition in the background |
79 axiomatizes a Gordon/HOL-style type definition in the background |
356 \begin{matharray}{rcl} |
407 \begin{matharray}{rcl} |
357 \indexdef{HOL}{command}{datatype}\hypertarget{command.HOL.datatype}{\hyperlink{command.HOL.datatype}{\mbox{\isa{\isacommand{datatype}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} \\ |
408 \indexdef{HOL}{command}{datatype}\hypertarget{command.HOL.datatype}{\hyperlink{command.HOL.datatype}{\mbox{\isa{\isacommand{datatype}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} \\ |
358 \indexdef{HOL}{command}{rep\_datatype}\hypertarget{command.HOL.rep-datatype}{\hyperlink{command.HOL.rep-datatype}{\mbox{\isa{\isacommand{rep{\isaliteral{5F}{\isacharunderscore}}datatype}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ proof{\isaliteral{28}{\isacharparenleft}}prove{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequote}}} \\ |
409 \indexdef{HOL}{command}{rep\_datatype}\hypertarget{command.HOL.rep-datatype}{\hyperlink{command.HOL.rep-datatype}{\mbox{\isa{\isacommand{rep{\isaliteral{5F}{\isacharunderscore}}datatype}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ proof{\isaliteral{28}{\isacharparenleft}}prove{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequote}}} \\ |
359 \end{matharray} |
410 \end{matharray} |
360 |
411 |
361 \begin{rail} |
412 \begin{railoutput} |
362 'datatype' (dtspec + 'and') |
413 \rail@begin{2}{\isa{}} |
363 ; |
414 \rail@term{\hyperlink{command.HOL.datatype}{\mbox{\isa{\isacommand{datatype}}}}}[] |
364 'rep_datatype' ('(' (name +) ')')? (term +) |
415 \rail@plus |
365 ; |
416 \rail@nont{\isa{dtspec}}[] |
366 |
417 \rail@nextplus{1} |
367 dtspec: parname? typespec mixfix? '=' (cons + '|') |
418 \rail@cterm{\isa{\isakeyword{and}}}[] |
368 ; |
419 \rail@endplus |
369 cons: name ( type * ) mixfix? |
420 \rail@end |
370 \end{rail} |
421 \rail@begin{3}{\isa{}} |
|
422 \rail@term{\hyperlink{command.HOL.rep-datatype}{\mbox{\isa{\isacommand{rep{\isaliteral{5F}{\isacharunderscore}}datatype}}}}}[] |
|
423 \rail@bar |
|
424 \rail@nextbar{1} |
|
425 \rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[] |
|
426 \rail@plus |
|
427 \rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[] |
|
428 \rail@nextplus{2} |
|
429 \rail@endplus |
|
430 \rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[] |
|
431 \rail@endbar |
|
432 \rail@plus |
|
433 \rail@nont{\hyperlink{syntax.term}{\mbox{\isa{term}}}}[] |
|
434 \rail@nextplus{1} |
|
435 \rail@endplus |
|
436 \rail@end |
|
437 \rail@begin{2}{\isa{dtspec}} |
|
438 \rail@bar |
|
439 \rail@nextbar{1} |
|
440 \rail@nont{\hyperlink{syntax.parname}{\mbox{\isa{parname}}}}[] |
|
441 \rail@endbar |
|
442 \rail@nont{\hyperlink{syntax.typespec}{\mbox{\isa{typespec}}}}[] |
|
443 \rail@bar |
|
444 \rail@nextbar{1} |
|
445 \rail@nont{\hyperlink{syntax.mixfix}{\mbox{\isa{mixfix}}}}[] |
|
446 \rail@endbar |
|
447 \rail@term{\isa{{\isaliteral{3D}{\isacharequal}}}}[] |
|
448 \rail@plus |
|
449 \rail@nont{\isa{cons}}[] |
|
450 \rail@nextplus{1} |
|
451 \rail@cterm{\isa{{\isaliteral{7C}{\isacharbar}}}}[] |
|
452 \rail@endplus |
|
453 \rail@end |
|
454 \rail@begin{2}{\isa{cons}} |
|
455 \rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[] |
|
456 \rail@plus |
|
457 \rail@nextplus{1} |
|
458 \rail@cnont{\hyperlink{syntax.type}{\mbox{\isa{type}}}}[] |
|
459 \rail@endplus |
|
460 \rail@bar |
|
461 \rail@nextbar{1} |
|
462 \rail@nont{\hyperlink{syntax.mixfix}{\mbox{\isa{mixfix}}}}[] |
|
463 \rail@endbar |
|
464 \rail@end |
|
465 \end{railoutput} |
|
466 |
371 |
467 |
372 \begin{description} |
468 \begin{description} |
373 |
469 |
374 \item \hyperlink{command.HOL.datatype}{\mbox{\isa{\isacommand{datatype}}}} defines inductive datatypes in |
470 \item \hyperlink{command.HOL.datatype}{\mbox{\isa{\isacommand{datatype}}}} defines inductive datatypes in |
375 HOL. |
471 HOL. |
445 \indexdef{HOL}{command}{fun}\hypertarget{command.HOL.fun}{\hyperlink{command.HOL.fun}{\mbox{\isa{\isacommand{fun}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ local{\isaliteral{5F}{\isacharunderscore}}theory{\isaliteral{22}{\isachardoublequote}}} \\ |
549 \indexdef{HOL}{command}{fun}\hypertarget{command.HOL.fun}{\hyperlink{command.HOL.fun}{\mbox{\isa{\isacommand{fun}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ local{\isaliteral{5F}{\isacharunderscore}}theory{\isaliteral{22}{\isachardoublequote}}} \\ |
446 \indexdef{HOL}{command}{function}\hypertarget{command.HOL.function}{\hyperlink{command.HOL.function}{\mbox{\isa{\isacommand{function}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ proof{\isaliteral{28}{\isacharparenleft}}prove{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequote}}} \\ |
550 \indexdef{HOL}{command}{function}\hypertarget{command.HOL.function}{\hyperlink{command.HOL.function}{\mbox{\isa{\isacommand{function}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ proof{\isaliteral{28}{\isacharparenleft}}prove{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequote}}} \\ |
447 \indexdef{HOL}{command}{termination}\hypertarget{command.HOL.termination}{\hyperlink{command.HOL.termination}{\mbox{\isa{\isacommand{termination}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ proof{\isaliteral{28}{\isacharparenleft}}prove{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequote}}} \\ |
551 \indexdef{HOL}{command}{termination}\hypertarget{command.HOL.termination}{\hyperlink{command.HOL.termination}{\mbox{\isa{\isacommand{termination}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ proof{\isaliteral{28}{\isacharparenleft}}prove{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequote}}} \\ |
448 \end{matharray} |
552 \end{matharray} |
449 |
553 |
450 \begin{rail} |
554 \begin{railoutput} |
451 'primrec' target? fixes 'where' equations |
555 \rail@begin{2}{\isa{}} |
452 ; |
556 \rail@term{\hyperlink{command.HOL.primrec}{\mbox{\isa{\isacommand{primrec}}}}}[] |
453 ('fun' | 'function') target? functionopts? fixes \\ 'where' equations |
557 \rail@bar |
454 ; |
558 \rail@nextbar{1} |
455 equations: (thmdecl? prop + '|') |
559 \rail@nont{\hyperlink{syntax.target}{\mbox{\isa{target}}}}[] |
456 ; |
560 \rail@endbar |
457 functionopts: '(' (('sequential' | 'domintros') + ',') ')' |
561 \rail@nont{\hyperlink{syntax.fixes}{\mbox{\isa{fixes}}}}[] |
458 ; |
562 \rail@term{\isa{\isakeyword{where}}}[] |
459 'termination' ( term )? |
563 \rail@nont{\isa{equations}}[] |
460 \end{rail} |
564 \rail@end |
|
565 \rail@begin{4}{\isa{}} |
|
566 \rail@bar |
|
567 \rail@term{\hyperlink{command.HOL.fun}{\mbox{\isa{\isacommand{fun}}}}}[] |
|
568 \rail@nextbar{1} |
|
569 \rail@term{\hyperlink{command.HOL.function}{\mbox{\isa{\isacommand{function}}}}}[] |
|
570 \rail@endbar |
|
571 \rail@bar |
|
572 \rail@nextbar{1} |
|
573 \rail@nont{\hyperlink{syntax.target}{\mbox{\isa{target}}}}[] |
|
574 \rail@endbar |
|
575 \rail@bar |
|
576 \rail@nextbar{1} |
|
577 \rail@nont{\isa{functionopts}}[] |
|
578 \rail@endbar |
|
579 \rail@nont{\hyperlink{syntax.fixes}{\mbox{\isa{fixes}}}}[] |
|
580 \rail@cr{3} |
|
581 \rail@term{\isa{\isakeyword{where}}}[] |
|
582 \rail@nont{\isa{equations}}[] |
|
583 \rail@end |
|
584 \rail@begin{3}{\isa{equations}} |
|
585 \rail@plus |
|
586 \rail@bar |
|
587 \rail@nextbar{1} |
|
588 \rail@nont{\hyperlink{syntax.thmdecl}{\mbox{\isa{thmdecl}}}}[] |
|
589 \rail@endbar |
|
590 \rail@nont{\hyperlink{syntax.prop}{\mbox{\isa{prop}}}}[] |
|
591 \rail@nextplus{2} |
|
592 \rail@cterm{\isa{{\isaliteral{7C}{\isacharbar}}}}[] |
|
593 \rail@endplus |
|
594 \rail@end |
|
595 \rail@begin{3}{\isa{functionopts}} |
|
596 \rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[] |
|
597 \rail@plus |
|
598 \rail@bar |
|
599 \rail@term{\isa{sequential}}[] |
|
600 \rail@nextbar{1} |
|
601 \rail@term{\isa{domintros}}[] |
|
602 \rail@endbar |
|
603 \rail@nextplus{2} |
|
604 \rail@cterm{\isa{{\isaliteral{2C}{\isacharcomma}}}}[] |
|
605 \rail@endplus |
|
606 \rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[] |
|
607 \rail@end |
|
608 \rail@begin{2}{\isa{}} |
|
609 \rail@term{\hyperlink{command.HOL.termination}{\mbox{\isa{\isacommand{termination}}}}}[] |
|
610 \rail@bar |
|
611 \rail@nextbar{1} |
|
612 \rail@nont{\hyperlink{syntax.term}{\mbox{\isa{term}}}}[] |
|
613 \rail@endbar |
|
614 \rail@end |
|
615 \end{railoutput} |
|
616 |
461 |
617 |
462 \begin{description} |
618 \begin{description} |
463 |
619 |
464 \item \hyperlink{command.HOL.primrec}{\mbox{\isa{\isacommand{primrec}}}} defines primitive recursive |
620 \item \hyperlink{command.HOL.primrec}{\mbox{\isa{\isacommand{primrec}}}} defines primitive recursive |
465 functions over datatypes, see also \cite{isabelle-HOL}. |
621 functions over datatypes, see also \cite{isabelle-HOL}. |
664 \begin{matharray}{rcl} |
863 \begin{matharray}{rcl} |
665 \indexdef{HOL}{command}{recdef}\hypertarget{command.HOL.recdef}{\hyperlink{command.HOL.recdef}{\mbox{\isa{\isacommand{recdef}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequote}}} \\ |
864 \indexdef{HOL}{command}{recdef}\hypertarget{command.HOL.recdef}{\hyperlink{command.HOL.recdef}{\mbox{\isa{\isacommand{recdef}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequote}}} \\ |
666 \indexdef{HOL}{command}{recdef\_tc}\hypertarget{command.HOL.recdef-tc}{\hyperlink{command.HOL.recdef-tc}{\mbox{\isa{\isacommand{recdef{\isaliteral{5F}{\isacharunderscore}}tc}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ proof{\isaliteral{28}{\isacharparenleft}}prove{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequote}}} \\ |
865 \indexdef{HOL}{command}{recdef\_tc}\hypertarget{command.HOL.recdef-tc}{\hyperlink{command.HOL.recdef-tc}{\mbox{\isa{\isacommand{recdef{\isaliteral{5F}{\isacharunderscore}}tc}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ proof{\isaliteral{28}{\isacharparenleft}}prove{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequote}}} \\ |
667 \end{matharray} |
866 \end{matharray} |
668 |
867 |
669 \begin{rail} |
868 \begin{railoutput} |
670 'recdef' ('(' 'permissive' ')')? \\ name term (prop +) hints? |
869 \rail@begin{5}{\isa{}} |
671 ; |
870 \rail@term{\hyperlink{command.HOL.recdef}{\mbox{\isa{\isacommand{recdef}}}}}[] |
672 recdeftc thmdecl? tc |
871 \rail@bar |
673 ; |
872 \rail@nextbar{1} |
674 hints: '(' 'hints' ( recdefmod * ) ')' |
873 \rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[] |
675 ; |
874 \rail@term{\isa{\isakeyword{permissive}}}[] |
676 recdefmod: (('recdef_simp' | 'recdef_cong' | 'recdef_wf') (() | 'add' | 'del') ':' thmrefs) | clasimpmod |
875 \rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[] |
677 ; |
876 \rail@endbar |
678 tc: nameref ('(' nat ')')? |
877 \rail@cr{3} |
679 ; |
878 \rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[] |
680 \end{rail} |
879 \rail@nont{\hyperlink{syntax.term}{\mbox{\isa{term}}}}[] |
|
880 \rail@plus |
|
881 \rail@nont{\hyperlink{syntax.prop}{\mbox{\isa{prop}}}}[] |
|
882 \rail@nextplus{4} |
|
883 \rail@endplus |
|
884 \rail@bar |
|
885 \rail@nextbar{4} |
|
886 \rail@nont{\isa{hints}}[] |
|
887 \rail@endbar |
|
888 \rail@end |
|
889 \rail@begin{2}{\isa{}} |
|
890 \rail@nont{\isa{recdeftc}}[] |
|
891 \rail@bar |
|
892 \rail@nextbar{1} |
|
893 \rail@nont{\hyperlink{syntax.thmdecl}{\mbox{\isa{thmdecl}}}}[] |
|
894 \rail@endbar |
|
895 \rail@nont{\isa{tc}}[] |
|
896 \rail@end |
|
897 \rail@begin{2}{\isa{hints}} |
|
898 \rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[] |
|
899 \rail@term{\isa{\isakeyword{hints}}}[] |
|
900 \rail@plus |
|
901 \rail@nextplus{1} |
|
902 \rail@cnont{\isa{recdefmod}}[] |
|
903 \rail@endplus |
|
904 \rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[] |
|
905 \rail@end |
|
906 \rail@begin{4}{\isa{recdefmod}} |
|
907 \rail@bar |
|
908 \rail@bar |
|
909 \rail@term{\isa{recdef{\isaliteral{5F}{\isacharunderscore}}simp}}[] |
|
910 \rail@nextbar{1} |
|
911 \rail@term{\isa{recdef{\isaliteral{5F}{\isacharunderscore}}cong}}[] |
|
912 \rail@nextbar{2} |
|
913 \rail@term{\isa{recdef{\isaliteral{5F}{\isacharunderscore}}wf}}[] |
|
914 \rail@endbar |
|
915 \rail@bar |
|
916 \rail@nextbar{1} |
|
917 \rail@term{\isa{add}}[] |
|
918 \rail@nextbar{2} |
|
919 \rail@term{\isa{del}}[] |
|
920 \rail@endbar |
|
921 \rail@term{\isa{{\isaliteral{3A}{\isacharcolon}}}}[] |
|
922 \rail@nont{\hyperlink{syntax.thmrefs}{\mbox{\isa{thmrefs}}}}[] |
|
923 \rail@nextbar{3} |
|
924 \rail@nont{\hyperlink{syntax.clasimpmod}{\mbox{\isa{clasimpmod}}}}[] |
|
925 \rail@endbar |
|
926 \rail@end |
|
927 \rail@begin{2}{\isa{tc}} |
|
928 \rail@nont{\hyperlink{syntax.nameref}{\mbox{\isa{nameref}}}}[] |
|
929 \rail@bar |
|
930 \rail@nextbar{1} |
|
931 \rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[] |
|
932 \rail@nont{\hyperlink{syntax.nat}{\mbox{\isa{nat}}}}[] |
|
933 \rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[] |
|
934 \rail@endbar |
|
935 \rail@end |
|
936 \end{railoutput} |
|
937 |
681 |
938 |
682 \begin{description} |
939 \begin{description} |
683 |
940 |
684 \item \hyperlink{command.HOL.recdef}{\mbox{\isa{\isacommand{recdef}}}} defines general well-founded |
941 \item \hyperlink{command.HOL.recdef}{\mbox{\isa{\isacommand{recdef}}}} defines general well-founded |
685 recursive functions (using the TFL package), see also |
942 recursive functions (using the TFL package), see also |
750 \indexdef{HOL}{command}{coinductive}\hypertarget{command.HOL.coinductive}{\hyperlink{command.HOL.coinductive}{\mbox{\isa{\isacommand{coinductive}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ local{\isaliteral{5F}{\isacharunderscore}}theory{\isaliteral{22}{\isachardoublequote}}} \\ |
1020 \indexdef{HOL}{command}{coinductive}\hypertarget{command.HOL.coinductive}{\hyperlink{command.HOL.coinductive}{\mbox{\isa{\isacommand{coinductive}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ local{\isaliteral{5F}{\isacharunderscore}}theory{\isaliteral{22}{\isachardoublequote}}} \\ |
751 \indexdef{HOL}{command}{coinductive\_set}\hypertarget{command.HOL.coinductive-set}{\hyperlink{command.HOL.coinductive-set}{\mbox{\isa{\isacommand{coinductive{\isaliteral{5F}{\isacharunderscore}}set}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ local{\isaliteral{5F}{\isacharunderscore}}theory{\isaliteral{22}{\isachardoublequote}}} \\ |
1021 \indexdef{HOL}{command}{coinductive\_set}\hypertarget{command.HOL.coinductive-set}{\hyperlink{command.HOL.coinductive-set}{\mbox{\isa{\isacommand{coinductive{\isaliteral{5F}{\isacharunderscore}}set}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ local{\isaliteral{5F}{\isacharunderscore}}theory{\isaliteral{22}{\isachardoublequote}}} \\ |
752 \indexdef{HOL}{attribute}{mono}\hypertarget{attribute.HOL.mono}{\hyperlink{attribute.HOL.mono}{\mbox{\isa{mono}}}} & : & \isa{attribute} \\ |
1022 \indexdef{HOL}{attribute}{mono}\hypertarget{attribute.HOL.mono}{\hyperlink{attribute.HOL.mono}{\mbox{\isa{mono}}}} & : & \isa{attribute} \\ |
753 \end{matharray} |
1023 \end{matharray} |
754 |
1024 |
755 \begin{rail} |
1025 \begin{railoutput} |
756 ('inductive' | 'inductive_set' | 'coinductive' | 'coinductive_set') target? fixes ('for' fixes)? \\ |
1026 \rail@begin{7}{\isa{}} |
757 ('where' clauses)? ('monos' thmrefs)? |
1027 \rail@bar |
758 ; |
1028 \rail@term{\hyperlink{command.HOL.inductive}{\mbox{\isa{\isacommand{inductive}}}}}[] |
759 clauses: (thmdecl? prop + '|') |
1029 \rail@nextbar{1} |
760 ; |
1030 \rail@term{\hyperlink{command.HOL.inductive-set}{\mbox{\isa{\isacommand{inductive{\isaliteral{5F}{\isacharunderscore}}set}}}}}[] |
761 'mono' (() | 'add' | 'del') |
1031 \rail@nextbar{2} |
762 ; |
1032 \rail@term{\hyperlink{command.HOL.coinductive}{\mbox{\isa{\isacommand{coinductive}}}}}[] |
763 \end{rail} |
1033 \rail@nextbar{3} |
|
1034 \rail@term{\hyperlink{command.HOL.coinductive-set}{\mbox{\isa{\isacommand{coinductive{\isaliteral{5F}{\isacharunderscore}}set}}}}}[] |
|
1035 \rail@endbar |
|
1036 \rail@bar |
|
1037 \rail@nextbar{1} |
|
1038 \rail@nont{\hyperlink{syntax.target}{\mbox{\isa{target}}}}[] |
|
1039 \rail@endbar |
|
1040 \rail@nont{\hyperlink{syntax.fixes}{\mbox{\isa{fixes}}}}[] |
|
1041 \rail@bar |
|
1042 \rail@nextbar{1} |
|
1043 \rail@term{\isa{\isakeyword{for}}}[] |
|
1044 \rail@nont{\hyperlink{syntax.fixes}{\mbox{\isa{fixes}}}}[] |
|
1045 \rail@endbar |
|
1046 \rail@cr{5} |
|
1047 \rail@bar |
|
1048 \rail@nextbar{6} |
|
1049 \rail@term{\isa{\isakeyword{where}}}[] |
|
1050 \rail@nont{\isa{clauses}}[] |
|
1051 \rail@endbar |
|
1052 \rail@bar |
|
1053 \rail@nextbar{6} |
|
1054 \rail@term{\isa{\isakeyword{monos}}}[] |
|
1055 \rail@nont{\hyperlink{syntax.thmrefs}{\mbox{\isa{thmrefs}}}}[] |
|
1056 \rail@endbar |
|
1057 \rail@end |
|
1058 \rail@begin{3}{\isa{clauses}} |
|
1059 \rail@plus |
|
1060 \rail@bar |
|
1061 \rail@nextbar{1} |
|
1062 \rail@nont{\hyperlink{syntax.thmdecl}{\mbox{\isa{thmdecl}}}}[] |
|
1063 \rail@endbar |
|
1064 \rail@nont{\hyperlink{syntax.prop}{\mbox{\isa{prop}}}}[] |
|
1065 \rail@nextplus{2} |
|
1066 \rail@cterm{\isa{{\isaliteral{7C}{\isacharbar}}}}[] |
|
1067 \rail@endplus |
|
1068 \rail@end |
|
1069 \rail@begin{3}{\isa{}} |
|
1070 \rail@term{\hyperlink{attribute.HOL.mono}{\mbox{\isa{mono}}}}[] |
|
1071 \rail@bar |
|
1072 \rail@nextbar{1} |
|
1073 \rail@term{\isa{add}}[] |
|
1074 \rail@nextbar{2} |
|
1075 \rail@term{\isa{del}}[] |
|
1076 \rail@endbar |
|
1077 \rail@end |
|
1078 \end{railoutput} |
|
1079 |
764 |
1080 |
765 \begin{description} |
1081 \begin{description} |
766 |
1082 |
767 \item \hyperlink{command.HOL.inductive}{\mbox{\isa{\isacommand{inductive}}}} and \hyperlink{command.HOL.coinductive}{\mbox{\isa{\isacommand{coinductive}}}} define (co)inductive predicates from the |
1083 \item \hyperlink{command.HOL.inductive}{\mbox{\isa{\isacommand{inductive}}}} and \hyperlink{command.HOL.coinductive}{\mbox{\isa{\isacommand{coinductive}}}} define (co)inductive predicates from the |
768 introduction rules given in the \hyperlink{keyword.where}{\mbox{\isa{\isakeyword{where}}}} part. The |
1084 introduction rules given in the \hyperlink{keyword.where}{\mbox{\isa{\isakeyword{where}}}} part. The |
950 \indexdef{HOL}{command}{try}\hypertarget{command.HOL.try}{\hyperlink{command.HOL.try}{\mbox{\isa{\isacommand{try}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}proof\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}{\isaliteral{22}{\isachardoublequote}}} \\ |
1278 \indexdef{HOL}{command}{try}\hypertarget{command.HOL.try}{\hyperlink{command.HOL.try}{\mbox{\isa{\isacommand{try}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}proof\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}{\isaliteral{22}{\isachardoublequote}}} \\ |
951 \indexdef{HOL}{command}{sledgehammer}\hypertarget{command.HOL.sledgehammer}{\hyperlink{command.HOL.sledgehammer}{\mbox{\isa{\isacommand{sledgehammer}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}proof\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}{\isaliteral{22}{\isachardoublequote}}} \\ |
1279 \indexdef{HOL}{command}{sledgehammer}\hypertarget{command.HOL.sledgehammer}{\hyperlink{command.HOL.sledgehammer}{\mbox{\isa{\isacommand{sledgehammer}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}proof\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}{\isaliteral{22}{\isachardoublequote}}} \\ |
952 \indexdef{HOL}{command}{sledgehammer\_params}\hypertarget{command.HOL.sledgehammer-params}{\hyperlink{command.HOL.sledgehammer-params}{\mbox{\isa{\isacommand{sledgehammer{\isaliteral{5F}{\isacharunderscore}}params}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} |
1280 \indexdef{HOL}{command}{sledgehammer\_params}\hypertarget{command.HOL.sledgehammer-params}{\hyperlink{command.HOL.sledgehammer-params}{\mbox{\isa{\isacommand{sledgehammer{\isaliteral{5F}{\isacharunderscore}}params}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} |
953 \end{matharray} |
1281 \end{matharray} |
954 |
1282 |
955 \begin{rail} |
1283 \begin{railoutput} |
956 'solve_direct' |
1284 \rail@begin{6}{\isa{}} |
957 ; |
1285 \rail@term{\hyperlink{command.HOL.try}{\mbox{\isa{\isacommand{try}}}}}[] |
958 |
1286 \rail@bar |
959 'try' ( ( ( 'simp' | 'intro' | 'elim' | 'dest' ) ':' thmrefs ) + ) ? nat? |
1287 \rail@nextbar{1} |
960 ; |
1288 \rail@plus |
961 |
1289 \rail@bar |
962 'sledgehammer' ( '[' args ']' ) ? facts? nat? |
1290 \rail@term{\isa{simp}}[] |
963 ; |
1291 \rail@nextbar{2} |
964 |
1292 \rail@term{\isa{intro}}[] |
965 'sledgehammer_params' ( ( '[' args ']' ) ? ) |
1293 \rail@nextbar{3} |
966 ; |
1294 \rail@term{\isa{elim}}[] |
967 |
1295 \rail@nextbar{4} |
968 args: ( name '=' value + ',' ) |
1296 \rail@term{\isa{dest}}[] |
969 ; |
1297 \rail@endbar |
970 |
1298 \rail@term{\isa{{\isaliteral{3A}{\isacharcolon}}}}[] |
971 facts: '(' ( ( ( ( 'add' | 'del' ) ':' ) ? thmrefs ) + ) ? ')' |
1299 \rail@nont{\hyperlink{syntax.thmrefs}{\mbox{\isa{thmrefs}}}}[] |
972 ; |
1300 \rail@nextplus{5} |
973 \end{rail} |
1301 \rail@endplus |
|
1302 \rail@endbar |
|
1303 \rail@bar |
|
1304 \rail@nextbar{1} |
|
1305 \rail@nont{\hyperlink{syntax.nat}{\mbox{\isa{nat}}}}[] |
|
1306 \rail@endbar |
|
1307 \rail@end |
|
1308 \rail@begin{2}{\isa{}} |
|
1309 \rail@term{\hyperlink{command.HOL.sledgehammer}{\mbox{\isa{\isacommand{sledgehammer}}}}}[] |
|
1310 \rail@bar |
|
1311 \rail@nextbar{1} |
|
1312 \rail@term{\isa{{\isaliteral{5B}{\isacharbrackleft}}}}[] |
|
1313 \rail@nont{\isa{args}}[] |
|
1314 \rail@term{\isa{{\isaliteral{5D}{\isacharbrackright}}}}[] |
|
1315 \rail@endbar |
|
1316 \rail@bar |
|
1317 \rail@nextbar{1} |
|
1318 \rail@nont{\isa{facts}}[] |
|
1319 \rail@endbar |
|
1320 \rail@bar |
|
1321 \rail@nextbar{1} |
|
1322 \rail@nont{\hyperlink{syntax.nat}{\mbox{\isa{nat}}}}[] |
|
1323 \rail@endbar |
|
1324 \rail@end |
|
1325 \rail@begin{2}{\isa{}} |
|
1326 \rail@term{\hyperlink{command.HOL.sledgehammer-params}{\mbox{\isa{\isacommand{sledgehammer{\isaliteral{5F}{\isacharunderscore}}params}}}}}[] |
|
1327 \rail@bar |
|
1328 \rail@nextbar{1} |
|
1329 \rail@term{\isa{{\isaliteral{5B}{\isacharbrackleft}}}}[] |
|
1330 \rail@nont{\isa{args}}[] |
|
1331 \rail@term{\isa{{\isaliteral{5D}{\isacharbrackright}}}}[] |
|
1332 \rail@endbar |
|
1333 \rail@end |
|
1334 \rail@begin{2}{\isa{args}} |
|
1335 \rail@plus |
|
1336 \rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[] |
|
1337 \rail@term{\isa{{\isaliteral{3D}{\isacharequal}}}}[] |
|
1338 \rail@nont{\isa{value}}[] |
|
1339 \rail@nextplus{1} |
|
1340 \rail@cterm{\isa{{\isaliteral{2C}{\isacharcomma}}}}[] |
|
1341 \rail@endplus |
|
1342 \rail@end |
|
1343 \rail@begin{5}{\isa{facts}} |
|
1344 \rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[] |
|
1345 \rail@bar |
|
1346 \rail@nextbar{1} |
|
1347 \rail@plus |
|
1348 \rail@bar |
|
1349 \rail@nextbar{2} |
|
1350 \rail@bar |
|
1351 \rail@term{\isa{add}}[] |
|
1352 \rail@nextbar{3} |
|
1353 \rail@term{\isa{del}}[] |
|
1354 \rail@endbar |
|
1355 \rail@term{\isa{{\isaliteral{3A}{\isacharcolon}}}}[] |
|
1356 \rail@endbar |
|
1357 \rail@nont{\hyperlink{syntax.thmrefs}{\mbox{\isa{thmrefs}}}}[] |
|
1358 \rail@nextplus{4} |
|
1359 \rail@endplus |
|
1360 \rail@endbar |
|
1361 \rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[] |
|
1362 \rail@end |
|
1363 \end{railoutput} |
|
1364 % FIXME try: proper clasimpmod!? |
|
1365 % FIXME check args "value" |
974 |
1366 |
975 \begin{description} |
1367 \begin{description} |
976 |
1368 |
977 \item \hyperlink{command.HOL.solve-direct}{\mbox{\isa{\isacommand{solve{\isaliteral{5F}{\isacharunderscore}}direct}}}} checks whether the current subgoals can |
1369 \item \hyperlink{command.HOL.solve-direct}{\mbox{\isa{\isacommand{solve{\isaliteral{5F}{\isacharunderscore}}direct}}}} checks whether the current subgoals can |
978 be solved directly by an existing theorem. Duplicate lemmas can be detected |
1370 be solved directly by an existing theorem. Duplicate lemmas can be detected |
1012 \indexdef{HOL}{command}{quickcheck\_params}\hypertarget{command.HOL.quickcheck-params}{\hyperlink{command.HOL.quickcheck-params}{\mbox{\isa{\isacommand{quickcheck{\isaliteral{5F}{\isacharunderscore}}params}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} \\ |
1404 \indexdef{HOL}{command}{quickcheck\_params}\hypertarget{command.HOL.quickcheck-params}{\hyperlink{command.HOL.quickcheck-params}{\mbox{\isa{\isacommand{quickcheck{\isaliteral{5F}{\isacharunderscore}}params}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} \\ |
1013 \indexdef{HOL}{command}{refute\_params}\hypertarget{command.HOL.refute-params}{\hyperlink{command.HOL.refute-params}{\mbox{\isa{\isacommand{refute{\isaliteral{5F}{\isacharunderscore}}params}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} \\ |
1405 \indexdef{HOL}{command}{refute\_params}\hypertarget{command.HOL.refute-params}{\hyperlink{command.HOL.refute-params}{\mbox{\isa{\isacommand{refute{\isaliteral{5F}{\isacharunderscore}}params}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} \\ |
1014 \indexdef{HOL}{command}{nitpick\_params}\hypertarget{command.HOL.nitpick-params}{\hyperlink{command.HOL.nitpick-params}{\mbox{\isa{\isacommand{nitpick{\isaliteral{5F}{\isacharunderscore}}params}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} |
1406 \indexdef{HOL}{command}{nitpick\_params}\hypertarget{command.HOL.nitpick-params}{\hyperlink{command.HOL.nitpick-params}{\mbox{\isa{\isacommand{nitpick{\isaliteral{5F}{\isacharunderscore}}params}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} |
1015 \end{matharray} |
1407 \end{matharray} |
1016 |
1408 |
1017 \begin{rail} |
1409 \begin{railoutput} |
1018 'value' ( ( '[' name ']' ) ? ) modes? term |
1410 \rail@begin{2}{\isa{}} |
1019 ; |
1411 \rail@term{\hyperlink{command.HOL.value}{\mbox{\isa{\isacommand{value}}}}}[] |
1020 |
1412 \rail@bar |
1021 ('quickcheck' | 'refute' | 'nitpick') ( ( '[' args ']' ) ? ) nat? |
1413 \rail@nextbar{1} |
1022 ; |
1414 \rail@term{\isa{{\isaliteral{5B}{\isacharbrackleft}}}}[] |
1023 |
1415 \rail@nont{\isa{name}}[] |
1024 ('quickcheck_params' | 'refute_params' | 'nitpick_params') ( ( '[' args ']' ) ? ) |
1416 \rail@term{\isa{{\isaliteral{5D}{\isacharbrackright}}}}[] |
1025 ; |
1417 \rail@endbar |
1026 |
1418 \rail@bar |
1027 modes: '(' (name + ) ')' |
1419 \rail@nextbar{1} |
1028 ; |
1420 \rail@nont{\isa{modes}}[] |
1029 |
1421 \rail@endbar |
1030 args: ( name '=' value + ',' ) |
1422 \rail@nont{\hyperlink{syntax.term}{\mbox{\isa{term}}}}[] |
1031 ; |
1423 \rail@end |
1032 \end{rail} |
1424 \rail@begin{3}{\isa{}} |
|
1425 \rail@bar |
|
1426 \rail@term{\hyperlink{command.HOL.quickcheck}{\mbox{\isa{\isacommand{quickcheck}}}}}[] |
|
1427 \rail@nextbar{1} |
|
1428 \rail@term{\hyperlink{command.HOL.refute}{\mbox{\isa{\isacommand{refute}}}}}[] |
|
1429 \rail@nextbar{2} |
|
1430 \rail@term{\hyperlink{command.HOL.nitpick}{\mbox{\isa{\isacommand{nitpick}}}}}[] |
|
1431 \rail@endbar |
|
1432 \rail@bar |
|
1433 \rail@nextbar{1} |
|
1434 \rail@term{\isa{{\isaliteral{5B}{\isacharbrackleft}}}}[] |
|
1435 \rail@nont{\isa{args}}[] |
|
1436 \rail@term{\isa{{\isaliteral{5D}{\isacharbrackright}}}}[] |
|
1437 \rail@endbar |
|
1438 \rail@bar |
|
1439 \rail@nextbar{1} |
|
1440 \rail@nont{\hyperlink{syntax.nat}{\mbox{\isa{nat}}}}[] |
|
1441 \rail@endbar |
|
1442 \rail@end |
|
1443 \rail@begin{3}{\isa{}} |
|
1444 \rail@bar |
|
1445 \rail@term{\hyperlink{command.HOL.quickcheck-params}{\mbox{\isa{\isacommand{quickcheck{\isaliteral{5F}{\isacharunderscore}}params}}}}}[] |
|
1446 \rail@nextbar{1} |
|
1447 \rail@term{\hyperlink{command.HOL.refute-params}{\mbox{\isa{\isacommand{refute{\isaliteral{5F}{\isacharunderscore}}params}}}}}[] |
|
1448 \rail@nextbar{2} |
|
1449 \rail@term{\hyperlink{command.HOL.nitpick-params}{\mbox{\isa{\isacommand{nitpick{\isaliteral{5F}{\isacharunderscore}}params}}}}}[] |
|
1450 \rail@endbar |
|
1451 \rail@bar |
|
1452 \rail@nextbar{1} |
|
1453 \rail@term{\isa{{\isaliteral{5B}{\isacharbrackleft}}}}[] |
|
1454 \rail@nont{\isa{args}}[] |
|
1455 \rail@term{\isa{{\isaliteral{5D}{\isacharbrackright}}}}[] |
|
1456 \rail@endbar |
|
1457 \rail@end |
|
1458 \rail@begin{2}{\isa{modes}} |
|
1459 \rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[] |
|
1460 \rail@plus |
|
1461 \rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[] |
|
1462 \rail@nextplus{1} |
|
1463 \rail@endplus |
|
1464 \rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[] |
|
1465 \rail@end |
|
1466 \rail@begin{2}{\isa{args}} |
|
1467 \rail@plus |
|
1468 \rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[] |
|
1469 \rail@term{\isa{{\isaliteral{3D}{\isacharequal}}}}[] |
|
1470 \rail@nont{\isa{value}}[] |
|
1471 \rail@nextplus{1} |
|
1472 \rail@cterm{\isa{{\isaliteral{2C}{\isacharcomma}}}}[] |
|
1473 \rail@endplus |
|
1474 \rail@end |
|
1475 \end{railoutput} |
|
1476 % FIXME check "value" |
1033 |
1477 |
1034 \begin{description} |
1478 \begin{description} |
1035 |
1479 |
1036 \item \hyperlink{command.HOL.value}{\mbox{\isa{\isacommand{value}}}}~\isa{t} evaluates and prints a |
1480 \item \hyperlink{command.HOL.value}{\mbox{\isa{\isacommand{value}}}}~\isa{t} evaluates and prints a |
1037 term; optionally \isa{modes} can be specified, which are |
1481 term; optionally \isa{modes} can be specified, which are |
1152 \indexdef{HOL}{method}{induct\_tac}\hypertarget{method.HOL.induct-tac}{\hyperlink{method.HOL.induct-tac}{\mbox{\isa{induct{\isaliteral{5F}{\isacharunderscore}}tac}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}} & : & \isa{method} \\ |
1596 \indexdef{HOL}{method}{induct\_tac}\hypertarget{method.HOL.induct-tac}{\hyperlink{method.HOL.induct-tac}{\mbox{\isa{induct{\isaliteral{5F}{\isacharunderscore}}tac}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}} & : & \isa{method} \\ |
1153 \indexdef{HOL}{method}{ind\_cases}\hypertarget{method.HOL.ind-cases}{\hyperlink{method.HOL.ind-cases}{\mbox{\isa{ind{\isaliteral{5F}{\isacharunderscore}}cases}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}} & : & \isa{method} \\ |
1597 \indexdef{HOL}{method}{ind\_cases}\hypertarget{method.HOL.ind-cases}{\hyperlink{method.HOL.ind-cases}{\mbox{\isa{ind{\isaliteral{5F}{\isacharunderscore}}cases}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}} & : & \isa{method} \\ |
1154 \indexdef{HOL}{command}{inductive\_cases}\hypertarget{command.HOL.inductive-cases}{\hyperlink{command.HOL.inductive-cases}{\mbox{\isa{\isacommand{inductive{\isaliteral{5F}{\isacharunderscore}}cases}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ local{\isaliteral{5F}{\isacharunderscore}}theory{\isaliteral{22}{\isachardoublequote}}} \\ |
1598 \indexdef{HOL}{command}{inductive\_cases}\hypertarget{command.HOL.inductive-cases}{\hyperlink{command.HOL.inductive-cases}{\mbox{\isa{\isacommand{inductive{\isaliteral{5F}{\isacharunderscore}}cases}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ local{\isaliteral{5F}{\isacharunderscore}}theory{\isaliteral{22}{\isachardoublequote}}} \\ |
1155 \end{matharray} |
1599 \end{matharray} |
1156 |
1600 |
1157 \begin{rail} |
1601 \begin{railoutput} |
1158 'case_tac' goalspec? term rule? |
1602 \rail@begin{2}{\isa{}} |
1159 ; |
1603 \rail@term{\hyperlink{method.HOL.case-tac}{\mbox{\isa{case{\isaliteral{5F}{\isacharunderscore}}tac}}}}[] |
1160 'induct_tac' goalspec? (insts * 'and') rule? |
1604 \rail@bar |
1161 ; |
1605 \rail@nextbar{1} |
1162 'ind_cases' (prop +) ('for' (name +)) ? |
1606 \rail@nont{\hyperlink{syntax.goalspec}{\mbox{\isa{goalspec}}}}[] |
1163 ; |
1607 \rail@endbar |
1164 'inductive_cases' (thmdecl? (prop +) + 'and') |
1608 \rail@nont{\hyperlink{syntax.term}{\mbox{\isa{term}}}}[] |
1165 ; |
1609 \rail@bar |
1166 |
1610 \rail@nextbar{1} |
1167 rule: ('rule' ':' thmref) |
1611 \rail@nont{\isa{rule}}[] |
1168 ; |
1612 \rail@endbar |
1169 \end{rail} |
1613 \rail@end |
|
1614 \rail@begin{3}{\isa{}} |
|
1615 \rail@term{\hyperlink{method.HOL.induct-tac}{\mbox{\isa{induct{\isaliteral{5F}{\isacharunderscore}}tac}}}}[] |
|
1616 \rail@bar |
|
1617 \rail@nextbar{1} |
|
1618 \rail@nont{\hyperlink{syntax.goalspec}{\mbox{\isa{goalspec}}}}[] |
|
1619 \rail@endbar |
|
1620 \rail@bar |
|
1621 \rail@nextbar{1} |
|
1622 \rail@plus |
|
1623 \rail@nont{\hyperlink{syntax.insts}{\mbox{\isa{insts}}}}[] |
|
1624 \rail@nextplus{2} |
|
1625 \rail@cterm{\isa{\isakeyword{and}}}[] |
|
1626 \rail@endplus |
|
1627 \rail@endbar |
|
1628 \rail@bar |
|
1629 \rail@nextbar{1} |
|
1630 \rail@nont{\isa{rule}}[] |
|
1631 \rail@endbar |
|
1632 \rail@end |
|
1633 \rail@begin{3}{\isa{}} |
|
1634 \rail@term{\hyperlink{method.HOL.ind-cases}{\mbox{\isa{ind{\isaliteral{5F}{\isacharunderscore}}cases}}}}[] |
|
1635 \rail@plus |
|
1636 \rail@nont{\hyperlink{syntax.prop}{\mbox{\isa{prop}}}}[] |
|
1637 \rail@nextplus{1} |
|
1638 \rail@endplus |
|
1639 \rail@bar |
|
1640 \rail@nextbar{1} |
|
1641 \rail@term{\isa{\isakeyword{for}}}[] |
|
1642 \rail@plus |
|
1643 \rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[] |
|
1644 \rail@nextplus{2} |
|
1645 \rail@endplus |
|
1646 \rail@endbar |
|
1647 \rail@end |
|
1648 \rail@begin{3}{\isa{}} |
|
1649 \rail@term{\hyperlink{command.HOL.inductive-cases}{\mbox{\isa{\isacommand{inductive{\isaliteral{5F}{\isacharunderscore}}cases}}}}}[] |
|
1650 \rail@plus |
|
1651 \rail@bar |
|
1652 \rail@nextbar{1} |
|
1653 \rail@nont{\hyperlink{syntax.thmdecl}{\mbox{\isa{thmdecl}}}}[] |
|
1654 \rail@endbar |
|
1655 \rail@plus |
|
1656 \rail@nont{\hyperlink{syntax.prop}{\mbox{\isa{prop}}}}[] |
|
1657 \rail@nextplus{1} |
|
1658 \rail@endplus |
|
1659 \rail@nextplus{2} |
|
1660 \rail@cterm{\isa{\isakeyword{and}}}[] |
|
1661 \rail@endplus |
|
1662 \rail@end |
|
1663 \rail@begin{1}{\isa{rule}} |
|
1664 \rail@term{\isa{rule}}[] |
|
1665 \rail@term{\isa{{\isaliteral{3A}{\isacharcolon}}}}[] |
|
1666 \rail@nont{\hyperlink{syntax.thmref}{\mbox{\isa{thmref}}}}[] |
|
1667 \rail@end |
|
1668 \end{railoutput} |
|
1669 |
1170 |
1670 |
1171 \begin{description} |
1671 \begin{description} |
1172 |
1672 |
1173 \item \hyperlink{method.HOL.case-tac}{\mbox{\isa{case{\isaliteral{5F}{\isacharunderscore}}tac}}} and \hyperlink{method.HOL.induct-tac}{\mbox{\isa{induct{\isaliteral{5F}{\isacharunderscore}}tac}}} admit |
1673 \item \hyperlink{method.HOL.case-tac}{\mbox{\isa{case{\isaliteral{5F}{\isacharunderscore}}tac}}} and \hyperlink{method.HOL.induct-tac}{\mbox{\isa{induct{\isaliteral{5F}{\isacharunderscore}}tac}}} admit |
1174 to reason about inductive types. Rules are selected according to |
1674 to reason about inductive types. Rules are selected according to |
1235 \indexdef{HOL}{command}{code\_include}\hypertarget{command.HOL.code-include}{\hyperlink{command.HOL.code-include}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}include}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} \\ |
1735 \indexdef{HOL}{command}{code\_include}\hypertarget{command.HOL.code-include}{\hyperlink{command.HOL.code-include}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}include}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} \\ |
1236 \indexdef{HOL}{command}{code\_modulename}\hypertarget{command.HOL.code-modulename}{\hyperlink{command.HOL.code-modulename}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}modulename}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} \\ |
1736 \indexdef{HOL}{command}{code\_modulename}\hypertarget{command.HOL.code-modulename}{\hyperlink{command.HOL.code-modulename}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}modulename}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} \\ |
1237 \indexdef{HOL}{command}{code\_reflect}\hypertarget{command.HOL.code-reflect}{\hyperlink{command.HOL.code-reflect}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}reflect}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} |
1737 \indexdef{HOL}{command}{code\_reflect}\hypertarget{command.HOL.code-reflect}{\hyperlink{command.HOL.code-reflect}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}reflect}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} |
1238 \end{matharray} |
1738 \end{matharray} |
1239 |
1739 |
1240 \begin{rail} |
1740 \begin{railoutput} |
1241 'export_code' ( constexpr + ) \\ |
1741 \rail@begin{11}{\isa{}} |
1242 ( ( 'in' target ( 'module_name' string ) ? \\ |
1742 \rail@term{\hyperlink{command.HOL.export-code}{\mbox{\isa{\isacommand{export{\isaliteral{5F}{\isacharunderscore}}code}}}}}[] |
1243 ( 'file' ( string | '-' ) ) ? ( '(' args ')' ) ?) + ) ? |
1743 \rail@plus |
1244 ; |
1744 \rail@nont{\isa{constexpr}}[] |
1245 |
1745 \rail@nextplus{1} |
1246 const: term |
1746 \rail@endplus |
1247 ; |
1747 \rail@cr{3} |
1248 |
1748 \rail@bar |
1249 constexpr: ( const | 'name._' | '_' ) |
1749 \rail@nextbar{4} |
1250 ; |
1750 \rail@plus |
1251 |
1751 \rail@term{\isa{\isakeyword{in}}}[] |
1252 typeconstructor: nameref |
1752 \rail@nont{\isa{target}}[] |
1253 ; |
1753 \rail@bar |
1254 |
1754 \rail@nextbar{5} |
1255 class: nameref |
1755 \rail@term{\isa{\isakeyword{module{\isaliteral{5F}{\isacharunderscore}}name}}}[] |
1256 ; |
1756 \rail@nont{\hyperlink{syntax.string}{\mbox{\isa{string}}}}[] |
1257 |
1757 \rail@endbar |
1258 target: 'SML' | 'OCaml' | 'Haskell' | 'Scala' |
1758 \rail@cr{7} |
1259 ; |
1759 \rail@bar |
1260 |
1760 \rail@nextbar{8} |
1261 'code' ( 'del' | 'abstype' | 'abstract' ) ? |
1761 \rail@term{\isa{\isakeyword{file}}}[] |
1262 ; |
1762 \rail@bar |
1263 |
1763 \rail@nont{\hyperlink{syntax.string}{\mbox{\isa{string}}}}[] |
1264 'code_abort' ( const + ) |
1764 \rail@nextbar{9} |
1265 ; |
1765 \rail@term{\isa{{\isaliteral{2D}{\isacharminus}}}}[] |
1266 |
1766 \rail@endbar |
1267 'code_datatype' ( const + ) |
1767 \rail@endbar |
1268 ; |
1768 \rail@bar |
1269 |
1769 \rail@nextbar{8} |
1270 'code_inline' ( 'del' ) ? |
1770 \rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[] |
1271 ; |
1771 \rail@nont{\isa{args}}[] |
1272 |
1772 \rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[] |
1273 'code_post' ( 'del' ) ? |
1773 \rail@endbar |
1274 ; |
1774 \rail@nextplus{10} |
1275 |
1775 \rail@endplus |
1276 'code_thms' ( constexpr + ) ? |
1776 \rail@endbar |
1277 ; |
1777 \rail@end |
1278 |
1778 \rail@begin{1}{\isa{const}} |
1279 'code_deps' ( constexpr + ) ? |
1779 \rail@nont{\hyperlink{syntax.term}{\mbox{\isa{term}}}}[] |
1280 ; |
1780 \rail@end |
1281 |
1781 \rail@begin{3}{\isa{constexpr}} |
1282 'code_const' (const + 'and') \\ |
1782 \rail@bar |
1283 ( ( '(' target ( syntax ? + 'and' ) ')' ) + ) |
1783 \rail@nont{\isa{const}}[] |
1284 ; |
1784 \rail@nextbar{1} |
1285 |
1785 \rail@term{\isa{name{\isaliteral{2E}{\isachardot}}{\isaliteral{5F}{\isacharunderscore}}}}[] |
1286 'code_type' (typeconstructor + 'and') \\ |
1786 \rail@nextbar{2} |
1287 ( ( '(' target ( syntax ? + 'and' ) ')' ) + ) |
1787 \rail@term{\isa{{\isaliteral{5F}{\isacharunderscore}}}}[] |
1288 ; |
1788 \rail@endbar |
1289 |
1789 \rail@end |
1290 'code_class' (class + 'and') \\ |
1790 \rail@begin{1}{\isa{typeconstructor}} |
1291 ( ( '(' target \\ ( string ? + 'and' ) ')' ) + ) |
1791 \rail@nont{\hyperlink{syntax.nameref}{\mbox{\isa{nameref}}}}[] |
1292 ; |
1792 \rail@end |
1293 |
1793 \rail@begin{1}{\isa{class}} |
1294 'code_instance' (( typeconstructor '::' class ) + 'and') \\ |
1794 \rail@nont{\hyperlink{syntax.nameref}{\mbox{\isa{nameref}}}}[] |
1295 ( ( '(' target ( '-' ? + 'and' ) ')' ) + ) |
1795 \rail@end |
1296 ; |
1796 \rail@begin{4}{\isa{target}} |
1297 |
1797 \rail@bar |
1298 'code_reserved' target ( string + ) |
1798 \rail@term{\isa{SML}}[] |
1299 ; |
1799 \rail@nextbar{1} |
1300 |
1800 \rail@term{\isa{OCaml}}[] |
1301 'code_monad' const const target |
1801 \rail@nextbar{2} |
1302 ; |
1802 \rail@term{\isa{Haskell}}[] |
1303 |
1803 \rail@nextbar{3} |
1304 'code_include' target ( string ( string | '-') ) |
1804 \rail@term{\isa{Scala}}[] |
1305 ; |
1805 \rail@endbar |
1306 |
1806 \rail@end |
1307 'code_modulename' target ( ( string string ) + ) |
1807 \rail@begin{4}{\isa{}} |
1308 ; |
1808 \rail@term{\hyperlink{attribute.HOL.code}{\mbox{\isa{code}}}}[] |
1309 |
1809 \rail@bar |
1310 'code_reflect' string \\ |
1810 \rail@nextbar{1} |
1311 ( 'datatypes' ( string '=' ( '_' | ( string + '|' ) + 'and' ) ) ) ? \\ |
1811 \rail@bar |
1312 ( 'functions' ( string + ) ) ? ( 'file' string ) ? |
1812 \rail@term{\isa{del}}[] |
1313 ; |
1813 \rail@nextbar{2} |
1314 |
1814 \rail@term{\isa{abstype}}[] |
1315 syntax: string | ( 'infix' | 'infixl' | 'infixr' ) nat string |
1815 \rail@nextbar{3} |
1316 ; |
1816 \rail@term{\isa{abstract}}[] |
1317 |
1817 \rail@endbar |
1318 \end{rail} |
1818 \rail@endbar |
|
1819 \rail@end |
|
1820 \rail@begin{2}{\isa{}} |
|
1821 \rail@term{\hyperlink{command.HOL.code-abort}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}abort}}}}}[] |
|
1822 \rail@plus |
|
1823 \rail@nont{\isa{const}}[] |
|
1824 \rail@nextplus{1} |
|
1825 \rail@endplus |
|
1826 \rail@end |
|
1827 \rail@begin{2}{\isa{}} |
|
1828 \rail@term{\hyperlink{command.HOL.code-datatype}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}datatype}}}}}[] |
|
1829 \rail@plus |
|
1830 \rail@nont{\isa{const}}[] |
|
1831 \rail@nextplus{1} |
|
1832 \rail@endplus |
|
1833 \rail@end |
|
1834 \rail@begin{2}{\isa{}} |
|
1835 \rail@term{\hyperlink{attribute.HOL.code-inline}{\mbox{\isa{code{\isaliteral{5F}{\isacharunderscore}}inline}}}}[] |
|
1836 \rail@bar |
|
1837 \rail@nextbar{1} |
|
1838 \rail@term{\isa{del}}[] |
|
1839 \rail@endbar |
|
1840 \rail@end |
|
1841 \rail@begin{2}{\isa{}} |
|
1842 \rail@term{\hyperlink{attribute.HOL.code-post}{\mbox{\isa{code{\isaliteral{5F}{\isacharunderscore}}post}}}}[] |
|
1843 \rail@bar |
|
1844 \rail@nextbar{1} |
|
1845 \rail@term{\isa{del}}[] |
|
1846 \rail@endbar |
|
1847 \rail@end |
|
1848 \rail@begin{3}{\isa{}} |
|
1849 \rail@term{\hyperlink{command.HOL.code-thms}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}thms}}}}}[] |
|
1850 \rail@bar |
|
1851 \rail@nextbar{1} |
|
1852 \rail@plus |
|
1853 \rail@nont{\isa{constexpr}}[] |
|
1854 \rail@nextplus{2} |
|
1855 \rail@endplus |
|
1856 \rail@endbar |
|
1857 \rail@end |
|
1858 \rail@begin{3}{\isa{}} |
|
1859 \rail@term{\hyperlink{command.HOL.code-deps}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}deps}}}}}[] |
|
1860 \rail@bar |
|
1861 \rail@nextbar{1} |
|
1862 \rail@plus |
|
1863 \rail@nont{\isa{constexpr}}[] |
|
1864 \rail@nextplus{2} |
|
1865 \rail@endplus |
|
1866 \rail@endbar |
|
1867 \rail@end |
|
1868 \rail@begin{7}{\isa{}} |
|
1869 \rail@term{\hyperlink{command.HOL.code-const}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}const}}}}}[] |
|
1870 \rail@plus |
|
1871 \rail@nont{\isa{const}}[] |
|
1872 \rail@nextplus{1} |
|
1873 \rail@cterm{\isa{\isakeyword{and}}}[] |
|
1874 \rail@endplus |
|
1875 \rail@cr{3} |
|
1876 \rail@plus |
|
1877 \rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[] |
|
1878 \rail@nont{\isa{target}}[] |
|
1879 \rail@plus |
|
1880 \rail@bar |
|
1881 \rail@nextbar{4} |
|
1882 \rail@nont{\isa{syntax}}[] |
|
1883 \rail@endbar |
|
1884 \rail@nextplus{5} |
|
1885 \rail@cterm{\isa{\isakeyword{and}}}[] |
|
1886 \rail@endplus |
|
1887 \rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[] |
|
1888 \rail@nextplus{6} |
|
1889 \rail@endplus |
|
1890 \rail@end |
|
1891 \rail@begin{7}{\isa{}} |
|
1892 \rail@term{\hyperlink{command.HOL.code-type}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}type}}}}}[] |
|
1893 \rail@plus |
|
1894 \rail@nont{\isa{typeconstructor}}[] |
|
1895 \rail@nextplus{1} |
|
1896 \rail@cterm{\isa{\isakeyword{and}}}[] |
|
1897 \rail@endplus |
|
1898 \rail@cr{3} |
|
1899 \rail@plus |
|
1900 \rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[] |
|
1901 \rail@nont{\isa{target}}[] |
|
1902 \rail@plus |
|
1903 \rail@bar |
|
1904 \rail@nextbar{4} |
|
1905 \rail@nont{\isa{syntax}}[] |
|
1906 \rail@endbar |
|
1907 \rail@nextplus{5} |
|
1908 \rail@cterm{\isa{\isakeyword{and}}}[] |
|
1909 \rail@endplus |
|
1910 \rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[] |
|
1911 \rail@nextplus{6} |
|
1912 \rail@endplus |
|
1913 \rail@end |
|
1914 \rail@begin{9}{\isa{}} |
|
1915 \rail@term{\hyperlink{command.HOL.code-class}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}class}}}}}[] |
|
1916 \rail@plus |
|
1917 \rail@nont{\isa{class}}[] |
|
1918 \rail@nextplus{1} |
|
1919 \rail@cterm{\isa{\isakeyword{and}}}[] |
|
1920 \rail@endplus |
|
1921 \rail@cr{3} |
|
1922 \rail@plus |
|
1923 \rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[] |
|
1924 \rail@nont{\isa{target}}[] |
|
1925 \rail@cr{5} |
|
1926 \rail@plus |
|
1927 \rail@bar |
|
1928 \rail@nextbar{6} |
|
1929 \rail@nont{\hyperlink{syntax.string}{\mbox{\isa{string}}}}[] |
|
1930 \rail@endbar |
|
1931 \rail@nextplus{7} |
|
1932 \rail@cterm{\isa{\isakeyword{and}}}[] |
|
1933 \rail@endplus |
|
1934 \rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[] |
|
1935 \rail@nextplus{8} |
|
1936 \rail@endplus |
|
1937 \rail@end |
|
1938 \rail@begin{7}{\isa{}} |
|
1939 \rail@term{\hyperlink{command.HOL.code-instance}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}instance}}}}}[] |
|
1940 \rail@plus |
|
1941 \rail@nont{\isa{typeconstructor}}[] |
|
1942 \rail@term{\isa{{\isaliteral{3A}{\isacharcolon}}{\isaliteral{3A}{\isacharcolon}}}}[] |
|
1943 \rail@nont{\isa{class}}[] |
|
1944 \rail@nextplus{1} |
|
1945 \rail@cterm{\isa{\isakeyword{and}}}[] |
|
1946 \rail@endplus |
|
1947 \rail@cr{3} |
|
1948 \rail@plus |
|
1949 \rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[] |
|
1950 \rail@nont{\isa{target}}[] |
|
1951 \rail@plus |
|
1952 \rail@bar |
|
1953 \rail@nextbar{4} |
|
1954 \rail@term{\isa{{\isaliteral{2D}{\isacharminus}}}}[] |
|
1955 \rail@endbar |
|
1956 \rail@nextplus{5} |
|
1957 \rail@cterm{\isa{\isakeyword{and}}}[] |
|
1958 \rail@endplus |
|
1959 \rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[] |
|
1960 \rail@nextplus{6} |
|
1961 \rail@endplus |
|
1962 \rail@end |
|
1963 \rail@begin{2}{\isa{}} |
|
1964 \rail@term{\hyperlink{command.HOL.code-reserved}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}reserved}}}}}[] |
|
1965 \rail@nont{\isa{target}}[] |
|
1966 \rail@plus |
|
1967 \rail@nont{\hyperlink{syntax.string}{\mbox{\isa{string}}}}[] |
|
1968 \rail@nextplus{1} |
|
1969 \rail@endplus |
|
1970 \rail@end |
|
1971 \rail@begin{1}{\isa{}} |
|
1972 \rail@term{\hyperlink{command.HOL.code-monad}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}monad}}}}}[] |
|
1973 \rail@nont{\isa{const}}[] |
|
1974 \rail@nont{\isa{const}}[] |
|
1975 \rail@nont{\isa{target}}[] |
|
1976 \rail@end |
|
1977 \rail@begin{2}{\isa{}} |
|
1978 \rail@term{\hyperlink{command.HOL.code-include}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}include}}}}}[] |
|
1979 \rail@nont{\isa{target}}[] |
|
1980 \rail@nont{\hyperlink{syntax.string}{\mbox{\isa{string}}}}[] |
|
1981 \rail@bar |
|
1982 \rail@nont{\hyperlink{syntax.string}{\mbox{\isa{string}}}}[] |
|
1983 \rail@nextbar{1} |
|
1984 \rail@term{\isa{{\isaliteral{2D}{\isacharminus}}}}[] |
|
1985 \rail@endbar |
|
1986 \rail@end |
|
1987 \rail@begin{2}{\isa{}} |
|
1988 \rail@term{\hyperlink{command.HOL.code-modulename}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}modulename}}}}}[] |
|
1989 \rail@nont{\isa{target}}[] |
|
1990 \rail@plus |
|
1991 \rail@nont{\hyperlink{syntax.string}{\mbox{\isa{string}}}}[] |
|
1992 \rail@nont{\hyperlink{syntax.string}{\mbox{\isa{string}}}}[] |
|
1993 \rail@nextplus{1} |
|
1994 \rail@endplus |
|
1995 \rail@end |
|
1996 \rail@begin{11}{\isa{}} |
|
1997 \rail@term{\hyperlink{command.HOL.code-reflect}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}reflect}}}}}[] |
|
1998 \rail@nont{\hyperlink{syntax.string}{\mbox{\isa{string}}}}[] |
|
1999 \rail@cr{2} |
|
2000 \rail@bar |
|
2001 \rail@nextbar{3} |
|
2002 \rail@term{\isa{\isakeyword{datatypes}}}[] |
|
2003 \rail@nont{\hyperlink{syntax.string}{\mbox{\isa{string}}}}[] |
|
2004 \rail@term{\isa{{\isaliteral{3D}{\isacharequal}}}}[] |
|
2005 \rail@bar |
|
2006 \rail@term{\isa{{\isaliteral{5F}{\isacharunderscore}}}}[] |
|
2007 \rail@nextbar{4} |
|
2008 \rail@plus |
|
2009 \rail@plus |
|
2010 \rail@nont{\hyperlink{syntax.string}{\mbox{\isa{string}}}}[] |
|
2011 \rail@nextplus{5} |
|
2012 \rail@cterm{\isa{{\isaliteral{7C}{\isacharbar}}}}[] |
|
2013 \rail@endplus |
|
2014 \rail@nextplus{6} |
|
2015 \rail@cterm{\isa{\isakeyword{and}}}[] |
|
2016 \rail@endplus |
|
2017 \rail@endbar |
|
2018 \rail@endbar |
|
2019 \rail@cr{8} |
|
2020 \rail@bar |
|
2021 \rail@nextbar{9} |
|
2022 \rail@term{\isa{\isakeyword{functions}}}[] |
|
2023 \rail@plus |
|
2024 \rail@nont{\hyperlink{syntax.string}{\mbox{\isa{string}}}}[] |
|
2025 \rail@nextplus{10} |
|
2026 \rail@endplus |
|
2027 \rail@endbar |
|
2028 \rail@bar |
|
2029 \rail@nextbar{9} |
|
2030 \rail@term{\isa{\isakeyword{file}}}[] |
|
2031 \rail@nont{\hyperlink{syntax.string}{\mbox{\isa{string}}}}[] |
|
2032 \rail@endbar |
|
2033 \rail@end |
|
2034 \rail@begin{4}{\isa{syntax}} |
|
2035 \rail@bar |
|
2036 \rail@nont{\hyperlink{syntax.string}{\mbox{\isa{string}}}}[] |
|
2037 \rail@nextbar{1} |
|
2038 \rail@bar |
|
2039 \rail@term{\isa{\isakeyword{infix}}}[] |
|
2040 \rail@nextbar{2} |
|
2041 \rail@term{\isa{\isakeyword{infixl}}}[] |
|
2042 \rail@nextbar{3} |
|
2043 \rail@term{\isa{\isakeyword{infixr}}}[] |
|
2044 \rail@endbar |
|
2045 \rail@nont{\hyperlink{syntax.nat}{\mbox{\isa{nat}}}}[] |
|
2046 \rail@nont{\hyperlink{syntax.string}{\mbox{\isa{string}}}}[] |
|
2047 \rail@endbar |
|
2048 \rail@end |
|
2049 \end{railoutput} |
|
2050 |
1319 |
2051 |
1320 \begin{description} |
2052 \begin{description} |
1321 |
2053 |
1322 \item \hyperlink{command.HOL.export-code}{\mbox{\isa{\isacommand{export{\isaliteral{5F}{\isacharunderscore}}code}}}} generates code for a given list |
2054 \item \hyperlink{command.HOL.export-code}{\mbox{\isa{\isacommand{export{\isaliteral{5F}{\isacharunderscore}}code}}}} generates code for a given list |
1323 of constants in the specified target language(s). If no |
2055 of constants in the specified target language(s). If no |
1436 \indexdef{HOL}{command}{consts\_code}\hypertarget{command.HOL.consts-code}{\hyperlink{command.HOL.consts-code}{\mbox{\isa{\isacommand{consts{\isaliteral{5F}{\isacharunderscore}}code}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} \\ |
2168 \indexdef{HOL}{command}{consts\_code}\hypertarget{command.HOL.consts-code}{\hyperlink{command.HOL.consts-code}{\mbox{\isa{\isacommand{consts{\isaliteral{5F}{\isacharunderscore}}code}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} \\ |
1437 \indexdef{HOL}{command}{types\_code}\hypertarget{command.HOL.types-code}{\hyperlink{command.HOL.types-code}{\mbox{\isa{\isacommand{types{\isaliteral{5F}{\isacharunderscore}}code}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} \\ |
2169 \indexdef{HOL}{command}{types\_code}\hypertarget{command.HOL.types-code}{\hyperlink{command.HOL.types-code}{\mbox{\isa{\isacommand{types{\isaliteral{5F}{\isacharunderscore}}code}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ theory{\isaliteral{22}{\isachardoublequote}}} \\ |
1438 \indexdef{HOL}{attribute}{code}\hypertarget{attribute.HOL.code}{\hyperlink{attribute.HOL.code}{\mbox{\isa{code}}}} & : & \isa{attribute} \\ |
2170 \indexdef{HOL}{attribute}{code}\hypertarget{attribute.HOL.code}{\hyperlink{attribute.HOL.code}{\mbox{\isa{code}}}} & : & \isa{attribute} \\ |
1439 \end{matharray} |
2171 \end{matharray} |
1440 |
2172 |
1441 \begin{rail} |
2173 \begin{railoutput} |
1442 ( 'code_module' | 'code_library' ) modespec ? name ? \\ |
2174 \rail@begin{11}{\isa{}} |
1443 ( 'file' name ) ? ( 'imports' ( name + ) ) ? \\ |
2175 \rail@bar |
1444 'contains' ( ( name '=' term ) + | term + ) |
2176 \rail@term{\hyperlink{command.HOL.code-module}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}module}}}}}[] |
1445 ; |
2177 \rail@nextbar{1} |
1446 |
2178 \rail@term{\hyperlink{command.HOL.code-library}{\mbox{\isa{\isacommand{code{\isaliteral{5F}{\isacharunderscore}}library}}}}}[] |
1447 modespec: '(' ( name * ) ')' |
2179 \rail@endbar |
1448 ; |
2180 \rail@bar |
1449 |
2181 \rail@nextbar{1} |
1450 'consts_code' (codespec +) |
2182 \rail@nont{\isa{modespec}}[] |
1451 ; |
2183 \rail@endbar |
1452 |
2184 \rail@bar |
1453 codespec: const template attachment ? |
2185 \rail@nextbar{1} |
1454 ; |
2186 \rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[] |
1455 |
2187 \rail@endbar |
1456 'types_code' (tycodespec +) |
2188 \rail@cr{3} |
1457 ; |
2189 \rail@bar |
1458 |
2190 \rail@nextbar{4} |
1459 tycodespec: name template attachment ? |
2191 \rail@term{\isa{\isakeyword{file}}}[] |
1460 ; |
2192 \rail@nont{\isa{name}}[] |
1461 |
2193 \rail@endbar |
1462 const: term |
2194 \rail@bar |
1463 ; |
2195 \rail@nextbar{4} |
1464 |
2196 \rail@term{\isa{\isakeyword{imports}}}[] |
1465 template: '(' string ')' |
2197 \rail@plus |
1466 ; |
2198 \rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[] |
1467 |
2199 \rail@nextplus{5} |
1468 attachment: 'attach' modespec ? verblbrace text verbrbrace |
2200 \rail@endplus |
1469 ; |
2201 \rail@endbar |
1470 |
2202 \rail@cr{7} |
1471 'code' (name)? |
2203 \rail@term{\isa{\isakeyword{contains}}}[] |
1472 ; |
2204 \rail@bar |
1473 \end{rail}% |
2205 \rail@plus |
|
2206 \rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[] |
|
2207 \rail@term{\isa{{\isaliteral{3D}{\isacharequal}}}}[] |
|
2208 \rail@nont{\hyperlink{syntax.term}{\mbox{\isa{term}}}}[] |
|
2209 \rail@nextplus{8} |
|
2210 \rail@endplus |
|
2211 \rail@nextbar{9} |
|
2212 \rail@plus |
|
2213 \rail@nont{\hyperlink{syntax.term}{\mbox{\isa{term}}}}[] |
|
2214 \rail@nextplus{10} |
|
2215 \rail@endplus |
|
2216 \rail@endbar |
|
2217 \rail@end |
|
2218 \rail@begin{2}{\isa{modespec}} |
|
2219 \rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[] |
|
2220 \rail@plus |
|
2221 \rail@nextplus{1} |
|
2222 \rail@cnont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[] |
|
2223 \rail@endplus |
|
2224 \rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[] |
|
2225 \rail@end |
|
2226 \rail@begin{2}{\isa{}} |
|
2227 \rail@term{\hyperlink{command.HOL.consts-code}{\mbox{\isa{\isacommand{consts{\isaliteral{5F}{\isacharunderscore}}code}}}}}[] |
|
2228 \rail@plus |
|
2229 \rail@nont{\isa{codespec}}[] |
|
2230 \rail@nextplus{1} |
|
2231 \rail@endplus |
|
2232 \rail@end |
|
2233 \rail@begin{2}{\isa{codespec}} |
|
2234 \rail@nont{\isa{const}}[] |
|
2235 \rail@nont{\isa{template}}[] |
|
2236 \rail@bar |
|
2237 \rail@nextbar{1} |
|
2238 \rail@nont{\isa{attachment}}[] |
|
2239 \rail@endbar |
|
2240 \rail@end |
|
2241 \rail@begin{2}{\isa{}} |
|
2242 \rail@term{\hyperlink{command.HOL.types-code}{\mbox{\isa{\isacommand{types{\isaliteral{5F}{\isacharunderscore}}code}}}}}[] |
|
2243 \rail@plus |
|
2244 \rail@nont{\isa{tycodespec}}[] |
|
2245 \rail@nextplus{1} |
|
2246 \rail@endplus |
|
2247 \rail@end |
|
2248 \rail@begin{2}{\isa{tycodespec}} |
|
2249 \rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[] |
|
2250 \rail@nont{\isa{template}}[] |
|
2251 \rail@bar |
|
2252 \rail@nextbar{1} |
|
2253 \rail@nont{\isa{attachment}}[] |
|
2254 \rail@endbar |
|
2255 \rail@end |
|
2256 \rail@begin{1}{\isa{const}} |
|
2257 \rail@nont{\hyperlink{syntax.term}{\mbox{\isa{term}}}}[] |
|
2258 \rail@end |
|
2259 \rail@begin{1}{\isa{template}} |
|
2260 \rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[] |
|
2261 \rail@nont{\hyperlink{syntax.string}{\mbox{\isa{string}}}}[] |
|
2262 \rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[] |
|
2263 \rail@end |
|
2264 \rail@begin{2}{\isa{attachment}} |
|
2265 \rail@term{\isa{attach}}[] |
|
2266 \rail@bar |
|
2267 \rail@nextbar{1} |
|
2268 \rail@nont{\isa{modespec}}[] |
|
2269 \rail@endbar |
|
2270 \rail@term{\isa{{\isaliteral{7B}{\isacharbraceleft}}}}[] |
|
2271 \rail@nont{\hyperlink{syntax.text}{\mbox{\isa{text}}}}[] |
|
2272 \rail@term{\isa{{\isaliteral{7D}{\isacharbraceright}}}}[] |
|
2273 \rail@end |
|
2274 \rail@begin{2}{\isa{}} |
|
2275 \rail@term{\hyperlink{attribute.HOL.code}{\mbox{\isa{code}}}}[] |
|
2276 \rail@bar |
|
2277 \rail@nextbar{1} |
|
2278 \rail@nont{\isa{name}}[] |
|
2279 \rail@endbar |
|
2280 \rail@end |
|
2281 \end{railoutput}% |
1474 \end{isamarkuptext}% |
2282 \end{isamarkuptext}% |
1475 \isamarkuptrue% |
2283 \isamarkuptrue% |
1476 % |
2284 % |
1477 \isamarkupsection{Definition by specification \label{sec:hol-specification}% |
2285 \isamarkupsection{Definition by specification \label{sec:hol-specification}% |
1478 } |
2286 } |