aboutsummaryrefslogtreecommitdiff
path: root/user-contrib/Ltac2/Fresh.v
blob: 5e876bb07740ecb09bbc7490a1633ba76a12ebb4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
(************************************************************************)
(*  v      *   The Coq Proof Assistant  /  The Coq Development Team     *)
(* <O___,, *   INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2016     *)
(*   \VV/  **************************************************************)
(*    //   *      This file is distributed under the terms of the       *)
(*         *       GNU Lesser General Public License Version 2.1        *)
(************************************************************************)

Require Import Ltac2.Init.

Module Free.

Ltac2 Type t.
(** Type of sets of free variables *)

Ltac2 @ external union : t -> t -> t := "ltac2" "fresh_free_union".

Ltac2 @ external of_ids : ident list -> t := "ltac2" "fresh_free_of_ids".

Ltac2 @ external of_constr : constr -> t := "ltac2" "fresh_free_of_constr".

End Free.

Ltac2 @ external fresh : Free.t -> ident -> ident := "ltac2" "fresh_fresh".
(** Generate a fresh identifier with the given base name which is not a
    member of the provided set of free variables. *)