591 \indexml{Thm.implies\_intr}\verb|Thm.implies_intr: cterm -> thm -> thm| \\ |
591 \indexml{Thm.implies\_intr}\verb|Thm.implies_intr: cterm -> thm -> thm| \\ |
592 \indexml{Thm.implies\_elim}\verb|Thm.implies_elim: thm -> thm -> thm| \\ |
592 \indexml{Thm.implies\_elim}\verb|Thm.implies_elim: thm -> thm -> thm| \\ |
593 \indexml{Thm.generalize}\verb|Thm.generalize: string list * string list -> int -> thm -> thm| \\ |
593 \indexml{Thm.generalize}\verb|Thm.generalize: string list * string list -> int -> thm -> thm| \\ |
594 \indexml{Thm.instantiate}\verb|Thm.instantiate: (ctyp * ctyp) list * (cterm * cterm) list -> thm -> thm| \\ |
594 \indexml{Thm.instantiate}\verb|Thm.instantiate: (ctyp * ctyp) list * (cterm * cterm) list -> thm -> thm| \\ |
595 \indexml{Thm.get\_axiom\_i}\verb|Thm.get_axiom_i: theory -> string -> thm| \\ |
595 \indexml{Thm.get\_axiom\_i}\verb|Thm.get_axiom_i: theory -> string -> thm| \\ |
596 \indexml{Thm.invoke\_oracle\_i}\verb|Thm.invoke_oracle_i: theory -> string -> theory * Object.T -> thm| \\ |
596 \indexml{Thm.add\_oracle}\verb|Thm.add_oracle: bstring * ('a -> cterm) -> theory|\isasep\isanewline% |
|
597 \verb| -> (string * ('a -> thm)) * theory| \\ |
597 \end{mldecls} |
598 \end{mldecls} |
598 \begin{mldecls} |
599 \begin{mldecls} |
599 \indexml{Theory.add\_axioms\_i}\verb|Theory.add_axioms_i: (string * term) list -> theory -> theory| \\ |
600 \indexml{Theory.add\_axioms\_i}\verb|Theory.add_axioms_i: (string * term) list -> theory -> theory| \\ |
600 \indexml{Theory.add\_deps}\verb|Theory.add_deps: string -> string * typ -> (string * typ) list -> theory -> theory| \\ |
601 \indexml{Theory.add\_deps}\verb|Theory.add_deps: string -> string * typ -> (string * typ) list -> theory -> theory| \\ |
601 \indexml{Theory.add\_oracle}\verb|Theory.add_oracle: string * (theory * Object.T -> term) -> theory -> theory| \\ |
|
602 \indexml{Theory.add\_defs\_i}\verb|Theory.add_defs_i: bool -> bool -> (bstring * term) list -> theory -> theory| \\ |
602 \indexml{Theory.add\_defs\_i}\verb|Theory.add_defs_i: bool -> bool -> (bstring * term) list -> theory -> theory| \\ |
603 \end{mldecls} |
603 \end{mldecls} |
604 |
604 |
605 \begin{description} |
605 \begin{description} |
606 |
606 |
644 refer to the instantiated versions. |
644 refer to the instantiated versions. |
645 |
645 |
646 \item \verb|Thm.get_axiom_i|~\isa{thy\ name} retrieves a named |
646 \item \verb|Thm.get_axiom_i|~\isa{thy\ name} retrieves a named |
647 axiom, cf.\ \isa{axiom} in \figref{fig:prim-rules}. |
647 axiom, cf.\ \isa{axiom} in \figref{fig:prim-rules}. |
648 |
648 |
649 \item \verb|Thm.invoke_oracle_i|~\isa{thy\ name\ arg} invokes a |
649 \item \verb|Thm.add_oracle|~\isa{{\isacharparenleft}name{\isacharcomma}\ oracle{\isacharparenright}} produces a named |
650 named oracle function, cf.\ \isa{axiom} in |
650 oracle rule, essentially generating arbitrary axioms on the fly, |
651 \figref{fig:prim-rules}. |
651 cf.\ \isa{axiom} in \figref{fig:prim-rules}. |
652 |
652 |
653 \item \verb|Theory.add_axioms_i|~\isa{{\isacharbrackleft}{\isacharparenleft}name{\isacharcomma}\ A{\isacharparenright}{\isacharcomma}\ {\isasymdots}{\isacharbrackright}} declares |
653 \item \verb|Theory.add_axioms_i|~\isa{{\isacharbrackleft}{\isacharparenleft}name{\isacharcomma}\ A{\isacharparenright}{\isacharcomma}\ {\isasymdots}{\isacharbrackright}} declares |
654 arbitrary propositions as axioms. |
654 arbitrary propositions as axioms. |
655 |
|
656 \item \verb|Theory.add_oracle|~\isa{{\isacharparenleft}name{\isacharcomma}\ f{\isacharparenright}} declares an oracle |
|
657 function for generating arbitrary axioms on the fly. |
|
658 |
655 |
659 \item \verb|Theory.add_deps|~\isa{name\ c\isactrlisub {\isasymtau}\ \isactrlvec d\isactrlisub {\isasymsigma}} declares dependencies of a named specification |
656 \item \verb|Theory.add_deps|~\isa{name\ c\isactrlisub {\isasymtau}\ \isactrlvec d\isactrlisub {\isasymsigma}} declares dependencies of a named specification |
660 for constant \isa{c\isactrlisub {\isasymtau}}, relative to existing |
657 for constant \isa{c\isactrlisub {\isasymtau}}, relative to existing |
661 specifications for constants \isa{\isactrlvec d\isactrlisub {\isasymsigma}}. |
658 specifications for constants \isa{\isactrlvec d\isactrlisub {\isasymsigma}}. |
662 |
659 |