doc-src/IsarImplementation/Thy/document/logic.tex
changeset 28291 c49b328d689d
parent 28110 9d121b171a0a
child 28786 de95d007eaed
equal deleted inserted replaced
28290:4cc2b6046258 28291:c49b328d689d
   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