https://github.com/EasyCrypt/easycrypt

sort by:
Revision Author Date Message Commit Date
e95277e multivariate polynomials type 05 September 2023, 13:35:12 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
6890aca fix small bug in reduction of projection 04 February 2023, 10:59:08 UTC
472c8db Added cancellation variant for ofword that uses mkseq to Word.eca, and added lemmas about the integer values of onew and zerow to BitWord.eca. 31 January 2023, 13:42:57 UTC
701f4f0 Unify created variables correctly. 23 January 2023, 15:43:55 UTC
2f98c08 [tactic]: add the ability to create a memory from thin air. The syntax is `pose &m`. Close #320 20 January 2023, 09:28:31 UTC
7f08941 [tactic]: added hoare variant for `match` Here is an example of use: ``` require import AllCore. type t = [ A of int | B of bool | C ]. module M = { proc f(x : t) : int = { var y : int <- 0; match x with | A v => y <- `|v|; | B _ => y <- 1; | C => y <- 2; end; return y; } }. lemma L : hoare[M.f : true ==> 0 <= res]. proof. by proc; sp; match => [v|b|]; auto=> /> /#. qed. ``` 19 January 2023, 21:44:41 UTC
ba37062 runtest: ECRJOBS env. variable 05 January 2023, 13:05:38 UTC
e034e6c [internal]: fix detection of empty expression-level substitutions. 05 January 2023, 09:50:08 UTC
b1fe56d remove unused dependency (cmdliner) 04 January 2023, 14:01:27 UTC
c7ceb4f [runtest]: better display of multi-line error messages 04 January 2023, 14:01:09 UTC
ff6a4bb [runtest]: append scenarios to the CLI 04 January 2023, 13:06:36 UTC
36e617d [CLI]: ec-runtest is now accessible via a CLI subcommand - the subcommand is named `runtest` - the real script is now in `<libexec>/easycrypt/commands/` 04 January 2023, 12:46:39 UTC
796cc2d [tactic]: fix t_solve performance issues 14 December 2022, 09:49:19 UTC
f180466 operator to get maximal element in list use predicates formatting and replacing abstract theory with section disambiguate max operator patch smt failure 14 December 2022, 09:48:07 UTC
9656af6 Remove dependency to oldlibs for Group 14 December 2022, 09:46:38 UTC
d1dc434 Various bug fixes for clones (modules & lemmas) fix #292 14 December 2022, 09:23:39 UTC
ee7c5ff force delta on convertibility checks Closes #154 24 November 2022, 16:39:53 UTC
69c9c2e add few lemmas on dfun 16 November 2022, 08:40:22 UTC
1b369f9 add theory Dfun_sub + backport many lemma from deploy-quantum 10 November 2022, 10:06:28 UTC
9f4a2f7 [ec-runtest]: add the possibility to exclude file based on the name The entry is `file_exclude`. It is a space-separated list of globs. A file is excluded if its basename matches any of the glob. See `fnmatch.fnmatch` of the standard Python libraries to get a description of which glob patterns are supported. Fix #303 07 November 2022, 20:30:11 UTC
back to top