src/HOL/Boogie/Tools/boogie_loader.ML
changeset 40274 6486c610a549
parent 38786 e46e7a9cb622
child 40627 becf5d5187cc
equal deleted inserted replaced
40273:364aa76f7e21 40274:6486c610a549
   189             (case AList.lookup (op =) atts "unique" of
   189             (case AList.lookup (op =) atts "unique" of
   190               SOME _ => Symtab.lookup fds name
   190               SOME _ => Symtab.lookup fds name
   191             | NONE => NONE)
   191             | NONE => NONE)
   192         | is_unique _ = NONE
   192         | is_unique _ = NONE
   193       fun mk_unique_axiom T ts =
   193       fun mk_unique_axiom T ts =
   194         Const (@{const_name distinct}, HOLogic.listT T --> @{typ bool}) $
   194         Const (@{const_name SMT.distinct}, HOLogic.listT T --> @{typ bool}) $
   195           HOLogic.mk_list T ts
   195           HOLogic.mk_list T ts
   196     in
   196     in
   197       map_filter is_unique fns
   197       map_filter is_unique fns
   198       |> map (swap o Term.dest_Const)
   198       |> map (swap o Term.dest_Const)
   199       |> AList.group (op =)
   199       |> AList.group (op =)
   381     | mk_nary f _ ts = uncurry (fold_rev f) (split_last ts)
   381     | mk_nary f _ ts = uncurry (fold_rev f) (split_last ts)
   382 
   382 
   383   fun mk_list T = HOLogic.mk_list T
   383   fun mk_list T = HOLogic.mk_list T
   384 
   384 
   385   fun mk_distinct T ts =
   385   fun mk_distinct T ts =
   386     Const (@{const_name distinct}, HOLogic.listT T --> @{typ bool}) $
   386     Const (@{const_name SMT.distinct}, HOLogic.listT T --> @{typ bool}) $
   387       mk_list T ts
   387       mk_list T ts
   388 
   388 
   389   fun quant name f = scan_line name (num -- num -- num) >> pair f
   389   fun quant name f = scan_line name (num -- num -- num) >> pair f
   390   val quants =
   390   val quants =
   391     quant "forall" HOLogic.all_const ||
   391     quant "forall" HOLogic.all_const ||