Theory IsaFoR_Outline

theory IsaFoR_Outline
imports LS_Extras
section ‹IsaFoR Basics›

text ‹We present basic notions of IsaFoR.›

(*<*)
theory IsaFoR_Outline
  imports LS_Extras
begin
(*>*)
subsection ‹Types›

text ‹
  \begin{itemize}
  \setlength{\itemsep}{0pt}
  \item \textbf{type\textunderscore synonym} @{typ "'f sig"} $=$ @{typeof "x :: 'f sig"}\\
    Note that IsaFoR regards arities as part of the function symbol.
  \item @{datatype [names_short] term}\\
    In the definition of terms, the arity is implicit in the length of the argument list.
  \item @{datatype pos}
  \item @{datatype [names_short] ctxt}
  \item \textbf{type\textunderscore synonym} @{typ "('f,'v) rule"} $=$ @{typeof [names_short] "x :: ('f,'v) rule"}
  \item \textbf{type\textunderscore synonym} @{typ "('f,'v) trs"} $=$ @{typ "('f,'v) rule set"}
  \item @{datatype mctxt}
  \end{itemize}
›

subsection ‹Functions›

text ‹
  \begin{itemize}
  \setlength{\itemsep}{0pt}
  \item @{term_type [names_short] "subt_at"}\\
    Return subterm at given position.
  \item @{term [source] "replace_at"}@{text "::"}@{typeof [names_short] "replace_at"}
  \item @{term [names_short] "poss"}, @{term [names_short] "funposs"}, @{term_type [names_short] "varposs"}
  \item @{term_type [names_short] "funas_term"}, @{term_type [names_short] "vars_term"}
  \item @{term_type [names_short] "vars_term_ms"}
  \item @{term_type [names_short] "mctxt_of_term"}
  \item @{term_type [names_short] "subm_at"}
  \item @{term_type [names_short] "mreplace_at"}
  \item @{term_type [names_short] "poss_mctxt"}
  \item @{term_type [names_short] "hole_poss"}
  \item @{term_type [names_short] "mctxt_term_conv"},\\ @{term_type [names_short] "term_mctxt_conv"}\\
    These two functions define a bijection between multi-hole contexts and terms with an extra variable
    (represented by @{term None}).
  \item @{term_type [names_short] "rstep_r_p_s'"}\\
    @{term "(s,t) ∈ rstep_r_p_s' ℛ (l,r) p σ"} is a rewrite step with explicit rule, position and substitution.
  \end{itemize}
›

subsection ‹Definitions›
text ‹
  \begin{itemize}
  \setlength{\itemsep}{0pt}
  \item @{term_type [names_short] "left_linear_trs"}
  \end{itemize}
›

(*<*)
print_antiquotations

end
(*>*)