module Theory:sig
..end
Bindings for Coq constants that are specific to the plugin; reification and translation functions.
Note: this module is highly correlated with the definitions of AAC_rewrite.v.
This module interfaces with the above Coq module; it provides facilities to interpret a term with arbitrary operators as an abstract syntax tree, and to convert an AST into a Coq term (either using the Coq "raw" terms, as written in the starting goal, or using the reified Coq datatypes we define in AAC_rewrite.v).
Both in OCaml and Coq, we represent finite multisets using
weighted lists (('a*int) list
), see Matcher.mset
.
mk_mset ty l
constructs a Coq multiset from an OCaml multiset
l
of Coq terms of type ty
val mk_mset : EConstr.constr -> (EConstr.constr * int) list -> EConstr.constr
module Sigma:sig
..end
Environments
module Sym:sig
..end
Dynamically typed morphisms
module Stubs:sig
..end
We need to export some Coq stubs out of this module.
We define a bundle of functions to build reified versions of the terms (those that will be given to the reflexive decision procedure). In particular, each field takes as first argument the index of the symbol rather than the symbol itself.
module Trans:sig
..end
Tranlations between Coq and OCaml