src/Doc/Isar_Ref/HOL_Specific.thy
changeset 59487 adaa430fc0f7
parent 58618 782f0b662cae
child 59783 00b62aa9f430
equal deleted inserted replaced
59486:2025a17bb20f 59487:adaa430fc0f7
  1590     @{attribute_def (HOL) "quot_del"} & : & @{text attribute} \\
  1590     @{attribute_def (HOL) "quot_del"} & : & @{text attribute} \\
  1591     @{attribute_def (HOL) "lifting_restore"} & : & @{text attribute} \\   
  1591     @{attribute_def (HOL) "lifting_restore"} & : & @{text attribute} \\   
  1592   \end{matharray}
  1592   \end{matharray}
  1593 
  1593 
  1594   @{rail \<open>
  1594   @{rail \<open>
  1595     @@{command (HOL) setup_lifting} ('(' 'no_code' ')')? \<newline>
  1595     @@{command (HOL) setup_lifting} \<newline>
  1596       @{syntax thmref} @{syntax thmref}? (@'parametric' @{syntax thmref})?;
  1596       @{syntax thmref} @{syntax thmref}? (@'parametric' @{syntax thmref})?;
  1597   \<close>}
  1597   \<close>}
  1598 
  1598 
  1599   @{rail \<open>
  1599   @{rail \<open>
  1600     @@{command (HOL) lift_definition} @{syntax name} '::' @{syntax type}  @{syntax mixfix}? \<newline>
  1600     @@{command (HOL) lift_definition} @{syntax name} '::' @{syntax type}  @{syntax mixfix}? \<newline>
  1643     and registered by @{command (HOL) setup_lifting}.
  1643     and registered by @{command (HOL) setup_lifting}.
  1644     
  1644     
  1645     The command @{command (HOL) "setup_lifting"} also sets up the code generator
  1645     The command @{command (HOL) "setup_lifting"} also sets up the code generator
  1646     for the new type. Later on, when a new constant is defined by @{command (HOL) "lift_definition"},
  1646     for the new type. Later on, when a new constant is defined by @{command (HOL) "lift_definition"},
  1647     the Lifting package proves and registers a code equation (if there is one) for the new constant.
  1647     the Lifting package proves and registers a code equation (if there is one) for the new constant.
  1648     If the option @{text "no_code"} is specified, the Lifting package does not set up the code
       
  1649     generator and as a consequence no code equations involving an abstract type are registered
       
  1650     by @{command (HOL) "lift_definition"}.
       
  1651 
  1648 
  1652   \item @{command (HOL) "lift_definition"} @{text "f :: \<tau>"} @{keyword (HOL) "is"} @{text t}
  1649   \item @{command (HOL) "lift_definition"} @{text "f :: \<tau>"} @{keyword (HOL) "is"} @{text t}
  1653     Defines a new function @{text f} with an abstract type @{text \<tau>}
  1650     Defines a new function @{text f} with an abstract type @{text \<tau>}
  1654     in terms of a corresponding operation @{text t} on a
  1651     in terms of a corresponding operation @{text t} on a
  1655     representation type. More formally, if @{text "t :: \<sigma>"}, then
  1652     representation type. More formally, if @{text "t :: \<sigma>"}, then