Theory Cblinfun_Code_Examples
section ‹‹Cblinfun_Code_Examples› -- Examples and test cases for code generation›
theory Cblinfun_Code_Examples
imports
"Complex_Bounded_Operators.Extra_Pretty_Code_Examples"
Jordan_Normal_Form.Matrix_Impl
"HOL-Library.Code_Target_Numeral"
Cblinfun_Code
begin
hide_const (open) Order.bottom Order.top
no_notation Lattice.join (infixl "⊔ı" 65)
no_notation Lattice.meet (infixl "⊓ı" 70)
unbundle lattice_syntax
unbundle cblinfun_notation
section ‹Examples›
subsection ‹Operators›
value "id_cblinfun :: bool ell2 ⇒⇩C⇩L bool ell2"
value "1 :: unit ell2 ⇒⇩C⇩L unit ell2"
value "id_cblinfun + id_cblinfun :: bool ell2 ⇒⇩C⇩L bool ell2"
value "0 :: (bool ell2 ⇒⇩C⇩L Enum.finite_3 ell2)"
value "- id_cblinfun :: bool ell2 ⇒⇩C⇩L bool ell2"
value "id_cblinfun - id_cblinfun :: bool ell2 ⇒⇩C⇩L bool ell2"
value "classical_operator (λb. Some (¬ b))"
value ‹explicit_cblinfun (λx y :: bool. of_bool (x ∧ y))›
value "id_cblinfun = (0 :: bool ell2 ⇒⇩C⇩L bool ell2)"
value "2 *⇩R id_cblinfun :: bool ell2 ⇒⇩C⇩L bool ell2"
value "imaginary_unit *⇩C id_cblinfun :: bool ell2 ⇒⇩C⇩L bool ell2"
value "id_cblinfun o⇩C⇩L 0 :: bool ell2 ⇒⇩C⇩L bool ell2"
value "id_cblinfun* :: bool ell2 ⇒⇩C⇩L bool ell2"
subsection ‹Vectors›
value "0 :: bool ell2"
value "1 :: unit ell2"
value "ket False"
value "2 *⇩C ket False"
value "2 *⇩R ket False"
value "ket True + ket False"
value "ket True - ket True"
value "ket True = ket True"
value "- ket True"
value "cinner (ket True) (ket True)"
value "norm (ket True)"
value "ket () * ket ()"
value "1 :: unit ell2"
value "(1::unit ell2) * (1::unit ell2)"
subsection ‹Vector/Matrix›
value "id_cblinfun *⇩V ket True"
value ‹vector_to_cblinfun (ket True) :: unit ell2 ⇒⇩C⇩L _›
subsection ‹Subspaces›
value "ccspan {ket False}"
value "Proj (ccspan {ket False})"
value "top :: bool ell2 ccsubspace"
value "bot :: bool ell2 ccsubspace"
value "0 :: bool ell2 ccsubspace"
value "ccspan {ket False} ⊔ ccspan {ket True}"
value "ccspan {ket False} + ccspan {ket True}"
value "ccspan {ket False} ⊓ ccspan {ket True}"
value "id_cblinfun *⇩S ccspan {ket False}"
value "id_cblinfun *⇩S (top :: bool ell2 ccsubspace)"
value "- ccspan {ket False}"
value "ccspan {ket False, ket True} = top"
value "ccspan {ket False} ≤ ccspan {ket True}"
value "cblinfun_image id_cblinfun (ccspan {ket True})"
value "kernel id_cblinfun :: bool ell2 ccsubspace"
value "eigenspace 1 id_cblinfun :: bool ell2 ccsubspace"
value "Inf {ccspan {ket False}, top}"
value "Sup {ccspan {ket False}, top}"
end