Nominal/FSet.thy
changeset 2250 c3fd4e42bb4a
parent 2249 1476c26d4310
parent 2247 084b2b7df98a
child 2266 dcffc2f132c9
equal deleted inserted replaced
2249:1476c26d4310 2250:c3fd4e42bb4a
  1640 ML {*
  1640 ML {*
  1641   mk_mapfun @{context} [@{typ_pat "?'a"}] @{typ_pat "(?'a list) * nat"}
  1641   mk_mapfun @{context} [@{typ_pat "?'a"}] @{typ_pat "(?'a list) * nat"}
  1642   |> Syntax.check_term @{context}
  1642   |> Syntax.check_term @{context}
  1643   |> fastype_of
  1643   |> fastype_of
  1644   |> Syntax.string_of_typ @{context}
  1644   |> Syntax.string_of_typ @{context}
  1645   |> warning
  1645   |> tracing
  1646 *}
  1646 *}
  1647 
  1647 
  1648 ML {*
  1648 ML {*
  1649   mk_mapfun @{context} [@{typ_pat "?'a"}] @{typ_pat "(?'a list) * nat"}
  1649   mk_mapfun @{context} [@{typ_pat "?'a"}] @{typ_pat "(?'a list) * nat"}
  1650   |> Syntax.check_term @{context}
  1650   |> Syntax.check_term @{context}
  1651   |> Syntax.string_of_term @{context}
  1651   |> Syntax.string_of_term @{context}
  1652   |> warning
  1652   |> warning
  1653 *}
  1653 *}
  1654 
  1654 
  1655 ML {*
  1655 ML {*
       
  1656   mk_mapfun @{context} [@{typ_pat "?'a"}] @{typ_pat "(?'a list) * nat"}
       
  1657   |> Syntax.check_term @{context}
       
  1658 *}
       
  1659 
       
  1660 term prod_fun
       
  1661 term map
       
  1662 term fun_map
       
  1663 term "op o"
       
  1664 
       
  1665 ML {*
  1656   absrep_fun AbsF @{context} (@{typ "('a list) list \<Rightarrow> 'a list"}, @{typ "('a fset) fset \<Rightarrow> 'a fset"})
  1666   absrep_fun AbsF @{context} (@{typ "('a list) list \<Rightarrow> 'a list"}, @{typ "('a fset) fset \<Rightarrow> 'a fset"})
  1657   |> Syntax.string_of_term @{context}
  1667   |> Syntax.string_of_term @{context}
  1658   |> writeln
  1668   |> writeln
  1659 *}
  1669 *}
  1660 
  1670