equal
deleted
inserted
replaced
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 || |