93912f6 | Raphaël Cauderlier | 21 December 2019, 22:12:06 UTC | [michocoq] Prove second half of typer correctness This completes the correctness proof of the typer in Optimized mode. Before this, only the typed -> untyped -> typed round-trip was certified. | 14 May 2020, 19:39:36 UTC |
daec052 | Raphaël Cauderlier | 25 April 2020, 13:33:49 UTC | [michocoq] Typing and untyping mode (Readable or Optimized) Since the introduction of timestamp literals, the typer is not injective anymore so the converse of untyper.untype_type is not true. By introducing a typing and an untyping mode, we get back injectivity at least in optimized mode. | 14 May 2020, 19:39:36 UTC |
8591d76 | Raphaël Cauderlier | 21 December 2019, 21:53:16 UTC | [michocoq] Fix a bug in the typer Type-checking a mutez literal now fails in case of overflow. | 14 May 2020, 19:39:36 UTC |
ac659ab | Raphaël Cauderlier | 07 May 2020, 19:22:44 UTC | [build|ignore] Also ignore the cache of the `nia` tactic | 14 May 2020, 19:39:35 UTC |
34a1022 | Raphaël Cauderlier | 05 December 2019, 11:08:19 UTC | [michocoq] Use frienly notations in all verified scripts | 14 May 2020, 19:37:32 UTC |
5bd8859 | Raphaël Cauderlier | 03 December 2019, 12:19:06 UTC | [michocoq] Add a distinction between instructions and instruction sequences | 14 May 2020, 19:37:32 UTC |
980a820 | Raphaël Cauderlier | 29 November 2019, 14:27:04 UTC | [michocoq] Also separate IF_ and LOOP_ instructions from the other ones | 07 May 2020, 21:55:22 UTC |
95b18b8 | Raphaël Cauderlier | 17 March 2020, 17:40:39 UTC | [michocoq] Stratify opcodes and instructions. We call opcodes the instructions that do not take subprograms as argument nor have special treatment in the type-checker or evaluator. Most of the instructions in Michelson fall into this category, putting them aside makes the number of constructors of the instruction ASTs much smaller which is needed when reasoning on the syntax. In particular, many optimisations at the Michelson level require to reason about several terms in these ASTs by nesting destructs which was not tractable with more than 80 constructors. | 07 May 2020, 21:55:12 UTC |
ab60300 | Raphaël Cauderlier | 07 May 2020, 21:15:25 UTC | Remove syntax_equiv.v This is incomplete and broken. | 07 May 2020, 21:54:55 UTC |
ba48cdf | Raphaël Cauderlier | 24 January 2020, 10:26:23 UTC | Remove the return_to_sender contract This is a duplicate of the boomerang contract. | 07 May 2020, 21:54:42 UTC |
30ec384 | Guillaume Claret | 10 March 2020, 21:16:49 UTC | [Michocoq] Add parsing of timestamps | 18 April 2020, 12:34:45 UTC |
75ba1ed | Raphaël Cauderlier | 13 March 2020, 16:48:52 UTC | [CI|Tests] Run the tests in the CI | 18 April 2020, 12:34:45 UTC |
b6d740a | Raphaël Cauderlier | 13 March 2020, 16:46:47 UTC | [Build|Tests]: add a build-test target for Opam | 18 April 2020, 12:34:45 UTC |
2eeac09 | Raphaël Cauderlier | 13 March 2020, 16:35:42 UTC | [Tests] Regression traces | 18 April 2020, 12:34:44 UTC |
123c097 | Raphaël Cauderlier | 13 March 2020, 16:48:13 UTC | [Tests] Regression testing Tests are run with `make test` and regression traces are reset with `make RESET_REGRESSION=true test`. | 18 April 2020, 12:34:44 UTC |
3ae9aaf | Raphaël Cauderlier | 13 March 2020, 15:54:06 UTC | [Tests] Update the test suite | 18 April 2020, 12:34:44 UTC |
1c4fb62 | Raphaël Cauderlier | 16 July 2019, 08:57:17 UTC | [Michocoq] Formalize %-annotations and entrypoints Annotations are still ignored at lexing time but the semantically meaningful ones are supported in the untyped syntax. | 18 April 2020, 12:34:44 UTC |
c578eba | Guillaume Claret | 27 February 2020, 17:45:18 UTC | [build] Add support for Coq 8.11 | 18 April 2020, 12:03:13 UTC |
94071da | Guillaume Claret | 06 December 2019, 18:59:32 UTC | [of_ocaml] Add a README for the of_ocaml folder | 18 April 2020, 12:03:13 UTC |
a35ea8c | Guillaume Claret | 06 December 2019, 18:04:18 UTC | [of_ocaml] Beginning of injection of the syntax of Mi-Cho-Coq to OCaml | 18 April 2020, 12:03:13 UTC |
41fed52 | Guillaume Claret | 03 December 2019, 15:35:40 UTC | [of_ocaml] Bijection for the comparable types | 18 April 2020, 12:03:13 UTC |
e94f138 | Guillaume Claret | 02 December 2019, 14:54:09 UTC | [of_ocaml] Explicit definition of coq_to_ocaml_typ | 18 April 2020, 12:03:13 UTC |
bbb0057 | Guillaume Claret | 16 November 2019, 16:28:49 UTC | [of_ocaml] Extend one side on the equivalence of the types with comparable types | 18 April 2020, 12:03:13 UTC |
e432e03 | Guillaume Claret | 16 November 2019, 13:29:15 UTC | [of_ocaml] Add one side of the equivalence with the Coq AST | 18 April 2020, 12:03:12 UTC |
80978ee | Guillaume Claret | 16 November 2019, 13:28:16 UTC | [of_ocaml] Add imported syntax definition from the OCaml code | 18 April 2020, 12:03:12 UTC |
fdfa10d | Raphaël Cauderlier | 04 December 2019, 20:50:34 UTC | [Michocoq] Remove superfluous functors | 18 April 2020, 12:03:12 UTC |
ae11043 | Raphaël Cauderlier | 04 December 2019, 14:19:10 UTC | [Michocoq] Remove contract literals | 18 April 2020, 11:49:22 UTC |
5b40d03 | Raphaël Cauderlier | 18 April 2020, 11:40:18 UTC | [CI] fix shellcheck URL | 18 April 2020, 11:43:19 UTC |
3fb4ceb | Arvid Jakobsson | 10 March 2020, 14:23:46 UTC | [generic_multisig] Add CHAIN_ID to signature Related to #21 | 11 March 2020, 13:52:45 UTC |
00e403d | Raphaël Cauderlier | 13 February 2020, 17:07:39 UTC | [SC verif] Deposit contract | 13 February 2020, 17:07:39 UTC |
90abcb0 | Raphaël Cauderlier | 23 January 2020, 22:29:22 UTC | [build] Add missing dependency to ocamlbuild | 13 February 2020, 10:07:44 UTC |
9b308f4 | Raphaël Cauderlier | 12 February 2020, 13:15:58 UTC | [doc] slides for WTSC | 12 February 2020, 13:23:16 UTC |
949a7a4 | Raphaël Cauderlier | 12 February 2020, 13:15:36 UTC | [doc] slides of past talks | 12 February 2020, 13:23:16 UTC |
a0ebbfd | Raphaël Cauderlier | 27 January 2020, 09:47:43 UTC | [doc] More explicit names for the talk directories | 27 January 2020, 09:48:13 UTC |
f65e22e | Raphaël Cauderlier | 13 January 2020, 12:33:51 UTC | [doc] slides for the workshop at Cobra in Aarhus | 13 January 2020, 12:34:38 UTC |
dc275c8 | Guillaume Claret | 04 December 2019, 09:27:10 UTC | Fix the install of the michocoq binary | 04 December 2019, 09:39:27 UTC |
9aa10a2 | Arvid Jakobsson | 29 November 2019, 14:39:11 UTC | [ott] remove the original michocott formalization | 29 November 2019, 14:39:11 UTC |
ceb487e | Raphaël Cauderlier | 11 September 2019, 07:54:20 UTC | Michocott: Update michelson.ott to ease documentation generation | 29 November 2019, 13:41:28 UTC |
8733671 | Basile Pesin | 31 May 2019, 13:43:15 UTC | Corrected the 'a's that were changed in 'ty2's | 29 November 2019, 13:41:24 UTC |
3098cf5 | Basile Pesin | 30 May 2019, 17:27:17 UTC | All the way to extraction | 29 November 2019, 13:41:11 UTC |
f2939c1 | Basile Pesin | 30 May 2019, 16:01:51 UTC | Removed ambiguity by adding explicit annotations | 29 November 2019, 13:40:31 UTC |
eb1c38f | Basile Pesin | 29 May 2019, 23:02:55 UTC | Every rule is good with doc but multiple parses on compilation to coq for list set map | 29 November 2019, 13:40:31 UTC |
609a9c5 | Basile Pesin | 29 May 2019, 19:06:58 UTC | ott spec OK except for list and map | 29 November 2019, 13:40:31 UTC |
218ee17 | Basile Pesin | 29 May 2019, 13:09:06 UTC | Changed symbol for typing to '::' and symbol for cons to ':' in michelson_typing | 29 November 2019, 13:40:31 UTC |
a7ba07f | Raphaël Cauderlier | 29 May 2019, 09:23:37 UTC | [Michocott] Formalize the typing rules of Michelson in OTT TOFIX: Currently the syntax of Michelson is not shared with michelson.ott. Moreover I used `:` for the typing relation and `::` for stack consing whereas the documentation (and michelson.ott) use `:` for consing and `::` for typing. | 29 November 2019, 13:40:31 UTC |
cdc97c1 | Raphaël Cauderlier | 28 November 2019, 15:06:48 UTC | [CI] Add Coq v8.10 | 28 November 2019, 15:06:48 UTC |
ac14acd | Raphaël Cauderlier | 28 November 2019, 10:00:56 UTC | Add the IF_RIGHT macro at the typed syntax level | 28 November 2019, 10:00:56 UTC |
e729117 | Raphaël Cauderlier | 26 November 2019, 21:09:02 UTC | Remove IF_RIGHT The `IF_RIGHT` macro was incorrectly documented as an instruction when the Mi-Cho-Coq effort started. The macro expanser correctly converted ot to its expanded form so all handling of `IF_RIGHT` as an instruction was basically dead code. | 26 November 2019, 21:09:02 UTC |
a7655d8 | Raphaël Cauderlier | 23 November 2019, 08:33:21 UTC | Formatting | 25 November 2019, 10:24:17 UTC |
48f957f | Raphaël Cauderlier | 20 November 2019, 08:13:43 UTC | Printer: simplify Michelson -> Micheline and the Micheline printer | 25 November 2019, 10:23:25 UTC |
474723b | Raphaël Cauderlier | 14 November 2019, 17:33:09 UTC | Make the type argument of error.Return implicit | 14 November 2019, 17:33:09 UTC |
3bebfc4 | Raphaël Cauderlier | 14 November 2019, 17:13:23 UTC | Swap arguments of bind | 14 November 2019, 17:19:07 UTC |
085c7d7 | Guillaume Claret | 23 October 2019, 14:48:57 UTC | Remove all remaining binds without let! notation | 14 November 2019, 17:19:07 UTC |
f7efb6f | Guillaume Claret | 23 October 2019, 13:43:29 UTC | Use the let! notation | 14 November 2019, 17:11:20 UTC |
a0ad40f | Guillaume Claret | 23 October 2019, 13:48:45 UTC | Add a module to namespace the let! notation | 14 November 2019, 17:10:51 UTC |
3993c1c | Guillaume Claret | 23 October 2019, 12:45:53 UTC | Add a let! notation for the bind | 06 November 2019, 15:48:00 UTC |
d18aeba | Guillaume Claret | 23 October 2019, 12:44:24 UTC | Remove unused Eval | 06 November 2019, 15:48:00 UTC |
d45b391 | Guillaume Claret | 23 October 2019, 12:37:56 UTC | Ignore .lia.cache files | 06 November 2019, 15:48:00 UTC |
edb58ee | Arvid Jakobsson | 06 November 2019, 15:08:13 UTC | Update coq-mi-cho-coq.opam: remove duplicate synpopsis | 06 November 2019, 15:08:13 UTC |
ec3f4a8 | Guillaume Claret | 23 October 2019, 15:13:34 UTC | Backport upstream changes to the opam package | 01 November 2019, 16:31:58 UTC |
ab8c856 | Arvid Jakobsson | 23 October 2019, 08:52:16 UTC | Make sure that make clean removes files generated by extraction | 23 October 2019, 08:52:16 UTC |
61e2773 | Raphaël Cauderlier | 18 October 2019, 14:00:51 UTC | PAPAIR and UNPAPAIR macros | 22 October 2019, 14:18:33 UTC |
1b89f58 | Raphaël Cauderlier | 10 October 2019, 11:14:44 UTC | Fix expansion of the DUUUP macro | 22 October 2019, 14:18:33 UTC |
3b920a5 | Raphaël Cauderlier | 10 October 2019, 11:04:30 UTC | Expansion of CADR, SET_CADR, and MAP_CADR macros | 22 October 2019, 14:18:33 UTC |
e81432c | Raphaël Cauderlier | 09 October 2019, 16:13:37 UTC | Simplify the WP calculus | 22 October 2019, 14:18:33 UTC |
cadc05e | Raphaël Cauderlier | 10 October 2019, 10:26:52 UTC | The regular simpl tactic can now be used instead of our custom simplify_intruction | 22 October 2019, 14:18:33 UTC |
064f96c | Raphaël Cauderlier | 08 October 2019, 23:21:24 UTC | Simplify a bit the code of the evaluator | 22 October 2019, 14:18:33 UTC |
f6bfa3b | Raphaël Cauderlier | 07 October 2019, 20:30:11 UTC | Install the extracted binary | 22 October 2019, 14:18:33 UTC |
d7b66ee | Raphaël Cauderlier | 07 October 2019, 00:17:39 UTC | [Extraction] Extract the type-checker and fix many bugs | 22 October 2019, 14:18:32 UTC |
b42ae25 | Raphaël Cauderlier | 28 June 2019, 13:31:40 UTC | Fix a typing bug occurring when SELF was used in a Michelson origination When type-checking the code literal of a smart contract originated from Michelson, we have to be cautious to use the self type of the contract being originated instead of the contract doing the origination. For this reason, we cannot have `self_type` as a parameter of the inductive type for instructions but it needs to be an index. However, SELF is forbidden inside lambdas in Michelson so we do not have to care about typing the SELF instruction in lambdas. | 22 October 2019, 14:18:32 UTC |
4b53f52 | Raphaël Cauderlier | 02 October 2019, 07:04:52 UTC | [/!\ Interface breaking change] Almost complete the implementation of the lexer, parser, and typer Some macros are still missing. Extracting a standalone tool would help writing more tests. | 22 October 2019, 14:18:32 UTC |
3bfd628 | Basile Pesin | 26 July 2019, 09:49:19 UTC | Added INT and IS_NAT | 22 October 2019, 14:18:32 UTC |
0233856 | Basile Pesin | 25 July 2019, 16:18:34 UTC | Dig and Dug type-checking | 22 October 2019, 14:18:32 UTC |
a87cc8f | Basile Pesin | 22 July 2019, 09:12:03 UTC | Added a specific case for PUSH _ Concrete_seq, to avoid bad line feeds | 22 October 2019, 14:18:32 UTC |
f421eb8 | Basile Pesin | 19 July 2019, 09:02:03 UTC | Fixed pretty printer | 22 October 2019, 14:18:32 UTC |
4b33d51 | Basile Pesin | 18 July 2019, 13:47:51 UTC | Flattening sequences and slightly improved the pretty-printer | 22 October 2019, 14:18:31 UTC |
a98c884 | Basile Pesin | 18 July 2019, 11:16:42 UTC | Added micheline2michelson converter | 22 October 2019, 14:18:31 UTC |
f4cdd12 | Basile Pesin | 15 July 2019, 16:32:37 UTC | Updated menhir to 20190626 | 22 October 2019, 14:18:31 UTC |
88dd857 | Basile Pesin | 15 July 2019, 15:06:21 UTC | UNPAIR macro and extracting untyped_syntax and typer | 22 October 2019, 14:18:31 UTC |
7f1a76f | Basile Pesin | 12 July 2019, 17:01:33 UTC | Refactor sections into modules after rebase, missing DIG and DUG typers | 22 October 2019, 14:18:31 UTC |
aec321b | Basile Pesin | 07 June 2019, 14:56:26 UTC | Added a lemma on string lexing | 22 October 2019, 14:18:31 UTC |
124eb4c | Basile Pesin | 06 June 2019, 20:06:32 UTC | Added pretty-printer function for micheline | 22 October 2019, 14:18:31 UTC |
248bad4 | Basile Pesin | 06 June 2019, 09:44:25 UTC | Fixed eqb for coq 8.8.2 | 22 October 2019, 14:18:31 UTC |
bb2ba61 | Raphael Cauderlier | 25 March 2019, 22:21:14 UTC | [typer] Certified Michelson type-checker/type-inferrer We essentially proved forall i, typer.type_instruction (untyper.untype_instruction i) A = Return _ i but this result can only be true if instructions like {FAIL; FAIL} are forbidden in the typed world (the type inferrer cannot guess the type of the stack between the two FAILs). For this reason, we introduced a new boolean flag in the syntax.instruction inductive that is true iff the instruction is a sequence whose last element is FAIL. | 22 October 2019, 14:18:31 UTC |
d266382 | Raphael Cauderlier | 22 March 2019, 10:01:18 UTC | [Michocott] Untrack and ignore the .v file generated by OTT | 22 October 2019, 14:18:30 UTC |
ed6bdd9 | Raphael Cauderlier | 20 March 2019, 14:42:05 UTC | [Micheline] Micheline parser | 22 October 2019, 14:18:30 UTC |
1cfd656 | Raphael Cauderlier | 18 March 2019, 09:12:44 UTC | [Micheline] Micheline lexer | 22 October 2019, 14:18:30 UTC |
2a4adc7 | Raphaël Cauderlier | 27 September 2019, 15:33:01 UTC | Comparable pairs | 22 October 2019, 14:18:30 UTC |
baa0a09 | Raphaël Cauderlier | 27 September 2019, 10:14:07 UTC | Remove deprecated instructions | 22 October 2019, 14:18:30 UTC |
be95036 | Raphaël Cauderlier | 27 September 2019, 10:06:52 UTC | Update the multisig contract and its proof to use CHAIN_ID | 22 October 2019, 14:18:30 UTC |
fc16081 | Raphaël Cauderlier | 27 September 2019, 10:05:21 UTC | CHAIN_ID | 22 October 2019, 14:18:30 UTC |
bd3e077 | Raphaël Cauderlier | 27 September 2019, 09:44:33 UTC | DROP n | 22 October 2019, 14:18:30 UTC |
3c9bf7b | Raphaël Cauderlier | 27 September 2019, 09:36:08 UTC | DIP n | 22 October 2019, 14:18:29 UTC |
98871cc | Raphaël Cauderlier | 27 September 2019, 08:40:05 UTC | APPLY | 22 October 2019, 14:18:29 UTC |
a5e296c | Raphaël Cauderlier | 27 September 2019, 08:39:25 UTC | Packable types, for which data_to_concrete_data is defined | 22 October 2019, 14:18:29 UTC |
069c46d | Basile Pesin | 02 July 2019, 15:36:27 UTC | DIG and DUG Add the (future) DIG and DUG instructions to Mi-Cho-Coq. See tezos/tezos!1031 for reference. | 22 October 2019, 14:18:29 UTC |
a4d6612 | Raphaël Cauderlier | 15 October 2019, 20:43:52 UTC | Doc: Fix a talk subtitle (PDF version) | 15 October 2019, 20:43:52 UTC |
f1fbadf | Raphaël Cauderlier | 14 October 2019, 12:32:22 UTC | [Doc] Add slides for the Ledger - Tezos Meetup | 14 October 2019, 12:32:22 UTC |
46ffce5 | Raphaël Cauderlier | 10 October 2019, 13:50:55 UTC | Doc: FMBC slides | 10 October 2019, 13:50:55 UTC |
7b0cc2b | b | 09 October 2019, 17:25:42 UTC | Doc: add coq workshop | 09 October 2019, 17:25:42 UTC |