Theory Main
section ‹Main HOL›
text ‹
Classical Higher-order Logic -- only ``Main'', excluding real and
complex numbers etc.
›
Main
imports
Predicate_Compile
Quickcheck_Narrowing
Mirabelle
Extraction
Nunchaku
BNF_Greatest_Fixpoint
Filter
Conditionally_Complete_Lattices
Binomial
GCD
begin
subsection ‹Namespace cleanup›
hide_const (open)
czero cinfinite cfinite csum cone ctwo Csum cprod cexp image2 image2p vimage2p Gr Grp collect
fsts snds setl setr convol pick_middlep fstOp sndOp csquare relImage relInvImage Succ Shift
shift proj id_bnf
hide_fact (open) id_bnf_def type_definition_id_bnf_UNIV
subsection ‹Syntax cleanup›
no_notation
ordLeq2 (infix ‹<=o› 50) and
ordLeq3 (infix ‹≤o› 50) and
ordLess2 (infix ‹<o› 50) and
ordIso2 (infix ‹=o› 50) and
card_of (‹(‹open_block notation=‹mixfix card_of››|_|)›) and
BNF_Cardinal_Arithmetic.csum (infixr ‹+c› 65) and
BNF_Cardinal_Arithmetic.cprod (infixr ‹*c› 80) and
BNF_Cardinal_Arithmetic.cexp (infixr ‹^c› 90) and
BNF_Def.convol (‹(‹indent=1 notation=‹mixfix convol››⟨_,/ _⟩)›)
bundle cardinal_syntax
begin
notation
ordLeq2 (infix ‹<=o› 50) and
ordLeq3 (infix ‹≤o› 50) and
ordLess2 (infix ‹<o› 50) and
ordIso2 (infix ‹=o› 50) and
card_of (‹(‹open_block notation=‹mixfix card_of››|_|)›) and
BNF_Cardinal_Arithmetic.csum (infixr ‹+c› 65) and
BNF_Cardinal_Arithmetic.cprod (infixr ‹*c› 80) and
BNF_Cardinal_Arithmetic.cexp (infixr ‹^c› 90)
alias cinfinite = BNF_Cardinal_Arithmetic.cinfinite
alias czero = BNF_Cardinal_Arithmetic.czero
alias cone = BNF_Cardinal_Arithmetic.cone
alias ctwo = BNF_Cardinal_Arithmetic.ctwo
end
subsection ‹Lattice syntax›
bundle lattice_syntax
begin
notation
bot (‹⊥›) and
top (‹⊤›) and
inf (infixl ‹⊓› 70) and
sup (infixl ‹⊔› 65) and
Inf (‹(‹open_block notation=‹prefix ⨅››⨅ _)› [900] 900) and
Sup (‹(‹open_block notation=‹prefix ⨆››⨆ _)› [900] 900)
syntax
"_INF1" :: "pttrns ⇒ 'b ⇒ 'b" (‹(‹indent=3 notation=‹binder ⨅››⨅_./ _)› [0, 10] 10)
"_INF" :: "pttrn ⇒ 'a set ⇒ 'b ⇒ 'b" (‹(‹indent=3 notation=‹binder ⨅››⨅_∈_./ _)› [0, 0, 10] 10)
"_SUP1" :: "pttrns ⇒ 'b ⇒ 'b" (‹(‹indent=3 notation=‹binder ⨆››⨆_./ _)› [0, 10] 10)
"_SUP" :: "pttrn ⇒ 'a set ⇒ 'b ⇒ 'b" (‹(‹indent=3 notation=‹binder ⨆››⨆_∈_./ _)› [0, 0, 10] 10)
end
unbundle no lattice_syntax
end