aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 86eeef5fd29e305afbe29ad6a814b3bb8f8b465b (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
How to write plugins in Coq
===========================
  # Working environment : merlin, tuareg (open question)
  # tuto0 : basics of project organization
  * package a ml4 file in a plugin, organize a `Makefile`, `_CoqProject`
    - Example of syntax to add a new toplevel command
    - Example of function call to print a simple message.
    - To use it:

    `cd tuto0; make`
    `coqtop -I src -R theories Tuto0`

    In the Coq session type:  `Require Tuto0.Loader. HelloWorld.`

  # tuto1 : Ocaml to Coq communication
  * Explore the memory of Coq, modify it
    - Commands that take arguments: strings, symbols, expressions of the calculus of constructions
    - Commands that interact with type-checking in Coq
    - A command that adds a new definition or theorem
    - A command that uses a name and exploits the existing definitions
      or theorems
    - A command that exploits an existing ongoing proof
    - A commandthat defines a new tactic