package coq-core
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
md5=5d1187d5e44ed0163f76fb12dabf012e
    
    
  sha512=91bc81530fa4f6498961583ad51eac5001f139881788b88e360a866ad8e2a6e2c5bce86d1a580ab4cd4782bf49d48318767df82471ce33ba3ac143e5569ad33c
    
    
  doc/coq-core.interp/Constrexpr_ops/index.html
Module Constrexpr_opsSource
Constrexpr_ops: utilities on constr_expr
Equalities on constr_expr related types
Equality on explicitation.
val constr_expr_eq_gen : 
  (Constrexpr.constr_expr -> Constrexpr.constr_expr -> bool) ->
  Constrexpr.constr_expr ->
  Constrexpr.constr_expr ->
  boolEquality on constr_expr. This is a syntactical one, which is oblivious to some parsing details, including locations.
Equality on local_binder_expr. Same properties as constr_expr_eq.
Equality on binder_kind
Retrieving locations
Constructors
Term constructors
Basic form of the corresponding constructors
val mkCastC : 
  (Constrexpr.constr_expr * Constr.cast_kind option * Constrexpr.constr_expr) ->
  Constrexpr.constr_exprval mkLambdaC : 
  (Names.lname list
   * Constrexpr.binder_kind
   * Constrexpr.constr_expr
   * Constrexpr.constr_expr) ->
  Constrexpr.constr_exprval mkLetInC : 
  (Names.lname
   * Constrexpr.constr_expr
   * Constrexpr.constr_expr option
   * Constrexpr.constr_expr) ->
  Constrexpr.constr_exprval mkProdC : 
  (Names.lname list
   * Constrexpr.binder_kind
   * Constrexpr.constr_expr
   * Constrexpr.constr_expr) ->
  Constrexpr.constr_exprBasic form of application, collapsing nested applications
Optimized constructors: does not add a constructor for an empty binder list
val mkLambdaCN : 
  ?loc:Loc.t ->
  Constrexpr.local_binder_expr list ->
  Constrexpr.constr_expr ->
  Constrexpr.constr_exprval mkProdCN : 
  ?loc:Loc.t ->
  Constrexpr.local_binder_expr list ->
  Constrexpr.constr_expr ->
  Constrexpr.constr_exprAliases for the corresponding constructors; generally mkLambdaCN and mkProdCN should be preferred
val mkCLambdaN : 
  ?loc:Loc.t ->
  Constrexpr.local_binder_expr list ->
  Constrexpr.constr_expr ->
  Constrexpr.constr_exprval mkCProdN : 
  ?loc:Loc.t ->
  Constrexpr.local_binder_expr list ->
  Constrexpr.constr_expr ->
  Constrexpr.constr_exprPattern constructors
val mkCPatOr : 
  ?loc:Loc.t ->
  Constrexpr.cases_pattern_expr list ->
  Constrexpr.cases_pattern_exprInterpretation of a list of patterns as a disjunctive pattern (optimized)
val mkAppPattern : 
  ?loc:Loc.t ->
  Constrexpr.cases_pattern_expr ->
  Constrexpr.cases_pattern_expr list ->
  Constrexpr.cases_pattern_exprApply a list of pattern arguments to a pattern
Destructors
FIXME: nothing to do here
Destruct terms of the form CRef (Ident _).
Destruct terms of the form CRef (Ident _) or CHole _.
Binder manipulation
Retrieve a list of binding names from a list of binders.
Same as names_of_local_binder_exprs, but does not take the let bindings into account.
Folds and maps
val fold_constr_expr_with_binders : 
  (Names.Id.t -> 'a -> 'a) ->
  ('a -> 'b -> Constrexpr.constr_expr -> 'b) ->
  'a ->
  'b ->
  Constrexpr.constr_expr ->
  'bUsed in typeclasses
Used in correctness and interface; absence of var capture not guaranteed in pattern-matching clauses and in binders of the form x,y:T(x)
val map_constr_expr_with_binders : 
  (Names.Id.t -> 'a -> 'a) ->
  ('a -> Constrexpr.constr_expr -> Constrexpr.constr_expr) ->
  'a ->
  Constrexpr.constr_expr ->
  Constrexpr.constr_exprMiscellaneous
val replace_vars_constr_expr : 
  Names.Id.t Names.Id.Map.t ->
  Constrexpr.constr_expr ->
  Constrexpr.constr_exprReturn all (non-qualified) names treating binders as names
val ntn_loc : 
  ?loc:Loc.t ->
  Constrexpr.constr_notation_substitution ->
  Constrexpr.notation ->
  (int * int) listval patntn_loc : 
  ?loc:Loc.t ->
  Constrexpr.cases_pattern_notation_substitution ->
  Constrexpr.notation ->
  (int * int) list