https://github.com/EasyCrypt/easycrypt

sort by:
Revision Author Date Message Commit Date
31ae2ac Merge branch 'main' into deploy-easyPQC 03 April 2024, 03:20:04 UTC
41c2667 This diff removes the cost logic. The cost logic suffers the following: - it does not implement what is needed, and is then barely used, - its implementation is invasive and duplicates some internal mechanisms The latter point slows down the development of new features. In conclusion, it has been decided not to wait for the new cost logic before removing the current implementation. 02 April 2024, 15:42:03 UTC
6ef627e Merge branch 'main' into easypqc 02 April 2024, 15:41:24 UTC
c96ddd7 In cbn, restart reduction after a beta-reduction beta-reduction might have introduced a head-redex. 29 March 2024, 12:31:44 UTC
7bc148b Unify the behavior of simplify & /= w.r.t. auto-unfolding. Before this commit, `simplify` was not configured to unfold symbols marked for auto-unfolding. 29 March 2024, 12:31:44 UTC
5b48ec4 Stdlib: more results on `coprime` + modular equality 26 March 2024, 18:01:44 UTC
45f111d flake+opam-nix 23 March 2024, 14:14:55 UTC
a7d2b01 Use dune-site to find resources (when installed) 23 March 2024, 14:14:55 UTC
c5f30c8 Added example usage of well-founded recursion and induction (#518) to examples directory. Cleaned up various things in WF.ec, including standardizing some terminology. 08 March 2024, 23:54:43 UTC
a8274fe Optimize pretty-printing of notations The printer now does a eager filtering of notations (only notations that share the same head symbol as the printed formula are considered) The does not change the behavior of the pretty-printer, but greatly improves performance. 07 February 2024, 16:39:46 UTC
f7992e1 Remove module overriding when cloning a theory. (#458) 30 January 2024, 16:41:48 UTC
ed61f01 New tactic: "case <-" This tactic "inlines" tuple assignments, i.e. it transforms ``` (lv1,...,lvn) <- (e1,...,en); ``` in ``` lv1 <- e1; ... lvn <- en; ``` 30 January 2024, 15:30:11 UTC
5903e1f Internal: minor additions to EcLowPhlGoal & EcMatching modules - EcMatching.Zipper.map - EcLowPhlGoal.{is_program_logic,hl_set_stmt} 30 January 2024, 13:29:18 UTC
ff7b195 New tactic: `rewrite equiv` The main idea is to provide a way to rewrite a procedure call, somewhere in a program, into a different procedure call, using an equiv. There is a variant provided to handle cases where the function to be rewritten to has different arguments and/or left-value than the instance provided. Syntax and variants: - Same arguments: `rewrite equiv[{m} p d lem]` - Different arguments: `rewrite equiv[{m} p d lem (a1, a2, ... :@ lv?)]` with - `m`: 1 or 2 - `p`: code position - `d`: direction, either `-` or nothing - `lem`: equiv for the rewrite - `ai`: an expression representing a function argument - `lv`: a left-value For example usage see: `tests/rwequiv.ec` or instances in the stdlib. 29 January 2024, 14:29:12 UTC
4401490 Refactoring & simplfication of the low-level substitution. The low-level substitution is now in `EcCoreSubst` Co-authored-by: Pierre-Yves Strub <pierre-yves@strub.nu> 29 January 2024, 13:31:44 UTC
2b3bbad docker: fix opam init CL 15 December 2023, 19:16:51 UTC
12af606 New tactic: `outline` (#473) The main idea is to provide an inverse to inline when proving an equiv. Currently, it supports basic procedure unification that requires manual selection of the program slice to unify with, as well as, requiring near exact matches on program structure. An optional return value can be supplied for situations where the return expression is just a program variable and needs to be renamed/deconstructed. There is also support for statement outlining although, this is more of a transitivity * with program slicing so may require change. Syntax and variants: - Procedure outlining: outline {m} [s - e] lv? <@ M.foo - Statement outlining: outline {m} [s - e] { s1; s2; ... } with - m: 1 or 2 - s,e: code position - M.foo: path to procedure - lv: a left-value when `s = e`, one can use `[s]` instead of `[s-s]` For example usage see: tests/outline.ec 15 December 2023, 10:45:02 UTC
1733c19 Docker: bump OCaml to 5.1.0 12 December 2023, 14:58:32 UTC
943fc84 Bump provers to latest that succeeds, drop CVC4 Only Alt-Ergo needs kept back. 12 December 2023, 13:46:57 UTC
98139b7 nix-shell: remove why3 pin 12 December 2023, 12:58:20 UTC
736e322 remove a global axiom warning from the UC example (#502) 12 December 2023, 12:18:17 UTC
4c564f5 Internal API: process_Xhl_* This family of functions type-check a formula w.r.t. a memory that is infered from the program logic goal. The commit changes two things: - for prhl, its uses the same memory name as the one used in the program logic goal. (Previously, it was using `mhr`) - its returns the memory that has been used for the type-checking 11 December 2023, 12:52:51 UTC
4f02829 New command prefix: `fail` This prefix indicates that the following command should fail and that the error has to be ignored. It is an actual error if the command does not fail. In interactive mode, the error is printed (at [info] level). The main purpose of `fail` is to allow to write more precise unit tests where one can indicate which command shoud actually fail. 11 December 2023, 10:07:50 UTC
530a354 CI: do not skip successful duplicates If so, we can end with PR to protected branches that are blocked. 11 December 2023, 09:50:22 UTC
bbe5e6d CI: unit tests In the automated tests, add a section `unit`for unit tests. The unit tests are checked by the CI. They can be run using `make unit`. 11 December 2023, 09:11:50 UTC
9c1ec6b CI: skip duplicated jobs 07 December 2023, 15:57:05 UTC
1d3dcaa extend weakmem to hoare/choare/ehoare/equiv 07 December 2023, 15:56:27 UTC
6576223 Fix reduction w.r.t. memory types. This commit fixes two bugs: - the memory types (in all hoare logic constructor) were not taken into account in conversion. - the bounded memories where not substituted for alpha conversion. 07 December 2023, 10:35:52 UTC
9e85ab1 Add tactic `weakmem` This tactic allows to weaken the memory of a phoare hypothesis by adding new variables to it. This tactic is needed in the while rule for phoare, when one wants to apply the induction hypothesis & the memories are not compatible. Currently, the convertibility check does not enforce that memories are equal, but a to-come PR is going to fix that point. 07 December 2023, 10:21:48 UTC
d248e73 rndsem: new version that only computes the distribution for used variables This version was already available internally. This commits only add the needed syntax for accessing it. The syntax is: `rndsem* <options>`. closes #415 06 December 2023, 15:25:53 UTC
7c0adea In substitutions, lazyly refresh the codomain of the univar map This map is allowed to do name capture and is hence sensitive to bound variables renaming. 05 December 2023, 16:33:38 UTC
dd02a37 In view application, close cut formula after substitution If not, we are creating a capture. The bug is hidden because we are not using a refreshing substitution in this case. 05 December 2023, 14:03:35 UTC
0de7f16 Compile in `dev` mode by default. Until now, `make` was building EasyCrypt in release mode. The set of warning flags in release mode is weaker then in development mode. Switching to dev mode caused the apparition of some warnings. This commit fixes them. 04 December 2023, 15:39:51 UTC
068fdd9 nix: do not pin provers versions nix-flake should be used to pin provers to a given version. 02 December 2023, 11:10:24 UTC
c0376b7 Bump the minimal version of Why to 1.7 This allows us to use more recent versions of the provers. The docker images have been updated accordingly. Docker now comes with the following provers: - Z3 4.12.2 - CVC4 1.8 - CVC5 1.0.6 - Alt-Ergo 2.5.2 02 December 2023, 08:24:16 UTC
14a397c runtest: new option: why3 (why3 configuration file location) 01 December 2023, 21:44:34 UTC
23e603e runtest: allows to specify provers from the CLI 01 December 2023, 21:27:04 UTC
42a7841 runtest: do not try to load pyyaml when reporting is disabled 01 December 2023, 16:53:46 UTC
15f0751 Allows selecting a prover by its version number. Syntax is name@version. The selected prover is the prover with name `name` and with the lowest version that is greater (or equal) than `version`. For example, if Z3 4.8.0, Z3 4.8.2 & Z3 4.12.2 are installed, Z3@4.8 selects Z3 4.8.2. 01 December 2023, 16:15:50 UTC
27edb8a opam: allow Why3 1.7.x 30 November 2023, 08:37:08 UTC
d9d7bcf Removed two unused type declarations. 28 November 2023, 20:14:47 UTC
d43887b Share the definition of the datatypes in EcAst.ml 25 November 2023, 10:05:04 UTC
b79290f SMT timeout can now be configured in INI files The configuration key is "timeout" 24 November 2023, 17:30:52 UTC
3be7cb9 Support project-local ini files EasyCrypt now reads project-local files for getting its configuration settings. This configuration file takes precedence over the system-level configuration file. The project-local configuration file is named 'easycrypt.project'. It is identical to the system-level configuration file. When compiling a file, the configuration file is searched upward from the target file directory. When ran in interactive mode, the configuration file is searched upward from the current working directory. Note that when ProofGeneral starts EasyCrypt, the working directory is set to the directory of the focused file. 24 November 2023, 17:25:58 UTC
9fd429a When rewriting in the local env, do not fail on identity rewriting fix #463 08 November 2023, 17:06:32 UTC
ff7b698 added adversary and qselect examples 08 November 2023, 11:03:26 UTC
99ec9f4 ehoare Co-authored-by: Benjamin Grégoire <benjamin.gregoire@inria.fr> Co-authored-by: Martin Avanzini <martin.avanzini@inria.fr> 08 November 2023, 11:03:26 UTC
544680e fix and simplify parser 28 October 2023, 05:36:58 UTC
ed52616 while + seq + fix conflict 28 October 2023, 05:07:43 UTC
90adafa more syntax examples 27 October 2023, 19:54:06 UTC
d3abcb4 add rcond rule 27 October 2023, 17:35:35 UTC
943f268 case + elim * + exists * + exlim + inlining 27 October 2023, 14:44:56 UTC
6d0f434 fix equiv_init 27 October 2023, 05:05:52 UTC
20ed0f4 add inlining 27 October 2023, 04:48:22 UTC
e7f2fc5 fix bugs in printing 27 October 2023, 04:47:45 UTC
f8b6eeb one sided rule for measure 26 October 2023, 17:36:06 UTC
05acd84 rule for qinit and unitary 26 October 2023, 13:36:59 UTC
e641397 add mores rule for conseq, like P => q1 = q2 | P, r1 = r2 |=> P, r1, q1 = r2, q2 24 October 2023, 16:47:00 UTC
b8ebff0 more on conseq and swap 23 October 2023, 12:24:00 UTC
9275a29 Nits: choiceb induction principle 19 October 2023, 14:57:04 UTC
7467f96 read/write, need to be checked 16 October 2023, 06:30:36 UTC
2eb1694 conseq for equivF and equivS 16 October 2023, 06:30:36 UTC
2558845 more unitary syntax 15 October 2023, 08:28:02 UTC
1a3e910 fix typing for unitary/measure 14 October 2023, 07:22:52 UTC
66d01e6 fix stdlib + parser 14 October 2023, 06:51:07 UTC
2468c5e simplify printing 14 October 2023, 05:28:24 UTC
f71b530 equiv skip 14 October 2023, 05:12:04 UTC
8ea7241 proc rule for defined function 13 October 2023, 20:42:39 UTC
1ceab33 WIP 13 October 2023, 19:57:27 UTC
56a5c6e WIP 13 October 2023, 16:30:53 UTC
6e71e4f WIP 13 October 2023, 15:44:56 UTC
f5d5b47 PP 13 October 2023, 14:08:15 UTC
ce19b24 parser 13 October 2023, 12:56:48 UTC
3740f78 WIP 13 October 2023, 06:29:59 UTC
ecc6e3c WIP 12 October 2023, 20:13:42 UTC
499e2cd qequivF + qequivS : compilation work 12 October 2023, 19:42:26 UTC
1204364 WIP 12 October 2023, 16:52:49 UTC
013e103 WIP 12 October 2023, 13:55:08 UTC
2c9224e WIP (stdlib) 12 October 2023, 13:46:49 UTC
725ace9 WIP 12 October 2023, 13:28:01 UTC
5a6b4d9 Qinit @decl 12 October 2023, 10:04:42 UTC
2640590 Qinit 12 October 2023, 09:51:47 UTC
78b6f3b typing of calls 12 October 2023, 09:23:28 UTC
f95a71e WIP (typing) 12 October 2023, 07:36:29 UTC
c0b09e8 WIP (typing) 12 October 2023, 07:07:02 UTC
3c33782 WIP (typing + parser) 12 October 2023, 06:00:17 UTC
cb5be7c syntax example 12 October 2023, 05:26:27 UTC
59b32a7 parser 12 October 2023, 05:09:51 UTC
dac67db typing of measure (missing disjointness) 12 October 2023, 05:05:22 UTC
e1eb22f typing compiles 12 October 2023, 04:18:36 UTC
d2453c4 WIP 11 October 2023, 08:45:36 UTC
01cf00a WIP 11 October 2023, 07:27:42 UTC
ecb9c18 fix prefix conflict check 10 October 2023, 20:49:41 UTC
2537c1a tentative implem of quantum_valid 10 October 2023, 20:36:57 UTC
d3f2d83 change Scall, add Squantum and Smeasure, compilation works 10 October 2023, 17:17:46 UTC
ef58462 WIP (memory) 10 October 2023, 15:41:11 UTC
c072e04 WIP 10 October 2023, 09:37:09 UTC
bd45a42 WIP 10 October 2023, 09:18:33 UTC
a214a56 opsem: generate spec lemmas 26 September 2023, 11:14:56 UTC
5e383f5 Internal: do not consider an applied abstract module as a non-functor abstract module fix #455 26 September 2023, 07:28:36 UTC
back to top