Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Isabelle/Doc/Main/   (Beweissystem Isabelle Version 2025-1©)  Datei vom 16.11.2025 mit GrรถรŸe 35 kB image not shown  

Quelle  Main_Doc.thy   Sprache: Isabelle

 
(*<*)
theory Main_Doc
imports Main
begin

setup โ€น
  Document_Output.antiquotation_pretty_source ๐Ÿ‹โ€นterm_type_onlyโ€บ (Args.term -- Args.typ_abbrev)
    (fn ctxt => fn (t, T) =>
      (if fastype_of t = Sign.certify_typ (Proof_Context.theory_of ctxt) T then ()
       else error "term_type_only: type mismatch";
       Syntax.pretty_typ ctxt T))
โ€บ
setup โ€น
  Document_Output.antiquotation_pretty_source ๐Ÿ‹โ€นexpanded_typโ€บ Args.typ
    Syntax.pretty_typ
โ€บ
(*>*)
textโ€น

\begin{abstract}
This document lists the main types, functions and syntax provided by theory ๐Ÿ‹โ€นMainโ€บ. It is meant as a quick overview of what is available. For infix operators and their precedences see the final section. The sophisticated class structure is only hinted at. For details see ๐Ÿšซโ€นhttps://isabelle.in.tum.de/library/HOL/HOLโ€บ.
\end{abstract}

\section*{HOL}

The basic logic: ๐Ÿ‹โ€นx = yโ€บ๐Ÿ‹โ€นTrueโ€บ๐Ÿ‹โ€นFalseโ€บ๐Ÿ‹โ€นยฌ Pโ€บ๐Ÿ‹โ€นโˆง Qโ€บ,
๐Ÿ‹โ€นโˆจ Qโ€บ๐Ÿ‹โ€นโŸถ Qโ€บ๐Ÿ‹โ€นโˆ€x. Pโ€บ๐Ÿ‹โ€นโˆƒx. Pโ€บ๐Ÿ‹โ€นโˆƒ! x. Pโ€บ,
๐Ÿ‹โ€นTHE x. Pโ€บ.
๐Ÿšซ

\begin{tabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นHOL.undefinedโ€บ & ๐Ÿšซโ€นHOL.undefinedโ€บ\\
๐Ÿ‹โ€นHOL.defaultโ€บ & ๐Ÿšซโ€นHOL.defaultโ€บ\\
\end{tabular}

\subsubsection*{Syntax}

\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l l @ {}}
๐Ÿ‹โ€นยฌ (x = y)โ€บ & @{term[source]"\ (x = y)"} & (๐Ÿ‹โ€น~=โ€บ)\\
@{term[source]"P \ Q"} & ๐Ÿ‹โ€นโŸท Qโ€บ \\
๐Ÿ‹โ€นIf x y zโ€บ & @{term[source]"If x y z"}\\
๐Ÿ‹โ€นLet e๐Ÿšซ1 (λx. e๐Ÿšซ2)โ€บ & @{term[source]"Let e\<^sub>1 (\x. e\<^sub>2)"}\\
\end{tabular}


\section*{Orderings}

A collection of classes defining basic orderings:
preorder, partial order, linear order, dense linear order and wellorder.
๐Ÿšซ

\begin{tabular}{@ {} l @ {~::~} l l @ {}}
๐Ÿ‹โ€นOrderings.less_eqโ€บ & ๐Ÿšซโ€นOrderings.less_eqโ€บ & (๐Ÿ‹โ€น<=โ€บ)\\
๐Ÿ‹โ€นOrderings.lessโ€บ & ๐Ÿšซโ€นOrderings.lessโ€บ\\
๐Ÿ‹โ€นOrderings.Leastโ€บ & ๐Ÿšซโ€นOrderings.Leastโ€บ\\
๐Ÿ‹โ€นOrderings.Greatestโ€บ & ๐Ÿšซโ€นOrderings.Greatestโ€บ\\
๐Ÿ‹โ€นOrderings.minโ€บ & ๐Ÿšซโ€นOrderings.minโ€บ\\
๐Ÿ‹โ€นOrderings.maxโ€บ & ๐Ÿšซโ€นOrderings.maxโ€บ\\
@{const[source] top} & ๐Ÿšซโ€นOrderings.topโ€บ\\
@{const[source] bot} & ๐Ÿšซโ€นOrderings.botโ€บ\\
\end{tabular}

\subsubsection*{Syntax}

\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l l @ {}}
@{term[source]"x \ y"} & ๐Ÿ‹โ€นโ‰ฅ yโ€บ & (๐Ÿ‹โ€น>=โ€บ)\\
@{term[source]"x > y"} & ๐Ÿ‹โ€นx > yโ€บ\\
๐Ÿ‹โ€นโˆ€xโ‰คy. Pโ€บ & @{term[source]"\x. x \ y \ P"}\\
๐Ÿ‹โ€นโˆƒxโ‰คy. Pโ€บ & @{term[source]"\x. x \ y \ P"}\\
\multicolumn{2}{@ {}l@ {}}{Similarly for $<$, $\geand $>$}\\
๐Ÿ‹โ€นLEAST x. Pโ€บ & @{term[source]"Least (\x. P)"}\\
๐Ÿ‹โ€นGREATEST x. Pโ€บ & @{term[source]"Greatest (\x. P)"}\\
\end{tabular}


\section*{Lattices}

Classes semilattice, lattice, distributive lattice and complete lattice (the
latter in theory ๐Ÿ‹โ€นHOL.Setโ€บ).

\begin{tabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นLattices.infโ€บ & ๐Ÿšซโ€นLattices.infโ€บ\\
๐Ÿ‹โ€นLattices.supโ€บ & ๐Ÿšซโ€นLattices.supโ€บ\\
๐Ÿ‹โ€นComplete_Lattices.Infโ€บ & @{term_type_only Complete_Lattices.Inf "'a set \ 'a::Inf"}\\
๐Ÿ‹โ€นComplete_Lattices.Supโ€บ & @{term_type_only Complete_Lattices.Sup "'a set \ 'a::Sup"}\\
\end{tabular}

\subsubsection*{Syntax}

Available via ๐Ÿšซโ€นunbundle lattice_syntaxโ€บ.

\begin{supertabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
@{text[source]"x \ y"} & ๐Ÿ‹โ€นโ‰ค yโ€บ\\
@{text[source]"x \ y"} & ๐Ÿ‹โ€นx < yโ€บ\\
@{text[source]"x \ y"} & ๐Ÿ‹โ€นinf x yโ€บ\\
@{text[source]"x \ y"} & ๐Ÿ‹โ€นsup x yโ€บ\\
@{text[source]"\A"} & ๐Ÿ‹โ€นInf Aโ€บ\\
@{text[source]"\A"} & ๐Ÿ‹โ€นSup Aโ€บ\\
@{text[source]"\"} & @{term[source] top}\\
@{text[source]"\"} & @{term[source] bot}\\
\end{supertabular}


\section*{Set}

\begin{tabular}{@ {} l @ {~::~} l l @ {}}
๐Ÿ‹โ€นSet.emptyโ€บ & @{term_type_only "Set.empty" "'a set"}\\
๐Ÿ‹โ€นSet.insertโ€บ & @{term_type_only insert "'a\'a set\'a set"}\\
๐Ÿ‹โ€นCollectโ€บ & @{term_type_only Collect "('a\bool)\'a set"}\\
๐Ÿ‹โ€นSet.memberโ€บ & @{term_type_only Set.member "'a\'a set\bool"} & (๐Ÿ‹โ€น:โ€บ)\\
๐Ÿ‹โ€นSet.unionโ€บ & @{term_type_only Set.union "'a set\'a set \ 'a set"} & (๐Ÿ‹โ€นUnโ€บ)\\
๐Ÿ‹โ€นSet.interโ€บ & @{term_type_only Set.inter "'a set\'a set \ 'a set"} & (๐Ÿ‹โ€นIntโ€บ)\\
๐Ÿ‹โ€นUnionโ€บ & @{term_type_only Union "'a set set\'a set"}\\
๐Ÿ‹โ€นInterโ€บ & @{term_type_only Inter "'a set set\'a set"}\\
๐Ÿ‹โ€นPowโ€บ & @{term_type_only Pow "'a set \'a set set"}\\
๐Ÿ‹โ€นUNIVโ€บ & @{term_type_only UNIV "'a set"}\\
๐Ÿ‹โ€นimageโ€บ & @{term_type_only image "('a\'b)\'a set\'b set"}\\
๐Ÿ‹โ€นBallโ€บ & @{term_type_only Ball "'a set\('a\bool)\bool"}\\
๐Ÿ‹โ€นBexโ€บ & @{term_type_only Bex "'a set\('a\bool)\bool"}\\
\end{tabular}

\subsubsection*{Syntax}

\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l l @ {}}
โ€น{a๐Ÿšซ1,โ€ฆ,a๐Ÿšซn}โ€บ & โ€นinsert a๐Ÿšซ1 (โ€ฆ (insert a๐Ÿšซn {})โ€ฆ)โ€บ\\
๐Ÿ‹โ€นโˆ‰ Aโ€บ & @{term[source]"\(x \ A)"}\\
๐Ÿ‹โ€นโІ Bโ€บ & @{term[source]"A \ B"}\\
๐Ÿ‹โ€นโŠ‚ Bโ€บ & @{term[source]"A < B"}\\
@{term[source]"A \ B"} & @{term[source]"B \ A"}\\
@{term[source]"A \ B"} & @{term[source]"B < A"}\\
๐Ÿ‹โ€น{x. P}โ€บ & @{term[source]"Collect (\x. P)"}\\
โ€น{t | x๐Ÿšซโ€ฆ x๐Ÿšซn. P}โ€บ & โ€น{v. โˆƒx๐Ÿšซโ€ฆ x๐Ÿšซn. v = t โˆง P}โ€บ\\
@{term[source]"\x\I. A"} & @{term[source]"\((\x. A) ` I)"} & (\texttt{UN})\\
@{term[source]"\x. A"} & @{term[source]"\((\x. A) ` UNIV)"}\\
@{term[source]"\x\I. A"} & @{term[source]"\((\x. A) ` I)"} & (\texttt{INT})\\
@{term[source]"\x. A"} & @{term[source]"\((\x. A) ` UNIV)"}\\
๐Ÿ‹โ€นโˆ€xโˆˆA. Pโ€บ & @{term[source]"Ball A (\x. P)"}\\
๐Ÿ‹โ€นโˆƒxโˆˆA. Pโ€บ & @{term[source]"Bex A (\x. P)"}\\
๐Ÿ‹โ€นrange fโ€บ & @{term[source]"f ` UNIV"}\\
\end{tabular}


\section*{Fun}

\begin{tabular}{@ {} l @ {~::~} l l @ {}}
๐Ÿ‹โ€นFun.idโ€บ & ๐Ÿšซโ€นFun.idโ€บ\\
๐Ÿ‹โ€นFun.compโ€บ & ๐Ÿšซโ€นFun.compโ€บ & (\texttt{o})\\
๐Ÿ‹โ€นFun.inj_onโ€บ & @{term_type_only Fun.inj_on "('a\'b)\'a set\bool"}\\
๐Ÿ‹โ€นFun.injโ€บ & ๐Ÿšซโ€นFun.injโ€บ\\
๐Ÿ‹โ€นFun.surjโ€บ & ๐Ÿšซโ€นFun.surjโ€บ\\
๐Ÿ‹โ€นFun.bijโ€บ & ๐Ÿšซโ€นFun.bijโ€บ\\
๐Ÿ‹โ€นFun.bij_betwโ€บ & @{term_type_only Fun.bij_betw "('a\'b)\'a set\'b set\bool"}\\
๐Ÿ‹โ€นFun.monotone_onโ€บ & ๐Ÿšซโ€นFun.monotone_onโ€บ\\
๐Ÿ‹โ€นFun.monotoneโ€บ & ๐Ÿšซโ€นFun.monotoneโ€บ\\
๐Ÿ‹โ€นFun.mono_onโ€บ & ๐Ÿšซโ€นFun.mono_onโ€บ\\
๐Ÿ‹โ€นFun.monoโ€บ & ๐Ÿšซโ€นFun.monoโ€บ\\
๐Ÿ‹โ€นFun.strict_mono_onโ€บ & ๐Ÿšซโ€นFun.strict_mono_onโ€บ\\
๐Ÿ‹โ€นFun.strict_monoโ€บ & ๐Ÿšซโ€นFun.strict_monoโ€บ\\
๐Ÿ‹โ€นFun.antimonoโ€บ & ๐Ÿšซโ€นFun.antimonoโ€บ\\
๐Ÿ‹โ€นFun.fun_updโ€บ & ๐Ÿšซโ€นFun.fun_updโ€บ\\
\end{tabular}

\subsubsection*{Syntax}

\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
๐Ÿ‹โ€นfun_upd f x yโ€บ & @{term[source]"fun_upd f x y"}\\
โ€นf(x๐Ÿšซ1:=y๐Ÿšซ1,โ€ฆ,x๐Ÿšซn:=y๐Ÿšซn)โ€บ & โ€นf(x๐Ÿšซ1:=y๐Ÿšซ1)โ€ฆ(x๐Ÿšซn:=y๐Ÿšซn)โ€บ\\
\end{tabular}


\section*{Hilbert\_Choice}

Hilbert's selection ($\varepsilon$) operator: \<^term>\SOME x. P\.
๐Ÿšซ

\begin{tabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นHilbert_Choice.inv_intoโ€บ & @{term_type_only Hilbert_Choice.inv_into "'a set \ ('a \ 'b) \ ('b \ 'a)"}
\end{tabular}

\subsubsection*{Syntax}

\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
๐Ÿ‹โ€นinvโ€บ & @{term[source]"inv_into UNIV"}
\end{tabular}

\section*{Fixed Points}

Theory๐Ÿ‹โ€นHOL.Inductiveโ€บ.

Least and greatest fixed points in a complete lattice ๐Ÿ‹โ€น'a\:

\begin{tabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นInductive.lfpโ€บ & ๐Ÿšซโ€นInductive.lfpโ€บ\\
๐Ÿ‹โ€นInductive.gfpโ€บ & ๐Ÿšซโ€นInductive.gfpโ€บ\\
\end{tabular}

Note that in particular sets (๐Ÿ‹โ€น'a \ bool\) are complete lattices.

\section*{Sum\_Type}

Type constructor โ€น+โ€บ.

\begin{tabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นSum_Type.Inlโ€บ & ๐Ÿšซโ€นSum_Type.Inlโ€บ\\
๐Ÿ‹โ€นSum_Type.Inrโ€บ & ๐Ÿšซโ€นSum_Type.Inrโ€บ\\
๐Ÿ‹โ€นSum_Type.Plusโ€บ & @{term_type_only Sum_Type.Plus "'a set\'b set\('a+'b)set"}
\end{tabular}


\section*{Product\_Type}

Types ๐Ÿ‹โ€นunitโ€บ and โ€นร—โ€บ.

\begin{tabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นProduct_Type.Unityโ€บ & ๐Ÿšซโ€นProduct_Type.Unityโ€บ\\
๐Ÿ‹โ€นPairโ€บ & ๐Ÿšซโ€นPairโ€บ\\
๐Ÿ‹โ€นfstโ€บ & ๐Ÿšซโ€นfstโ€บ\\
๐Ÿ‹โ€นsndโ€บ & ๐Ÿšซโ€นsndโ€บ\\
๐Ÿ‹โ€นcase_prodโ€บ & ๐Ÿšซโ€นcase_prodโ€บ\\
๐Ÿ‹โ€นcurryโ€บ & ๐Ÿšซโ€นcurryโ€บ\\
๐Ÿ‹โ€นProduct_Type.Sigmaโ€บ & @{term_type_only Product_Type.Sigma "'a set\('a\'b set)\('a*'b)set"}\\
\end{tabular}

\subsubsection*{Syntax}

\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} ll @ {}}
๐Ÿ‹โ€นPair a bโ€บ & @{term[source]"Pair a b"}\\
๐Ÿ‹โ€นcase_prod (λx y. t)โ€บ & @{term[source]"case_prod (\x y. t)"}\\
๐Ÿ‹โ€นร— Bโ€บ &  โ€นSigma A (λ๐Ÿ‹โ€น\_โ€บ. B)โ€บ
\end{tabular}

Pairs may be nested. Nesting to the right is printed as a tuple,
e.g.\mbox{๐Ÿ‹โ€น(a,b,c)โ€บis really \mbox{โ€น(a, (b, c))โ€บ.}
Pattern matching with pairs and tuples extends to all binders,
e.g.\mbox{๐Ÿ‹โ€นโˆ€(x,y)โˆˆA. Pโ€บ,} ๐Ÿ‹โ€น{(x,y). P}โ€บ, etc.


\section*{Relation}

\begin{supertabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นRelation.converseโ€บ & @{term_type_only Relation.converse "('a * 'b)set \ ('b*'a)set"}\\
๐Ÿ‹โ€นRelation.relcompโ€บ & @{term_type_only Relation.relcomp "('a*'b)set\('b*'c)set\('a*'c)set"}\\
๐Ÿ‹โ€นRelation.Imageโ€บ & @{term_type_only Relation.Image "('a*'b)set\'a set\'b set"}\\
๐Ÿ‹โ€นRelation.inv_imageโ€บ & @{term_type_only Relation.inv_image "('a*'a)set\('b\'a)\('b*'b)set"}\\
๐Ÿ‹โ€นRelation.Id_onโ€บ & @{term_type_only Relation.Id_on "'a set\('a*'a)set"}\\
๐Ÿ‹โ€นRelation.Idโ€บ & @{term_type_only Relation.Id "('a*'a)set"}\\
๐Ÿ‹โ€นRelation.Domainโ€บ & @{term_type_only Relation.Domain "('a*'b)set\'a set"}\\
๐Ÿ‹โ€นRelation.Rangeโ€บ & @{term_type_only Relation.Range "('a*'b)set\'b set"}\\
๐Ÿ‹โ€นRelation.Fieldโ€บ & @{term_type_only Relation.Field "('a*'a)set\'a set"}\\
๐Ÿ‹โ€นRelation.refl_onโ€บ & @{term_type_only Relation.refl_on "'a set\('a*'a)set\bool"}\\
๐Ÿ‹โ€นRelation.reflโ€บ & @{term_type_only Relation.refl "('a*'a)set\bool"}\\
๐Ÿ‹โ€นRelation.symโ€บ & @{term_type_only Relation.sym "('a*'a)set\bool"}\\
๐Ÿ‹โ€นRelation.antisymโ€บ & @{term_type_only Relation.antisym "('a*'a)set\bool"}\\
๐Ÿ‹โ€นRelation.transโ€บ & @{term_type_only Relation.trans "('a*'a)set\bool"}\\
๐Ÿ‹โ€นRelation.irreflโ€บ & @{term_type_only Relation.irrefl "('a*'a)set\bool"}\\
๐Ÿ‹โ€นRelation.total_onโ€บ & @{term_type_only Relation.total_on "'a set\('a*'a)set\bool"}\\
๐Ÿ‹โ€นRelation.totalโ€บ & @{term_type_only Relation.total "('a*'a)set\bool"}\\
\end{supertabular}

\subsubsection*{Syntax}

\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l l @ {}}
๐Ÿ‹โ€นconverse rโ€บ & @{term[source]"converse r"} & (๐Ÿ‹โ€น^-1โ€บ)
\end{tabular}
๐Ÿšซ

\noindent
Type synonym ๐Ÿ‹โ€น'a rel\ \=\ @{expanded_typ "'a rel"}

\section*{Equiv\_Relations}

\begin{tabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นEquiv_Relations.equivโ€บ & @{term_type_only Equiv_Relations.equiv "'a set \ ('a*'a)set\bool"}\\
๐Ÿ‹โ€นEquiv_Relations.quotientโ€บ & @{term_type_only Equiv_Relations.quotient "'a set \ ('a \ 'a) set \ 'a set set"}\\
๐Ÿ‹โ€นEquiv_Relations.congruentโ€บ & @{term_type_only Equiv_Relations.congruent "('a*'a)set\('a\'b)\bool"}\\
๐Ÿ‹โ€นEquiv_Relations.congruent2โ€บ & @{term_type_only Equiv_Relations.congruent2 "('a*'a)set\('b*'b)set\('a\'b\'c)\bool"}\\
%@ {const Equiv_Relations.} & @ {term_type_only Equiv_Relations. ""}\\
\end{tabular}

\subsubsection*{Syntax}

\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
๐Ÿ‹โ€นcongruent r fโ€บ & @{term[source]"congruent r f"}\\
๐Ÿ‹โ€นcongruent2 r r fโ€บ & @{term[source]"congruent2 r r f"}\\
\end{tabular}


\section*{Transitive\_Closure}

\begin{tabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นTransitive_Closure.rtranclโ€บ & @{term_type_only Transitive_Closure.rtrancl "('a*'a)set\('a*'a)set"}\\
๐Ÿ‹โ€นTransitive_Closure.tranclโ€บ & @{term_type_only Transitive_Closure.trancl "('a*'a)set\('a*'a)set"}\\
๐Ÿ‹โ€นTransitive_Closure.reflclโ€บ & @{term_type_only Transitive_Closure.reflcl "('a*'a)set\('a*'a)set"}\\
๐Ÿ‹โ€นTransitive_Closure.acyclicโ€บ & @{term_type_only Transitive_Closure.acyclic "('a*'a)set\bool"}\\
๐Ÿ‹โ€นcompowerโ€บ & @{term_type_only "(^^) :: ('a*'a)set\nat\('a*'a)set" "('a*'a)set\nat\('a*'a)set"}\\
\end{tabular}

\subsubsection*{Syntax}

\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l l @ {}}
๐Ÿ‹โ€นrtrancl rโ€บ & @{term[source]"rtrancl r"} & (๐Ÿ‹โ€น^*โ€บ)\\
๐Ÿ‹โ€นtrancl rโ€บ & @{term[source]"trancl r"} & (๐Ÿ‹โ€น^+โ€บ)\\
๐Ÿ‹โ€นreflcl rโ€บ & @{term[source]"reflcl r"} & (๐Ÿ‹โ€น^=โ€บ)
\end{tabular}


\section*{Algebra}

Theories ๐Ÿ‹โ€นHOL.Groupsโ€บ๐Ÿ‹โ€นHOL.Ringsโ€บ,
๐Ÿ‹โ€นHOL.Euclidean_Ringsโ€บ and ๐Ÿ‹โ€นHOL.Fieldsโ€บ
define a large collection of classes describing common algebraic
structures from semigroups up to fields. Everything is done in terms of
overloaded operators:

\begin{tabular}{@ {} l @ {~::~} l l @ {}}
โ€น0โ€บ & ๐Ÿšซโ€นzeroโ€บ\\
โ€น1โ€บ & ๐Ÿšซโ€นoneโ€บ\\
๐Ÿ‹โ€นplusโ€บ & ๐Ÿšซโ€นplusโ€บ\\
๐Ÿ‹โ€นminusโ€บ & ๐Ÿšซโ€นminusโ€บ\\
๐Ÿ‹โ€นuminusโ€บ & ๐Ÿšซโ€นuminusโ€บ & (๐Ÿ‹โ€น-โ€บ)\\
๐Ÿ‹โ€นtimesโ€บ & ๐Ÿšซโ€นtimesโ€บ\\
๐Ÿ‹โ€นinverseโ€บ & ๐Ÿšซโ€นinverseโ€บ\\
๐Ÿ‹โ€นdivideโ€บ & ๐Ÿšซโ€นdivideโ€บ\\
๐Ÿ‹โ€นabsโ€บ & ๐Ÿšซโ€นabsโ€บ\\
๐Ÿ‹โ€นsgnโ€บ & ๐Ÿšซโ€นsgnโ€บ\\
๐Ÿ‹โ€นRings.dvdโ€บ & ๐Ÿšซโ€นRings.dvdโ€บ\\
๐Ÿ‹โ€นdivideโ€บ & ๐Ÿšซโ€นdivideโ€บ\\
๐Ÿ‹โ€นmoduloโ€บ & ๐Ÿšซโ€นmoduloโ€บ\\
\end{tabular}

\subsubsection*{Syntax}

\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
๐Ÿ‹โ€นโˆฃxโˆฃโ€บ & @{term[source] "abs x"}
\end{tabular}


\section*{Nat}

๐Ÿšซโ€นnatโ€บ
๐Ÿšซ

\begin{tabular}{@ {} lllllll @ {}}
๐Ÿ‹โ€น(+) :: nat ==> nat ==> natโ€บ &
๐Ÿ‹โ€น(-) :: nat ==> nat ==> natโ€บ &
๐Ÿ‹โ€น(*) :: nat \<Rightarrow> nat \<Rightarrow> nat\<close> &
๐Ÿ‹โ€น(^) :: nat ==> nat ==> natโ€บ &
๐Ÿ‹โ€น(div) :: nat ==> nat ==> natโ€บ&
๐Ÿ‹โ€น(mod) :: nat ==> nat ==> natโ€บ&
๐Ÿ‹โ€น(dvd) :: nat ==> nat ==> boolโ€บ\\
๐Ÿ‹โ€น(โ‰ค) :: nat ==> nat ==> boolโ€บ &
๐Ÿ‹โ€น(<) :: nat ==> nat ==> boolโ€บ &
๐Ÿ‹โ€นmin :: nat ==> nat ==> natโ€บ &
๐Ÿ‹โ€นmax :: nat ==> nat ==> natโ€บ &
๐Ÿ‹โ€นMin :: nat set ==> natโ€บ &
๐Ÿ‹โ€นMax :: nat set ==> natโ€บ\\
\end{tabular}

\begin{tabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นNat.of_natโ€บ & ๐Ÿšซโ€นNat.of_natโ€บ\\
๐Ÿ‹โ€น(^^) :: ('a \ 'a) ==> nat ==> 'a \ 'aโ€บ &
  @{term_type_only "(^^) :: ('a \ 'a) \ nat \ 'a \ 'a" "('a \ 'a) \ nat \ 'a \ 'a"}
\end{tabular}

\section*{Int}

Type ๐Ÿ‹โ€นintโ€บ
๐Ÿšซ

\begin{tabular}{@ {} llllllll @ {}}
๐Ÿ‹โ€น(+) :: int ==> int ==> intโ€บ &
๐Ÿ‹โ€น(-) :: int ==> int ==> intโ€บ &
๐Ÿ‹โ€นuminus :: int ==> intโ€บ &
๐Ÿ‹โ€น(*) :: int \<Rightarrow> int \<Rightarrow> int\<close> &
๐Ÿ‹โ€น(^) :: int ==> nat ==> intโ€บ &
๐Ÿ‹โ€น(div) :: int ==> int ==> intโ€บ&
๐Ÿ‹โ€น(mod) :: int ==> int ==> intโ€บ&
๐Ÿ‹โ€น(dvd) :: int ==> int ==> boolโ€บ\\
๐Ÿ‹โ€น(โ‰ค) :: int ==> int ==> boolโ€บ &
๐Ÿ‹โ€น(<) :: int ==> int ==> boolโ€บ &
๐Ÿ‹โ€นmin :: int ==> int ==> intโ€บ &
๐Ÿ‹โ€นmax :: int ==> int ==> intโ€บ &
๐Ÿ‹โ€นMin :: int set ==> intโ€บ &
๐Ÿ‹โ€นMax :: int set ==> intโ€บ\\
๐Ÿ‹โ€นabs :: int ==> intโ€บ &
๐Ÿ‹โ€นsgn :: int ==> intโ€บ\\
\end{tabular}

\begin{tabular}{@ {} l @ {~::~} l l @ {}}
๐Ÿ‹โ€นInt.natโ€บ & ๐Ÿšซโ€นInt.natโ€บ\\
๐Ÿ‹โ€นInt.of_intโ€บ & ๐Ÿšซโ€นInt.of_intโ€บ\\
๐Ÿ‹โ€นInt.Intsโ€บ & @{term_type_only Int.Ints "'a::ring_1 set"} & (๐Ÿ‹โ€นIntsโ€บ)
\end{tabular}

\subsubsection*{Syntax}

\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
๐Ÿ‹โ€นof_nat::nat==>intโ€บ & @{term[source]"of_nat"}\\
\end{tabular}


\section*{Finite\_Set}

\begin{tabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นFinite_Set.finiteโ€บ & @{term_type_only Finite_Set.finite "'a set\bool"}\\
๐Ÿ‹โ€นFinite_Set.cardโ€บ & @{term_type_only Finite_Set.card "'a set \ nat"}\\
๐Ÿ‹โ€นFinite_Set.foldโ€บ & @{term_type_only Finite_Set.fold "('a \ 'b \ 'b) \ 'b \ 'a set \ 'b"}\\
\end{tabular}


\section*{Lattices\_Big}

\begin{tabular}{@ {} l @ {~::~} l l @ {}}
๐Ÿ‹โ€นLattices_Big.Minโ€บ & ๐Ÿšซโ€นLattices_Big.Minโ€บ\\
๐Ÿ‹โ€นLattices_Big.Maxโ€บ & ๐Ÿšซโ€นLattices_Big.Maxโ€บ\\
๐Ÿ‹โ€นLattices_Big.arg_minโ€บ & ๐Ÿšซโ€นLattices_Big.arg_minโ€บ\\
๐Ÿ‹โ€นLattices_Big.is_arg_minโ€บ & ๐Ÿšซโ€นLattices_Big.is_arg_minโ€บ\\
๐Ÿ‹โ€นLattices_Big.arg_maxโ€บ & ๐Ÿšซโ€นLattices_Big.arg_maxโ€บ\\
๐Ÿ‹โ€นLattices_Big.is_arg_maxโ€บ & ๐Ÿšซโ€นLattices_Big.is_arg_maxโ€บ\\
\end{tabular}

\subsubsection*{Syntax}

\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l l @ {}}
๐Ÿ‹โ€นARG_MIN f x. Pโ€บ & @{term[source]"arg_min f (\x. P)"}\\
๐Ÿ‹โ€นARG_MAX f x. Pโ€บ & @{term[source]"arg_max f (\x. P)"}\\
\end{tabular}


\section*{Groups\_Big}

\begin{tabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นGroups_Big.sumโ€บ & @{term_type_only Groups_Big.sum "('a \ 'b) \ 'a set \ 'b::comm_monoid_add"}\\
๐Ÿ‹โ€นGroups_Big.prodโ€บ & @{term_type_only Groups_Big.prod "('a \ 'b) \ 'a set \ 'b::comm_monoid_mult"}\\
\end{tabular}


\subsubsection*{Syntax}

\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l l @ {}}
๐Ÿ‹โ€นsum (λx. x) Aโ€บ & @{term[source]"sum (\x. x) A"} & (๐Ÿ‹โ€นSUMโ€บ)\\
๐Ÿ‹โ€นsum (λx. t) Aโ€บ & @{term[source]"sum (\x. t) A"}\\
@{term[source] "\x|P. t"} & ๐Ÿ‹โ€นโˆ‘x|P. tโ€บ\\
\multicolumn{2}{@ {}l@ {}}{Similarly for โ€นโˆโ€บ instead of โ€นโˆ‘โ€บ} & (๐Ÿ‹โ€นPRODโ€บ)\\
\end{tabular}


\section*{Wellfounded}

\begin{tabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นWellfounded.wfโ€บ & @{term_type_only Wellfounded.wf "('a*'a)set\bool"}\\
๐Ÿ‹โ€นWellfounded.accโ€บ & @{term_type_only Wellfounded.acc "('a*'a)set\'a set"}\\
๐Ÿ‹โ€นWellfounded.measureโ€บ & @{term_type_only Wellfounded.measure "('a\nat)\('a*'a)set"}\\
๐Ÿ‹โ€นWellfounded.lex_prodโ€บ & @{term_type_only Wellfounded.lex_prod "('a*'a)set\('b*'b)set\(('a*'b)*('a*'b))set"}\\
๐Ÿ‹โ€นWellfounded.mlex_prodโ€บ & @{term_type_only Wellfounded.mlex_prod "('a\nat)\('a*'a)set\('a*'a)set"}\\
๐Ÿ‹โ€นWellfounded.less_thanโ€บ & @{term_type_only Wellfounded.less_than "(nat*nat)set"}\\
๐Ÿ‹โ€นWellfounded.pred_natโ€บ & @{term_type_only Wellfounded.pred_nat "(nat*nat)set"}\\
\end{tabular}


\section*{Set\_Interval} % ๐Ÿ‹โ€นHOL.Set_Intervalโ€บ

\begin{tabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นlessThanโ€บ & @{term_type_only lessThan "'a::ord \ 'a set"}\\
๐Ÿ‹โ€นatMostโ€บ & @{term_type_only atMost "'a::ord \ 'a set"}\\
๐Ÿ‹โ€นgreaterThanโ€บ & @{term_type_only greaterThan "'a::ord \ 'a set"}\\
๐Ÿ‹โ€นatLeastโ€บ & @{term_type_only atLeast "'a::ord \ 'a set"}\\
๐Ÿ‹โ€นgreaterThanLessThanโ€บ & @{term_type_only greaterThanLessThan "'a::ord \ 'a \ 'a set"}\\
๐Ÿ‹โ€นatLeastLessThanโ€บ & @{term_type_only atLeastLessThan "'a::ord \ 'a \ 'a set"}\\
๐Ÿ‹โ€นgreaterThanAtMostโ€บ & @{term_type_only greaterThanAtMost "'a::ord \ 'a \ 'a set"}\\
๐Ÿ‹โ€นatLeastAtMostโ€บ & @{term_type_only atLeastAtMost "'a::ord \ 'a \ 'a set"}\\
\end{tabular}

\subsubsection*{Syntax}

\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
๐Ÿ‹โ€นlessThan yโ€บ & @{term[source] "lessThan y"}\\
๐Ÿ‹โ€นatMost yโ€บ & @{term[source] "atMost y"}\\
๐Ÿ‹โ€นgreaterThan xโ€บ & @{term[source] "greaterThan x"}\\
๐Ÿ‹โ€นatLeast xโ€บ & @{term[source] "atLeast x"}\\
๐Ÿ‹โ€นgreaterThanLessThan x yโ€บ & @{term[source] "greaterThanLessThan x y"}\\
๐Ÿ‹โ€นatLeastLessThan x yโ€บ & @{term[source] "atLeastLessThan x y"}\\
๐Ÿ‹โ€นgreaterThanAtMost x yโ€บ & @{term[source] "greaterThanAtMost x y"}\\
๐Ÿ‹โ€นatLeastAtMost x yโ€บ & @{term[source] "atLeastAtMost x y"}\\
@{term[source] "\i\n. A"} & @{term[source] "\i \ {..n}. A"}\\
@{term[source] "\i} & @{term[source] "\i \ {..}\\
\multicolumn{2}{@ {}l@ {}}{Similarly for โ€นโˆฉโ€บ instead of โ€นโˆชโ€บ}\\
๐Ÿ‹โ€นsum (λx. t) {a..b}โ€บ & @{term[source] "sum (\x. t) {a..b}"}\\
๐Ÿ‹โ€นsum (λx. t) {a..<b}โ€บ & @{term[source] "sum (\x. t) {a..}\\
๐Ÿ‹โ€นsum (λx. t) {..b}โ€บ & @{term[source] "sum (\x. t) {..b}"}\\
๐Ÿ‹โ€นsum (λx. t) {..<b}โ€บ & @{term[source] "sum (\x. t) {..}\\
\multicolumn{2}{@ {}l@ {}}{Similarly for โ€นโˆโ€บ instead of โ€นโˆ‘โ€บ}\\
\end{tabular}


\section*{Power}

\begin{tabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นPower.powerโ€บ & ๐Ÿšซโ€นPower.powerโ€บ
\end{tabular}


\section*{Option}

๐Ÿšซโ€นoptionโ€บ
๐Ÿšซ

\begin{tabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นOption.theโ€บ & ๐Ÿšซโ€นOption.theโ€บ\\
๐Ÿ‹โ€นmap_optionโ€บ & @{typ[source]"('a \ 'b) \ 'a option \ 'b option"}\\
๐Ÿ‹โ€นset_optionโ€บ & @{term_type_only set_option "'a option \ 'a set"}\\
๐Ÿ‹โ€นOption.bindโ€บ & @{term_type_only Option.bind "'a option \ ('a \ 'b option) \ 'b option"}
\end{tabular}

\section*{List}

๐Ÿšซโ€นlistโ€บ
๐Ÿšซ

\begin{supertabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นList.appendโ€บ & ๐Ÿšซโ€นList.appendโ€บ\\
๐Ÿ‹โ€นList.butlastโ€บ & ๐Ÿšซโ€นList.butlastโ€บ\\
๐Ÿ‹โ€นList.concatโ€บ & ๐Ÿšซโ€นList.concatโ€บ\\
๐Ÿ‹โ€นList.distinctโ€บ & ๐Ÿšซโ€นList.distinctโ€บ\\
๐Ÿ‹โ€นList.dropโ€บ & ๐Ÿšซโ€นList.dropโ€บ\\
๐Ÿ‹โ€นList.dropWhileโ€บ & ๐Ÿšซโ€นList.dropWhileโ€บ\\
๐Ÿ‹โ€นList.filterโ€บ & ๐Ÿšซโ€นList.filterโ€บ\\
๐Ÿ‹โ€นList.findโ€บ & ๐Ÿšซโ€นList.findโ€บ\\
๐Ÿ‹โ€นList.foldโ€บ & ๐Ÿšซโ€นList.foldโ€บ\\
๐Ÿ‹โ€นList.foldrโ€บ & ๐Ÿšซโ€นList.foldrโ€บ\\
๐Ÿ‹โ€นList.foldlโ€บ & ๐Ÿšซโ€นList.foldlโ€บ\\
๐Ÿ‹โ€นList.hdโ€บ & ๐Ÿšซโ€นList.hdโ€บ\\
๐Ÿ‹โ€นList.lastโ€บ & ๐Ÿšซโ€นList.lastโ€บ\\
๐Ÿ‹โ€นList.lengthโ€บ & ๐Ÿšซโ€นList.lengthโ€บ\\
๐Ÿ‹โ€นList.lenlexโ€บ & @{term_type_only List.lenlex "('a*'a)set\('a list * 'a list)set"}\\
๐Ÿ‹โ€นList.lexโ€บ & @{term_type_only List.lex "('a*'a)set\('a list * 'a list)set"}\\
๐Ÿ‹โ€นList.lexnโ€บ & @{term_type_only List.lexn "('a*'a)set\nat\('a list * 'a list)set"}\\
๐Ÿ‹โ€นList.lexordโ€บ & @{term_type_only List.lexord "('a*'a)set\('a list * 'a list)set"}\\
๐Ÿ‹โ€นList.listrelโ€บ & @{term_type_only List.listrel "('a*'b)set\('a list * 'b list)set"}\\
๐Ÿ‹โ€นList.listrel1โ€บ & @{term_type_only List.listrel1 "('a*'a)set\('a list * 'a list)set"}\\
๐Ÿ‹โ€นList.listsโ€บ & @{term_type_only List.lists "'a set\'a list set"}\\
๐Ÿ‹โ€นList.listsetโ€บ & @{term_type_only List.listset "'a set list \ 'a list set"}\\
๐Ÿ‹โ€นList.list_all2โ€บ & ๐Ÿšซโ€นList.list_all2โ€บ\\
๐Ÿ‹โ€นList.list_updateโ€บ & ๐Ÿšซโ€นList.list_updateโ€บ\\
๐Ÿ‹โ€นList.mapโ€บ & ๐Ÿšซโ€นList.mapโ€บ\\
๐Ÿ‹โ€นList.measuresโ€บ & @{term_type_only List.measures "('a\nat)list\('a*'a)set"}\\
๐Ÿ‹โ€นList.nthโ€บ & ๐Ÿšซโ€นList.nthโ€บ\\
๐Ÿ‹โ€นList.nthsโ€บ & ๐Ÿšซโ€นList.nthsโ€บ\\
๐Ÿ‹โ€นGroups_List.prod_listโ€บ & ๐Ÿšซโ€นGroups_List.prod_listโ€บ\\
๐Ÿ‹โ€นList.remdupsโ€บ & ๐Ÿšซโ€นList.remdupsโ€บ\\
๐Ÿ‹โ€นList.removeAllโ€บ & ๐Ÿšซโ€นList.removeAllโ€บ\\
๐Ÿ‹โ€นList.remove1โ€บ & ๐Ÿšซโ€นList.remove1โ€บ\\
๐Ÿ‹โ€นList.replicateโ€บ & ๐Ÿšซโ€นList.replicateโ€บ\\
๐Ÿ‹โ€นList.revโ€บ & ๐Ÿšซโ€นList.revโ€บ\\
๐Ÿ‹โ€นList.rotateโ€บ & ๐Ÿšซโ€นList.rotateโ€บ\\
๐Ÿ‹โ€นList.rotate1โ€บ & ๐Ÿšซโ€นList.rotate1โ€บ\\
๐Ÿ‹โ€นList.setโ€บ & @{term_type_only List.set "'a list \ 'a set"}\\
๐Ÿ‹โ€นList.shufflesโ€บ & ๐Ÿšซโ€นList.shufflesโ€บ\\
๐Ÿ‹โ€นList.sortโ€บ & ๐Ÿšซโ€นList.sortโ€บ\\
๐Ÿ‹โ€นList.sortedโ€บ & ๐Ÿšซโ€นList.sortedโ€บ\\
๐Ÿ‹โ€นList.sorted_wrtโ€บ & ๐Ÿšซโ€นList.sorted_wrtโ€บ\\
๐Ÿ‹โ€นList.spliceโ€บ & ๐Ÿšซโ€นList.spliceโ€บ\\
๐Ÿ‹โ€นGroups_List.sum_listโ€บ & ๐Ÿšซโ€นGroups_List.sum_listโ€บ\\
๐Ÿ‹โ€นList.takeโ€บ & ๐Ÿšซโ€นList.takeโ€บ\\
๐Ÿ‹โ€นList.takeWhileโ€บ & ๐Ÿšซโ€นList.takeWhileโ€บ\\
๐Ÿ‹โ€นList.tlโ€บ & ๐Ÿšซโ€นList.tlโ€บ\\
๐Ÿ‹โ€นList.uptโ€บ & ๐Ÿšซโ€นList.uptโ€บ\\
๐Ÿ‹โ€นList.uptoโ€บ & ๐Ÿšซโ€นList.uptoโ€บ\\
๐Ÿ‹โ€นList.zipโ€บ & ๐Ÿšซโ€นList.zipโ€บ\\
\end{supertabular}

\subsubsection*{Syntax}

\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
โ€น[x๐Ÿšซ1,โ€ฆ,x๐Ÿšซn]โ€บ & โ€นx๐Ÿšซ1 # โ€ฆ # x๐Ÿšซn # []โ€บ\\
๐Ÿ‹โ€น[m..<n]โ€บ & @{term[source]"upt m n"}\\
๐Ÿ‹โ€น[i..j]โ€บ & @{term[source]"upto i j"}\\
๐Ÿ‹โ€นxs[n := x]โ€บ & @{term[source]"list_update xs n x"}\\
๐Ÿ‹โ€นโˆ‘xxs. eโ€บ & @{term[source]"listsum (map (\x. e) xs)"}\\
\end{tabular}
๐Ÿšซ

Filter input syntax โ€น[pat  e. b]โ€บwhere
โ€นpatโ€บ is a tuple pattern, which stands for ๐Ÿ‹โ€นfilter (λpat. b) eโ€บ.

List comprehension input syntaxโ€น[e. q๐Ÿšซ1, โ€ฆ, q๐Ÿšซn]โ€บ where each
qualifier โ€นq๐Ÿšซiโ€บ is either a generator \mbox{โ€นpat  eโ€บ} or a
guard, i.e.boolean expression.

\section*{Map}

Maps model partial functions and are often used as finite tables. However,
the domain of a map may be infinite.

\begin{tabular}{@ {} l @ {~::~} l @ {}}
๐Ÿ‹โ€นMap.emptyโ€บ & ๐Ÿšซโ€นMap.emptyโ€บ\\
๐Ÿ‹โ€นMap.map_addโ€บ & ๐Ÿšซโ€นMap.map_addโ€บ\\
๐Ÿ‹โ€นMap.map_compโ€บ & ๐Ÿšซโ€นMap.map_compโ€บ\\
๐Ÿ‹โ€นMap.restrict_mapโ€บ & @{term_type_only Map.restrict_map "('a\'b option)\'a set\('a\'b option)"}\\
๐Ÿ‹โ€นMap.domโ€บ & @{term_type_only Map.dom "('a\'b option)\'a set"}\\
๐Ÿ‹โ€นMap.ranโ€บ & @{term_type_only Map.ran "('a\'b option)\'b set"}\\
๐Ÿ‹โ€นMap.map_leโ€บ & ๐Ÿšซโ€นMap.map_leโ€บ\\
๐Ÿ‹โ€นMap.map_ofโ€บ & ๐Ÿšซโ€นMap.map_ofโ€บ\\
๐Ÿ‹โ€นMap.map_updsโ€บ & ๐Ÿšซโ€นMap.map_updsโ€บ\\
\end{tabular}

\subsubsection*{Syntax}

\begin{tabular}{@ {} l @ {\quad$\equiv$\quad} l @ {}}
๐Ÿ‹โ€นMap.emptyโ€บ & @{term[source] "\_. None"}\\
๐Ÿ‹โ€นm(x:=Some y)โ€บ & @{term[source]"m(x:=Some y)"}\\
โ€นm(x๐Ÿšซ1โ†ฆy๐Ÿšซ1,โ€ฆ,x๐Ÿšซnโ†ฆy๐Ÿšซn)โ€บ & @{text[source]"m(x\<^sub>1\y\<^sub>1)\(x\<^sub>n\y\<^sub>n)"}\\
โ€น[x๐Ÿšซ1โ†ฆy๐Ÿšซ1,โ€ฆ,x๐Ÿšซnโ†ฆy๐Ÿšซn]โ€บ & @{text[source]"Map.empty(x\<^sub>1\y\<^sub>1,\,x\<^sub>n\y\<^sub>n)"}\\
๐Ÿ‹โ€นmap_upds m xs ysโ€บ & @{term[source]"map_upds m xs ys"}\\
\end{tabular}

\section*{Infix operators in Main} % ๐Ÿ‹โ€นMainโ€บ

\begin{center}
\begin{tabular}{llll}
 & Operator & precedence & associativity \\
\hline
Meta-logic & โ€น==>โ€บ & 1 & right \\
โ€นโ‰กโ€บ & 2 \\
\hline
Logic & โ€นโˆงโ€บ & 35 & right \\
&โ€นโˆจโ€บ & 30 & right \\
&โ€นโŸถโ€บโ€นโŸทโ€บ & 25 & right\\
&โ€น=โ€บโ€นโ‰ โ€บ & 50 & left\\
\hline
Orderings & โ€นโ‰คโ€บโ€น<โ€บโ€นโ‰ฅโ€บโ€น>โ€บ & 50 \\
\hline
Sets & โ€นโІโ€บโ€นโŠ‚โ€บโ€น๐Ÿšซโ€บโ€น๐Ÿšซโ€บ & 50 \\
&โ€นโˆˆโ€บโ€นโˆ‰โ€บ & 50 \\
&โ€นโˆฉโ€บ & 70 & left \\
&โ€นโˆชโ€บ & 65 & left \\
\hline
Functions and Relations & โ€นโˆ˜โ€บ & 55 & left\\
&โ€น`โ€บ & 90 & right\\
&โ€นOโ€บ & 75 & right\\
&โ€น``โ€บ & 90 & right\\
&โ€น^^โ€บ & 80 & right\\
\hline
Numbers & โ€น+โ€บโ€น-โ€บ & 65 & left \\
&โ€น*โ€บโ€น/โ€บ & 70 & left \\
&โ€นdivโ€บโ€นmodโ€บ & 70 & left\\
&โ€น^โ€บ & 80 & right\\
&โ€นdvdโ€บ & 50 \\
\hline
Lists & โ€น#โ€บโ€น@โ€บ & 65 & right\\
&โ€น!โ€บ & 100 & left
\end{tabular}
\end{center}
โ€บ
(*<*)
end
(*>*)

Messung V0.5
C=95 H=98 G=96

ยค Dauer der Verarbeitung: 0.42 Sekunden  ยค

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfรคltig zusammengestellt. Es wird jedoch weder Vollstรคndigkeit, noch Richtigkeit, noch Qualitรคt der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.