https://github.com/EasyCrypt/easycrypt

sort by:
Revision Author Date Message Commit Date
06e6060 nix-shell: do not pin provers 07 November 2023, 07:36:17 UTC
9275a29 Nits: choiceb induction principle 19 October 2023, 14:57:04 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
13296e5 In subst, when crossing a binding, remove the bound variable. If not, the substitution can lead to name captures. 25 September 2023, 18:44:32 UTC
8fa2f94 op: fix creation of refined operators Do the operator substitution and then close the formula. 22 September 2023, 19:27:28 UTC
50bcef7 Remove references 22 September 2023, 11:49:02 UTC
ef42e9d Fixed glob unsoundess through eager normalization of globs when type checking and substituting modules. 22 September 2023, 11:49:02 UTC
755fe93 stdlib: new lemma on summable 22 September 2023, 08:09:07 UTC
d5a04f5 Read library paths from the EC_IDIRS/EC_RDIRS env. vars. Library paths can be specified using the environment variables EC_IDIRS and EC_RDIRS. They contain each a list of specifications separated by semicolumns (;). Each said specification is a path, optionally qualified (when present, the qualifier is followed by a colon (:)). Specifications given in the EC_IDIRS variable behave the same as the ones given in the idirs configuration entry or on the command line following a -I argument. Specifications given in the EC_RDIRS variable behave the same as the ones given in the rdirs configuration entry or on the command line following a -R argument. 21 September 2023, 11:27:48 UTC
a9ae1ae add more lemmas on converto 21 September 2023, 09:32:44 UTC
c410d3c remove hyp in normrV 21 September 2023, 09:32:15 UTC
c60092d stdlib: limit of the inverse of a sequence 21 September 2023, 09:08:56 UTC
eb00ea4 Fix the printing of operator bodies fix #442 15 September 2023, 12:25:39 UTC
8746da3 cloning: fix regression bug in operators convertibilty check The check should use the full conversion. fix #437 14 September 2023, 10:51:55 UTC
287106a [nix] vendor prover derivations 13 September 2023, 20:57:12 UTC
480c0ea Operator unfolding when applied to enough arguments When declaring an operator, it is now possible to specify which arguments are mandatory before an operator application is automtically unfolded during simplification. Syntax is: ``` op name (x1 : t1) (xp : tp) / (x_p+1 : t_p+1) ... = ... ``` where the optional `/` indicated that the operator `name` will be automatically unfolded when applied to at least `p` arguments. 06 September 2023, 13:42:47 UTC
8243791 [runtest]: new CLI argument --bin This argument tells `runtest` which binary to use for EasyCrypt. It takes precedence over what is found in the INI file (in default/bin). Moreover, `easycrypt runtest` automatically set --bin to itself. This allows to select the correct version of EasyCrypt without having to tweak the INI file accordingly. 06 September 2023, 11:44:57 UTC
7d59877 hint simplify now extracts rewriting rules from <=> 05 September 2023, 12:52:06 UTC
bcdb9cb Fixed the type given to a constructor when matching directly. 04 September 2023, 16:43:08 UTC
46d6948 Operators body can now be formulas When cloning a theory, inlined operator definitions must be expressions s.t. their substitution can be done in procedures bodies. 04 September 2023, 08:59:09 UTC
35e3849 get rid of axiom in `Birthday` 30 August 2023, 11:43:29 UTC
faedf01 Additional List lemmas. Additional lemmas in StdBigop and RealSeries. 29 August 2023, 12:08:44 UTC
c13b549 [internal] EcSubst does not rely anymore on the low-level substitutions Co-authored-by: Pierre-Yves Strub <pierre-yves@strub.nu> Co-authored-by: Benjamin Grégoire <Benjamin.Gregoire@inria.fr> 28 August 2023, 10:36:37 UTC
6a203df fix smt that regressed with z3 bump to 4.12.2 all else being equal, works with 4.12.1, fails with 4.12.2 fails with all other solvers 12 August 2023, 08:57:48 UTC
ae29508 pin alt-ergo, z3 12 August 2023, 08:57:48 UTC
705bafe refactor nix to avoid repetition 12 August 2023, 08:57:48 UTC
95cabb9 add support for test config 'report' option there is currently no way of asking for a report with 'easycrypt runtest' 07 August 2023, 17:56:12 UTC
da3be5c [chore] whitespace 07 August 2023, 17:56:12 UTC
a72dada Propagate subtype changes to Word 02 August 2023, 00:47:04 UTC
917bba2 Ring/field tactics available as soon as an instance is found. 20 July 2023, 13:49:02 UTC
e75a7cf get rid of unbounded smt calls outside examples 20 July 2023, 13:22:13 UTC
1bb2e2d Additonal lemmas on fset equality establishing an equivalence, and additional lemma on perm_eq and undup (making the oflist_perm_eq lemma redundant). 19 July 2023, 08:46:42 UTC
6e066e6 Fix wording of error messages "function" -> "procedure" fix #417 13 July 2023, 11:07:33 UTC
add9232 [chore] fix more raw smt calls 11 July 2023, 20:01:13 UTC
0c60516 [chore] fix raw smt calls (theories/distributions) 11 July 2023, 20:01:13 UTC
757ec09 [chore] remove more raw smt calls 29 June 2023, 13:20:43 UTC
85d03a2 [chore] fix some warnings and flaky smt calls (#408) 29 June 2023, 11:18:26 UTC
cddd7d9 [theories] define product using allpairs (#411) 28 June 2023, 14:58:53 UTC
60c3179 Renaming the easycrypt lib (making it easyier for external imports) (#410) 28 June 2023, 12:25:32 UTC
73ac095 proc op: add support for the "local" modifier 27 June 2023, 13:55:48 UTC
3693e61 [theories] additional elimination rules for finite sums (#401) 22 June 2023, 13:18:15 UTC
c0eeee4 Refactor out Fermat's little theorem from ZModP to IntDiv 21 June 2023, 10:34:00 UTC
4965377 Prove Fermat's little theorem 21 June 2023, 10:34:00 UTC
e38fac3 Keep f_let_simp 16 June 2023, 10:40:43 UTC
d1858f6 Remove dead code relating to substitution; instead, the f_subst mechanism should be used. (And this is in fact done for simplification of let formulas in EcReduction.) 16 June 2023, 10:40:43 UTC
341cc08 New inline tactic We realized that sometimes we want to inline everything besides one procedure and found that it is cumbersome to have to list everything that has to be inlined instead of listing what should remain as is. So we decided to add this to the current inline. We should have kept the previous use cases identical as supported by the fact that nothing broke while not touching any old ec files. In doing so, we also added the possibility to provide the name of a module leading to inlining all the procedure in this module. Finally, one can now provide the name of a procedure and it will inline all the procedures with that name regardless of the module in which they belong. As already mentioned, one can find examples at the following link. https://github.com/EasyCrypt/easycrypt/blob/deploy-inline/examples/tactics/inline.ec start with parsing pattern matching on inline add some examples fix 16 June 2023, 10:39:43 UTC
f0e15c2 Turned the files in src into a lib called Core. (#397) * Turned the files in src into a lib called core. * Removed reference to dead code in dune file The file ecCoreHiPhl was removed as dead code, no need to exclude it in the dune file anymore. --------- Co-authored-by: Romain Tetley <rtetley@inria.fr> 15 June 2023, 14:57:04 UTC
8232d04 Remove dead code (#398) The file ecCoreHiPhl.ml seems to be dead code because: - It contains an open EcLogic which was deleted in 2014 (commit 6fe0ea944a53ffc89bdde9bb70f81629ff764c97) - The last time it was modified (apart from licence headers) was in 2013 (commit f2e05e2688ab1894daf760ed255060253839286c) 15 June 2023, 14:19:31 UTC
b0eeedc Take PolyReduce theory from Kyber project Add choice-based inverses and fix broken proofs from subtype changes Co-authored-by: Pierre-Yves Strub <pierre-yves@strub.nu> 13 June 2023, 09:09:31 UTC
dfec6be restore name 13 June 2023, 07:53:12 UTC
a4a0332 Tighten the ROM bad call results 13 June 2023, 07:53:12 UTC
d481338 [lib] FSet: fcard_eq1 Co-authored-by: Christian Doczkal <christian.doczkal@mpi-sp.org> 13 June 2023, 07:30:41 UTC
c73033b [lib] List: remove all raw smt calls 13 June 2023, 07:14:59 UTC
ab21d3a New rewrite-pr lemma: Pr[muE] Transform a Pr[...] statement into its pointwise summation. 12 June 2023, 12:22:39 UTC
16747c7 properly fail early if one SMT returns `Invalid` This was seemingly intended, but racy 10 June 2023, 22:35:56 UTC
cf55a7c warn on `Invalid` SMT results 10 June 2023, 22:35:56 UTC
eaba09c [theories]: p_max (maximum probability for atomic events) Co-authored-by: Ethan Lee <ylee1228@umd.edu> 05 June 2023, 14:39:42 UTC
4650947 Removed Smart constructors for types, expressions, formulae, paths, and statements. 05 June 2023, 06:53:24 UTC
dc50f44 Forbid the usage of [declare] for concrete modules. Fix #328 26 May 2023, 12:06:42 UTC
8f15fcb Fix datatype comparisons for theory replays We do not need to check the inductive schemas: - if the constructors are compatible, so are the schemas, - anyway, they are going to be checked right after, and - at that point, they are not convertible because they come from incomaptible enclosing theories. Fix #381 25 May 2023, 14:30:11 UTC
926927a Accept non-printed variable only abbreviations. fix #382 25 May 2023, 14:23:31 UTC
242e996 New command: proc op. This command generates an operator that computes the output distribution of a stateless proc. The command is in beta-mode. It misses: - a support for a larger set of instructions, - better error messages, - a registry of generated proc ops, and - a hoare/phoare statement that links the operator to the procedure. 25 May 2023, 14:16:01 UTC
cf79f50 [theories] FunRO: RO for FinType using dfun for init 23 May 2023, 10:49:03 UTC
860dc3f use polymorpic wrapper to enable theory cloning 17 May 2023, 04:25:30 UTC
d77676c clean up SubType theory 17 May 2023, 04:25:30 UTC
a672c38 Updated examples to match new Subtype. 17 May 2023, 04:25:30 UTC
957afc7 New Subtype theory. Updated stdlib to match. 17 May 2023, 04:25:30 UTC
ee26cc5 Commit b2106aa suppressed additional parentheses around match ... end in all circumstances, even though on the left and right of applications the parser requires parentheses, the theory being this makes it easier for humans to scan. So this commit inserts parentheses around matches in applications, but not elsewhere (e.g., not in infix operators). See below for examples. [The pretty printer needs a major redesign, so this is another stopgap measure.] require import AllCore List. type t = [ A of int | B of bool]. (* the following formulas now parse and pretty-print the same *) lemma foo1 (f : int -> bool) : f (match A 3 with | A a => a | B b => if b then 1 else 2 end). proof. abort. lemma foo2 : (match A 3 with | A a => fun _ => a | B b => fun _ => 2 end) 3 = 4. proof. abort. lemma foo3 (f : (int -> int) -> (int -> int)) : f (match A 3 with | A a => fun _ => a | B b => fun _ => 2 end) 3 = 4. proof. abort. lemma foo4 (f : int -> bool) : f (1 + match A 3 with | A a => a | B b => if b then 1 else 2 end). proof. abort. lemma foo5 (f : int -> bool) : f (match A 3 with | A a => a | B b => if b then 1 else 2 end + 1). proof. abort. lemma foo6 (f : int -> bool) : f (3 + match A 3 with | A a => a | B b => if b then 1 else 2 end + 1). proof. abort. 16 May 2023, 07:04:10 UTC
94538c5 [ci] update actions to avoid node deprecation 02 May 2023, 09:38:51 UTC
bde8af8 Track the argument variables as well. Also update ROM proof. 02 May 2023, 09:38:19 UTC
f626259 [tactic] Rewrite Equiv 24 March 2023, 13:44:07 UTC
b2106aa An attempt at fixing pretty printing bugs in which formulas that end with implications, conditionals or quantifiers and appear to the left of binary operators have their scopes extended to include those following binary operators. E.g., (3 :: 4 :: let x = 1 in [x]) = ys. incorrectly pretty prints as 3 :: 4 :: let x = 1 in [x] = ys 21 March 2023, 10:59:33 UTC
ee4c20e [chore] update dependency versions in README 20 March 2023, 16:28:35 UTC
ed96ecf fix a failing proof in MEE-CBC this aligns the top-level proof with earlier changes to a leaf theory 20 March 2023, 16:28:35 UTC
ad96b3d simplify some smt calls 20 March 2023, 16:28:35 UTC
7a00b11 Remove raw smt in MEE-CBC 20 March 2023, 16:28:35 UTC
472a2d4 bump Why3 version in .nix files 20 March 2023, 16:28:35 UTC
9f46b97 Bump Why3 supported version (1.5 -> 1.6) This makes EC compatible with OCaml 5. Close #350 20 March 2023, 16:28:35 UTC
1365cea drop unused and obsolete theory files 17 March 2023, 13:57:32 UTC
189283a Move to github docker repository 15 March 2023, 07:41:31 UTC
bc97ee6 Extend definition of PKE to ROM from Kyber spec 14 March 2023, 14:39:11 UTC
c7500bd [nix] pin the Why3 version (#353) * [nix] pin the Why3 version This makes it easier to bump versions and rely on CI even if out of sync with nixpkgs PRs. 14 March 2023, 14:26:40 UTC
ad13f30 [theories]: add various individual lemmas 21 February 2023, 16:33:42 UTC
a347ecb [theories]: port "lock" from MathComp 21 February 2023, 14:47:31 UTC
5072789 [theories]: finite expectation (Jensen_fin_concave) 21 February 2023, 14:16:50 UTC
1ccf46b [theories]: lemmas for dcond and dbiased 21 February 2023, 11:29:39 UTC
cc31629 [ci]: workflow to compile with nix 17 February 2023, 12:12:25 UTC
d401307 [nix]: shell.nix + default.nix 17 February 2023, 12:12:25 UTC
ae4a816 default.nix: option to install provers + install Python3 deps 16 February 2023, 15:21:56 UTC
a9f3453 mention dune3/alt-ergo-2.4.2 issue 16 February 2023, 09:19:39 UTC
d47a0cd kill dead code 16 February 2023, 08:11:31 UTC
8eca6c7 default.nix: update dependencies 16 February 2023, 07:59:20 UTC
294e2a6 [dune]: auto-generate the list of EC files to be installed This requires dune >= 3.6 15 February 2023, 12:11:09 UTC
efab580 matrix library with support for arbitrary dynamic size (#267) 14 February 2023, 15:25:42 UTC
6f695ba Fix encoding of Why3 fixpoint containing higher-order calls to itself Fix #334 14 February 2023, 10:12:50 UTC
94ccd48 Implement a naive termination checker Termination is done via a simple subterm check on the last inductive argument. Ref #62, #144 14 February 2023, 10:12:41 UTC
a4e43d1 remove admitted proof in DJoin 14 February 2023, 10:10:22 UTC
88928de [theories]: ring with generic (choice based) inverse 13 February 2023, 15:20:47 UTC
2803f66 Attempt to implement `RingQuotientDflInv` 13 February 2023, 15:06:56 UTC
back to top