Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
167 commits
Select commit Hold shift + click to select a range
bada5a0
Circuit reasoning functionality
Gustavo2622 Jan 20, 2026
1cbd638
First pass on new error reporting
Gustavo2622 Jan 22, 2026
60eb802
Added implicit type translation
Gustavo2622 Jan 22, 2026
267854c
Added duplicate checking for spec files and general cleanup
Gustavo2622 Jan 23, 2026
60577ad
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
Gustavo2622 Feb 3, 2026
973b124
Killed warnings
Gustavo2622 Feb 5, 2026
bc07042
Error and printing improvements
Gustavo2622 Feb 5, 2026
b116717
Added fail case circuit tests
Gustavo2622 Feb 5, 2026
de7b295
Minor error propagation fix
Gustavo2622 Feb 5, 2026
4b94cb8
Allow uninitialized program variable in circuit solve for hoare goals
Gustavo2622 Feb 6, 2026
f21c0cb
Changed alpha equiv hash to not compute form normal form and fixed ci…
Gustavo2622 Feb 9, 2026
4f43916
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
Gustavo2622 Feb 9, 2026
9b11172
Fixed merge problems + nits on error printing
Gustavo2622 Feb 9, 2026
08d87a3
Fixing FIXMEs
Gustavo2622 Feb 9, 2026
fc94b6c
Moved map reference to inside function scope in hash
Gustavo2622 Feb 10, 2026
2260a26
Started documenting circuit tactic and small fix to circuit test
Gustavo2622 Feb 11, 2026
5573b37
Added documentation and tests for circuit tactics
Gustavo2622 Feb 16, 2026
ab50672
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub Feb 18, 2026
d0d639b
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub Feb 19, 2026
2f23d0a
Remove bindings for hidden theories
Gustavo2622 Feb 19, 2026
a0a5b1e
WIP: Fixing memory leaks
Gustavo2622 Feb 21, 2026
e71eed9
Fixed alpha-invariant hashing bug
Gustavo2622 Feb 21, 2026
4fe578a
Revert spec file in easycrypt.project and extend loader to support sp…
Gustavo2622 Feb 23, 2026
9b6dd79
Improve locate API
Gustavo2622 Feb 23, 2026
9a09143
Proper error message
Gustavo2622 Feb 23, 2026
701fd10
load spec file relatively to current processed file
strub Feb 23, 2026
efd0d4c
Error message for ec scope
Gustavo2622 Feb 26, 2026
5d4da0b
nits
Gustavo2622 Feb 27, 2026
4a85a01
WIP: Bitwuzla -> Bitwuzla_cxx
Gustavo2622 Mar 3, 2026
4a6d777
progress on clones & bindings
strub Mar 4, 2026
06849a6
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub Mar 4, 2026
d98dc0b
generic bindings now work
strub Mar 4, 2026
4735ecc
Merge remote-tracking branch 'origin/bdep_ecCircuitsRefactor' into bd…
strub Mar 5, 2026
2b00eb5
[refold]: allow rigid unification
strub Mar 8, 2026
64731a4
QFABV: aligned extraction
strub Mar 9, 2026
d789902
WIP: Proc change add code + simple framing
Gustavo2622 Mar 9, 2026
e8f828c
Fix oppath cloning
strub Mar 10, 2026
ff94177
Fix QFABV
strub Mar 10, 2026
1790498
Fixes to proc change indexes
Gustavo2622 Mar 10, 2026
4e9587f
Revert "Fixes to proc change indexes"
Gustavo2622 Mar 12, 2026
29e8888
Revert "WIP: Proc change add code + simple framing"
Gustavo2622 Mar 12, 2026
9eed3e5
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub Mar 16, 2026
1bacdf9
fix merge warnings
strub Mar 17, 2026
64b53a0
int -> int64 for lospec literals
strub Mar 17, 2026
ab16441
lospec: raw equality
strub Mar 17, 2026
b6c6e26
Forward call with framed pre
strub Mar 20, 2026
ddbbbb2
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub Mar 23, 2026
098a1cc
LSP
strub Jan 21, 2026
ea8650c
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub Mar 25, 2026
c4f9553
Merge remote-tracking branch 'origin/vscode' into bdep_ecCircuitsRefa…
strub Mar 25, 2026
d83b2c7
Tighten proc-change observability
strub Mar 25, 2026
fbc3a06
Merge branch 'proc-change-no-eq-for-post' into bdep_ecCircuitsRefactor
strub Mar 25, 2026
07d9e6d
LSP
strub Jan 21, 2026
176705b
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub Mar 26, 2026
4f4ddca
Merge branch 'vscode' into bdep_ecCircuitsRefactor
strub Mar 26, 2026
62cbd2d
LSP
strub Jan 21, 2026
643af9e
Merge branch 'vscode' into bdep_ecCircuitsRefactor
strub Mar 26, 2026
cd6faa0
fix dune
strub Mar 26, 2026
fe42eb9
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub Mar 30, 2026
11857f3
Fixed circuit test binding syntax
Gustavo2622 Mar 30, 2026
6680959
Fix simplify flag handling in `cfold`
strub Mar 30, 2026
95d21df
Merge branch 'fix-cfold-simplify' into bdep_ecCircuitsRefactor
strub Mar 30, 2026
3814520
Merge branch 'bdep_ecCircuitsRefactor' of github.com:EasyCrypt/easycr…
strub Mar 30, 2026
f3c8905
Added precondition attachment to non-equality goals for bdep
Gustavo2622 Mar 30, 2026
fe9fba3
Add goal printing flags (-upto, -lastgoals) and LLM agent guide
strub Apr 11, 2026
dd93ca9
Replace LLM batch mode with interactive REPL protocol
strub Apr 12, 2026
cf30a76
Add LLM REPL improvements and built-in guide
strub Apr 13, 2026
26747c4
Merge branch 'llm-interactive' into bdep_ecCircuitsRefactor
strub Apr 13, 2026
0b07a19
Fixed proc change not registering new vars in program memory
Gustavo2622 Apr 18, 2026
9bf3bc9
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub May 31, 2026
5802c59
Remove editor & agent tooling (LSP server, VSCode extension, LLM REPL)
strub May 31, 2026
d0c06e1
Remove orphaned LSP helpers from ecIo (next_sentence_from, isfinal_to…
strub May 31, 2026
eaad87e
Remove refold rigid-unification feature (tracked separately in PR #923)
strub May 31, 2026
6cb868d
Restore assets/latex/eclistings.sty (sync with origin/main)
strub May 31, 2026
47c9fba
Cloning: support inlining a type via clone-inline (clinline)
strub May 31, 2026
67f5230
Merge branch 'deploy-tyd-clinline-pr' (PR #1021: type clinline) into …
strub May 31, 2026
5b30fd4
Revert flake.nix/flake.lock to origin/main (unrelated to circuit PR)
strub May 31, 2026
53b543b
Cleanup: revert README, drop .bck files, fix abstract_bind test
strub May 31, 2026
89596a7
PHL: make eqobs-in programmatically reusable (split parse/tactic)
strub May 31, 2026
3201a6f
Merge branch 'deploy-eqobs-refactor' (PR #1023: eqobs-in programmatic…
strub May 31, 2026
3c29b87
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub May 31, 2026
07b5aee
Cleanup: revert unrelated non-circuit changes to origin/main
strub May 31, 2026
fc6edb4
Remove dead ?kinds parameter from the loader locate API
strub May 31, 2026
a352713
Factor out AInvFHashtbl into EcAlphaInvHashtbl module
strub Jun 1, 2026
1aa1303
EcAlphaInvHashtbl: bounded de-Bruijn-level hash; complete all cases
strub Jun 1, 2026
678adb8
EcAlphaInvHashtbl: drop the functor; pass hyps to table creation
strub Jun 1, 2026
587d4fc
ecCircuits: consolidate op classification/dispatch
strub Jun 1, 2026
d87db39
ecCircuits/ecLowCircuits: remove the dead 'debug' flag
strub Jun 1, 2026
bf5a428
circuit: unify timing behind a Circuit:timing flag
strub Jun 1, 2026
3779cdd
ecCircuits: trim .mli to the externally-used interface
strub Jun 1, 2026
6170547
Add a house-style ocamlformat profile; reformat ecCircuits.ml
strub Jun 1, 2026
479d237
ecCircuits: remove dead values
strub Jun 1, 2026
e7cf2a9
ecCircuits: collapse CantConvertToCirc `OpK into `Op
strub Jun 1, 2026
8f245b4
runtest: add a file_include allow-list per test scenario
strub Jun 1, 2026
f7c72fa
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub Jun 1, 2026
5786089
Remove dead t_outline_stmt from ecPhlOutline
strub Jun 1, 2026
e114b11
ecUtils: drop debug oget dump and dead List.collapse
strub Jun 1, 2026
8f4c7aa
ecCircuits: split circuit_of_form's recursion into named helpers
strub Jun 1, 2026
bef50e2
cleanup
strub Jun 2, 2026
555c584
Add an interface for EcLowCircuits
strub Jun 2, 2026
56e6015
ecLowCircuits: add section separators (house (* === *) / (* --- *) st…
strub Jun 2, 2026
375a41f
ecLowCircuits: remove dead code
strub Jun 2, 2026
1509da2
lospecs/smt: reformat with the house ocamlformat profile (one-off)
strub Jun 2, 2026
546a992
lospecs/smt: factor out SMT input-variable name encoding
strub Jun 2, 2026
16c44a6
lospecs/smt: factor out the shared AIG-to-SMT node translation
strub Jun 2, 2026
479acf1
lospecs/smt: make the node-translation cache per-instance
strub Jun 2, 2026
6b1aa9f
lospecs/smt: wrap the translation caches in an internal Cache module
strub Jun 2, 2026
221c285
lospecs/smt: back the Cache variable table with a Hashtbl
strub Jun 2, 2026
333934f
lospecs/smt: factor out SAT-model printing into print_model
strub Jun 2, 2026
f9ae397
lospecs/smt: drop print_model's header parameter, use one label
strub Jun 2, 2026
449ad58
First FIXME/TODO cleanup pass
Gustavo2622 Jun 2, 2026
b247203
circuit: return a lazy SMT counter-model; add Circuit:debug_smt flag
strub Jun 2, 2026
79d304c
lospecs/smt: make the solving state an explicit context
strub Jun 2, 2026
db45c7e
Added QFABV theories
Gustavo2622 Jun 2, 2026
4f98112
Second FIXME pass
Gustavo2622 Jun 2, 2026
d27b866
Third FIXME pass
Gustavo2622 Jun 3, 2026
4ddac8b
Fix unit tests
Gustavo2622 Jun 3, 2026
dd47987
Remove DFSet
Gustavo2622 Jun 3, 2026
a7b138c
Fixed proc change circuit bug and added tests
Gustavo2622 Jun 8, 2026
6056a16
Circuit documentation
Gustavo2622 Jun 8, 2026
724ec4c
Circuit documentation
Gustavo2622 Jun 11, 2026
b94be7b
circuit: render the SMT counter-model per input; rename circ_taut -> …
strub Jun 15, 2026
eab6eb0
Merge remote-tracking branch 'origin/bdep_ecCircuitsRefactor' into bd…
strub Jun 15, 2026
b3e02ec
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub Jun 15, 2026
c637cb5
examples: add circuit.ec demonstrating the circuit tactic family
strub Jun 15, 2026
9673b69
examples: add circuit examples over arrays and multiple word sizes
strub Jun 15, 2026
bea610c
examples: add extens.ec demonstrating the extens tactical
strub Jun 15, 2026
d15a6bf
circuit: read the SMT counter-model from the solved circuit's variables
strub Jun 15, 2026
0357c26
circuit: fix proc change circuit unsoundness (collapsed inputs)
strub Jun 15, 2026
ab3159f
circuit: open hoare-triple program variables up front; uninit read is…
strub Jun 15, 2026
080d9af
circuit: model an arbitrary (witness) value as a fresh input, not sha…
strub Jun 15, 2026
cce5804
tests: regression tests for circuit-tactic soundness fixes
strub Jun 15, 2026
b69aadf
circuit: remove the dead uninitialized-marker machinery
strub Jun 15, 2026
a289c63
ecTypesafeFol: add a .mli
strub Jun 15, 2026
492bbc6
ecTypesafeFol: remove dead code exposed by the .mli
strub Jun 15, 2026
7726dcf
ecTypesafeFol: simplify fapply_safe to build-and-reduce (no case anal…
strub Jun 15, 2026
c1c94a1
ecTypesafeFol: drop f_app_safe's `full` flag and InsufficientArguments
strub Jun 15, 2026
b4f259c
ecTypesafeFol: a unification failure in f_app_safe is an internal error
strub Jun 15, 2026
37d2fc6
ecTypesafeFol: look the operator up by path in f_app_safe
strub Jun 15, 2026
cd19ff2
ecTypesafeFol: open the operator type with UE.openty
strub Jun 15, 2026
1a4feeb
ecTypesafeFol: f_app_safe gains ?typarams/?rty; sync .mli
strub Jun 15, 2026
c1d480d
ecTypesafeFol: head-reduce in fapply_safe instead of full CBV
strub Jun 15, 2026
c78c00b
ecTypesafeFol: over-application in fapply_safe is a hard error
strub Jun 15, 2026
7c22ebc
ecTypesafeFol: rename f_app_safe -> f_op_app, fapply_safe -> f_app
strub Jun 15, 2026
2028a41
circuit: translate opaque circuit-typed leaves as fresh inputs
strub Jun 15, 2026
c7b662d
circuit: label counter-model inputs with their source names
strub Jun 15, 2026
e759dec
lospecs/aig: add an interface exposing only the used surface
strub Jun 15, 2026
33a5188
lospecs/aig: remove dead code
strub Jun 15, 2026
6d3401d
lospecs: drop the dead AIGER-file-writing chain
strub Jun 15, 2026
1206f61
lospecs/aig: make the node type private
strub Jun 15, 2026
5da59d6
lospecs/deps: add an interface exposing only the used surface
strub Jun 15, 2026
32e4ca5
lospecs/deps: remove dead code
strub Jun 15, 2026
c4cfb00
lospecs/deps: remove the no-op global cache
strub Jun 15, 2026
73d48d9
lospecs/deps: document merge_deps; cosmetic cleanup
strub Jun 15, 2026
60173f6
lospecs/typing: add an interface exposing only the used surface
strub Jun 15, 2026
1d3020f
lospecs/typing: tt_program builds the empty env itself
strub Jun 15, 2026
dfe21bf
lospecs/typing: remove dead code
strub Jun 15, 2026
fe2239a
lospecs: drop unused yojson derivation and ppx dependencies
strub Jun 15, 2026
31fcef6
lospecs/smt: add an interface exposing only the used surface
strub Jun 15, 2026
474a754
lospecs: rename circuit_spec to specifications
strub Jun 15, 2026
dd62640
lospecs/io: add an interface; drop dead print_source_for_range
strub Jun 15, 2026
b61da52
lospecs/ast: add an interface; drop dead Ident.name/id and IdentMap
strub Jun 15, 2026
830028a
lospecs/ptree: add an interface; drop dead Lc helpers
strub Jun 15, 2026
0aa3052
lospecs/circuit: drop dead conversions/printers; export ult/ule/slt/sle
strub Jun 15, 2026
acca891
lospecs: remove the unused Word module
strub Jun 15, 2026
f5712be
lospecs/aig: restore eval and get_bit (public API)
strub Jun 15, 2026
fa75712
Revert "circuit: translate opaque circuit-typed leaves as fresh inputs"
strub Jun 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "libs/lospecs/tests/simde"]
path = libs/lospecs/tests/simde
url = git@github.com:simd-everywhere/simde.git
20 changes: 20 additions & 0 deletions .ocamlformat
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Gradual ocamlformat adoption: globally disabled; only files listed in
# .ocamlformat-enable are formatted. Flip `disable` to false (and drop
# .ocamlformat-enable) for a repo-wide migration.
profile = default
version = 0.27.0
margin = 80
break-cases = toplevel
match-indent = 0
match-indent-nested = never
cases-exp-indent = 2
type-decl-indent = 2
leading-nested-match-parens = false
parens-tuple = multi-line-only
space-around-lists = false
space-around-arrays = false
space-around-records = false
space-around-variants = false
disable = true
exp-grouping = preserve
break-fun-decl = fit-or-vertical
1 change: 1 addition & 0 deletions .ocamlformat-enable
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
src/ecCircuits.ml
2 changes: 1 addition & 1 deletion config/tests.config
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ exclude = theories/prelude

[test-examples]
okdirs = !examples
exclude = examples/MEE-CBC examples/old examples/old/list-ddh !examples/incomplete examples/to-port
exclude = examples/MEE-CBC examples/exclude examples/old examples/old/list-ddh !examples/incomplete examples/to-port
Comment thread
strub marked this conversation as resolved.

[test-mee-cbc]
okdirs = examples/MEE-CBC
Expand Down
Loading
Loading