package coq-of-ocaml
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
On This Page
  
  
  Compile a subset of OCaml to Coq
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
  
    
      2.4.0.tar.gz
    
    
        
    
  
  
  
    
  
  
    
  
        sha256=c7996fa56404815f4b87395c910a1cfb4a60ad05fd03ea26604e5ef1f4d345bc
    
    
  sha512=a92cb1c0c505dcfd58084e4000d90e9816ea3abfd9f9778662306fb7818af3bbfca757822acda4e4ba907b24c81ab703db3b324373c13fa9209f491a3ef4ca8d
    
    
  doc/CHANGELOG.html
[Unreleased]
2.4.0 (January 11, 2021)
- Install the Coq proofs in CoqOfOCamlrather thanOCamlfor clarity.
- Simpler header at the top of the generated files.
- Try to import documentation comments from OCaml.
- Do not ignore sequences of instructions anymore.
- Add support for top-level definitions as init_modulefunctions.
- Add the attribute @coq_mutual_as_notationto translate a mutually recursive function as a notation.
- Add the configuration option renaming_type_constructorto rename some type constructors.
- Add the configuration option operator_infixto have notations for the infix operators.
- Add the configuration option constant_warningto disable warnings when converting constants.
- Add the configuration option first_class_module_signature_blacklistto ignore some signatures in the search of a signature name.
2.3.0 (November 3, 2020)
- Add support for the OCaml's monadic notation.
- Add support for records with polymorphic fields.
- Add the attribute @coq_castto force an unsafe cast of a sub-expression.
- Rename the attribute @coq_axiomas@coq_axiom_with_reason.
- Add the attribute @coq_precise_signatureto help to distinguish between ambiguous signatures.
- Remove the generation of Importin Coq and expand the names regardless of theopencommands, in order to be compatible with local opens.
- Add support for anonymous sub-signatures.
- Generate functors using a type class of the current arguments.
- Add the configuration option merge_returns.
- Add the configuration option merge_types.
- Add the configuration options monadic_lets(renaming ofmonadic_bind),monadic_let_returns,monadic_retsandmonadic_ret_lets.
- Add a @coq_plain_moduleattribute to force a module to be compiled as a plain module.
- Add the configuration option renaming_rules.
- Add support for generative functors (using functors with a unitparameter).
- Add a mandatory string parameter to the @coq_axiomattribute in order to give a reason for the axiom.
2.2.1 (June 19, 2020)
- Use a more standard Dune build command by keeping in the source the parser generated by Menhir.
2.2.0 (June 17, 2020)
- Ignore unreachable expressions in match cases.
- Add configuration to black list errors containing a certain message.
- Add configuration to disable exit with error code on some files.
- Exit with a non-null code in case of error.
- Add configuration for the requires from long ident.
- Add configuration to find the type of a polymorphic variant.
- Add configuration to blacklist some errors.
- Add configuration to blacklist some first-class module paths.
- Add configuration to rename some variants.
- Add configuration to rename some constructors.
- Add configuration for module barriers in record aliases.
- Add configuration to escape some value names.
- Add configuration to add head suffix in the generated file.
- Add configuration to add monadic operators.
- Add configuration to specify dependencies required as mli files.
- Add configuration to list the required files in a file, together with an import or not.
- Add configuration to disable guard or positivity checking.
- Add handling of a configuration file.
- Add the @coq_phantomattribute to force an abstract type declaration to be phantom.
2.1.0 (March 20, 2020)
- Add automatic re-ordering of type synonyms in mutual types to generate valid definitions.
- Add minimal handling of class types as records.
- Ignore type parameters with constraints (like being a sub-type of some variants).
- Add a @coq_struct "param"attribute to specify the decreasing parameter name of fixpoints.
- Add a tactic rewrite_cast_exists_eval_eqto simplify the use of thecast_existsaxiom in proofs.
- Name the arguments of the signatures.
- Rename obj_magicascast.
- Set the primitive projection flag.
- Add support for the withoperator on constructor records.
- Add an attribute @coq_match_gadt_with_resultfor GADT matches with casts for the results.
- Do not generate casts for the return values of the match branches with @coq_match_gadt.
- Remove the rarely used match exception when falseconstruct for default return value in matches.
- Add arity annotations for the existentials.
- Eliminate phantom types and propagate this erasing.
- Inline the application operators @@and|>.
- Put first-class modules in Set, using existentials in impredicative sets.
- Add a @coq_match_with_defaultto generate a default branch for incomplete matches.
- Add a @coq_force_gadtattribute to force a type to be defined as a GADT (without type parameters).
- Add basic handling of module alias and typeof in .mlifiles.
- Add more type annotations on values to better support polymorphic values.
- Add better support for include of signatures in .mlifiles.
- Add support of openin.mlifiles.
- Upgrade to Coq 8.11.
- Add support for functors inside signatures.
- Add a special treatment with no axioms for the matching of algebraic types with existentials which are not GADTs (with the same type parameters for all the constructors).
- Add an annotation mechanism for implicits for Coq.
- Generate the JSON output in a default file.
- Optimize the execution time to find the name of a signature.
- Name the type of the records of constructors.
- Add an annotation mechanism to generate axioms for the matchof GADTs.
- Use record.(field)to access record fields.
- Add an axiom for assert.
- Add basic support for includes of module types with sub-modules.
- Add withnotation for records.
- Ignore patterns with extensible types.
- Replace the generation of ExportbyInclude(fix).
- Add support of includein first-class module values.
- Add support of functor definitions.
- Add an annotation mechanism [@axiom]to ignore the content of some definitions.
- Use list notation for list values.
- Add support for whenclauses inmatch.
- Disable recursivity checks in Coq.
- Change the include of signature to preserve the first-class sub-modules.
- Define a default value for the extensible types.
- Add support for constructors using records as parameters.
- Add polymorphic record fields for modules with polymorphic elements.
- Compute the shape of a module by only looking at the top-level of definitions.
- Add support of functor application.
- Use letto represent intermediate results in the definition of a first-class module value.
- Define modules with a named signature as dependent records.
- Add changelog file.
- Add support for includeof modules represented as a record.
- Fix bug on ambiguous detection of first-class module signatures.
- Ignore top-level let () = ...and the left-hand side of expression sequences... ; ....
- Capitalize generated file names.
- Add the notation record.[field]to access to records with existential types.
- Use tuples with primitive projections for the tuples of existential types in first-class modules (notation [x, y, z]for the values,[X * Y * Z]for the types).
- Only use the value names to infer a module type name to handle destructive type substitutions (:=operator).
- Add support for functor declarations.
- Handle includein signatures of.mlifiles.
- Wrap records into modules to prevent name collisions with projections.
- Add support for polymorphic abstract types in modules.
- Put more generated errors as comments to allow partial compilation.
- Add support for module declarations with an anonymous signature in .mlifiles (by unfolding the signature).
- Add support for module type definitions in .mlifiles.
- Generate inductive type definitions for type definitions as polymorphic variants.
- Convert inlined polymorphic variant types to sum types with annotations in comments.
- Have a mechanism to lift some value names independently of type names to prevent name collisions.
- Use Setinstead ofType(may require to use the-impredicative-setflag to compile generated files).
- Reduce the number of parenthesis in generated types using the precedence of the type operators.
2.0.0 (December 15, 2019)
- First public release financed by Nomadic Labs.
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
  On This Page