-
Notifications
You must be signed in to change notification settings - Fork 63
EasyCrypt Circuit Based Reasoning Extension #752
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Gustavo2622
wants to merge
167
commits into
main
Choose a base branch
from
bdep_ecCircuitsRefactor
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
167 commits
Select commit
Hold shift + click to select a range
bada5a0
Circuit reasoning functionality
Gustavo2622 1cbd638
First pass on new error reporting
Gustavo2622 60eb802
Added implicit type translation
Gustavo2622 267854c
Added duplicate checking for spec files and general cleanup
Gustavo2622 60577ad
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
Gustavo2622 973b124
Killed warnings
Gustavo2622 bc07042
Error and printing improvements
Gustavo2622 b116717
Added fail case circuit tests
Gustavo2622 de7b295
Minor error propagation fix
Gustavo2622 4b94cb8
Allow uninitialized program variable in circuit solve for hoare goals
Gustavo2622 f21c0cb
Changed alpha equiv hash to not compute form normal form and fixed ci…
Gustavo2622 4f43916
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
Gustavo2622 9b11172
Fixed merge problems + nits on error printing
Gustavo2622 08d87a3
Fixing FIXMEs
Gustavo2622 fc94b6c
Moved map reference to inside function scope in hash
Gustavo2622 2260a26
Started documenting circuit tactic and small fix to circuit test
Gustavo2622 5573b37
Added documentation and tests for circuit tactics
Gustavo2622 ab50672
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub d0d639b
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub 2f23d0a
Remove bindings for hidden theories
Gustavo2622 a0a5b1e
WIP: Fixing memory leaks
Gustavo2622 e71eed9
Fixed alpha-invariant hashing bug
Gustavo2622 4fe578a
Revert spec file in easycrypt.project and extend loader to support sp…
Gustavo2622 9b6dd79
Improve locate API
Gustavo2622 9a09143
Proper error message
Gustavo2622 701fd10
load spec file relatively to current processed file
strub efd0d4c
Error message for ec scope
Gustavo2622 5d4da0b
nits
Gustavo2622 4a85a01
WIP: Bitwuzla -> Bitwuzla_cxx
Gustavo2622 4a6d777
progress on clones & bindings
strub 06849a6
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub d98dc0b
generic bindings now work
strub 4735ecc
Merge remote-tracking branch 'origin/bdep_ecCircuitsRefactor' into bd…
strub 2b00eb5
[refold]: allow rigid unification
strub 64731a4
QFABV: aligned extraction
strub d789902
WIP: Proc change add code + simple framing
Gustavo2622 e8f828c
Fix oppath cloning
strub ff94177
Fix QFABV
strub 1790498
Fixes to proc change indexes
Gustavo2622 4e9587f
Revert "Fixes to proc change indexes"
Gustavo2622 29e8888
Revert "WIP: Proc change add code + simple framing"
Gustavo2622 9eed3e5
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub 1bacdf9
fix merge warnings
strub 64b53a0
int -> int64 for lospec literals
strub ab16441
lospec: raw equality
strub b6c6e26
Forward call with framed pre
strub ddbbbb2
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub 098a1cc
LSP
strub ea8650c
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub c4f9553
Merge remote-tracking branch 'origin/vscode' into bdep_ecCircuitsRefa…
strub d83b2c7
Tighten proc-change observability
strub fbc3a06
Merge branch 'proc-change-no-eq-for-post' into bdep_ecCircuitsRefactor
strub 07d9e6d
LSP
strub 176705b
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub 4f4ddca
Merge branch 'vscode' into bdep_ecCircuitsRefactor
strub 62cbd2d
LSP
strub 643af9e
Merge branch 'vscode' into bdep_ecCircuitsRefactor
strub cd6faa0
fix dune
strub fe42eb9
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub 11857f3
Fixed circuit test binding syntax
Gustavo2622 6680959
Fix simplify flag handling in `cfold`
strub 95d21df
Merge branch 'fix-cfold-simplify' into bdep_ecCircuitsRefactor
strub 3814520
Merge branch 'bdep_ecCircuitsRefactor' of github.com:EasyCrypt/easycr…
strub f3c8905
Added precondition attachment to non-equality goals for bdep
Gustavo2622 fe9fba3
Add goal printing flags (-upto, -lastgoals) and LLM agent guide
strub dd93ca9
Replace LLM batch mode with interactive REPL protocol
strub cf30a76
Add LLM REPL improvements and built-in guide
strub 26747c4
Merge branch 'llm-interactive' into bdep_ecCircuitsRefactor
strub 0b07a19
Fixed proc change not registering new vars in program memory
Gustavo2622 9bf3bc9
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub 5802c59
Remove editor & agent tooling (LSP server, VSCode extension, LLM REPL)
strub d0c06e1
Remove orphaned LSP helpers from ecIo (next_sentence_from, isfinal_to…
strub eaad87e
Remove refold rigid-unification feature (tracked separately in PR #923)
strub 6cb868d
Restore assets/latex/eclistings.sty (sync with origin/main)
strub 47c9fba
Cloning: support inlining a type via clone-inline (clinline)
strub 67f5230
Merge branch 'deploy-tyd-clinline-pr' (PR #1021: type clinline) into …
strub 5b30fd4
Revert flake.nix/flake.lock to origin/main (unrelated to circuit PR)
strub 53b543b
Cleanup: revert README, drop .bck files, fix abstract_bind test
strub 89596a7
PHL: make eqobs-in programmatically reusable (split parse/tactic)
strub 3201a6f
Merge branch 'deploy-eqobs-refactor' (PR #1023: eqobs-in programmatic…
strub 3c29b87
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub 07b5aee
Cleanup: revert unrelated non-circuit changes to origin/main
strub fc6edb4
Remove dead ?kinds parameter from the loader locate API
strub a352713
Factor out AInvFHashtbl into EcAlphaInvHashtbl module
strub 1aa1303
EcAlphaInvHashtbl: bounded de-Bruijn-level hash; complete all cases
strub 678adb8
EcAlphaInvHashtbl: drop the functor; pass hyps to table creation
strub 587d4fc
ecCircuits: consolidate op classification/dispatch
strub d87db39
ecCircuits/ecLowCircuits: remove the dead 'debug' flag
strub bf5a428
circuit: unify timing behind a Circuit:timing flag
strub 3779cdd
ecCircuits: trim .mli to the externally-used interface
strub 6170547
Add a house-style ocamlformat profile; reformat ecCircuits.ml
strub 479d237
ecCircuits: remove dead values
strub e7cf2a9
ecCircuits: collapse CantConvertToCirc `OpK into `Op
strub 8f245b4
runtest: add a file_include allow-list per test scenario
strub f7c72fa
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub 5786089
Remove dead t_outline_stmt from ecPhlOutline
strub e114b11
ecUtils: drop debug oget dump and dead List.collapse
strub 8f4c7aa
ecCircuits: split circuit_of_form's recursion into named helpers
strub bef50e2
cleanup
strub 555c584
Add an interface for EcLowCircuits
strub 56e6015
ecLowCircuits: add section separators (house (* === *) / (* --- *) st…
strub 375a41f
ecLowCircuits: remove dead code
strub 1509da2
lospecs/smt: reformat with the house ocamlformat profile (one-off)
strub 546a992
lospecs/smt: factor out SMT input-variable name encoding
strub 16c44a6
lospecs/smt: factor out the shared AIG-to-SMT node translation
strub 479acf1
lospecs/smt: make the node-translation cache per-instance
strub 6b1aa9f
lospecs/smt: wrap the translation caches in an internal Cache module
strub 221c285
lospecs/smt: back the Cache variable table with a Hashtbl
strub 333934f
lospecs/smt: factor out SAT-model printing into print_model
strub f9ae397
lospecs/smt: drop print_model's header parameter, use one label
strub 449ad58
First FIXME/TODO cleanup pass
Gustavo2622 b247203
circuit: return a lazy SMT counter-model; add Circuit:debug_smt flag
strub 79d304c
lospecs/smt: make the solving state an explicit context
strub db45c7e
Added QFABV theories
Gustavo2622 4f98112
Second FIXME pass
Gustavo2622 d27b866
Third FIXME pass
Gustavo2622 4ddac8b
Fix unit tests
Gustavo2622 dd47987
Remove DFSet
Gustavo2622 a7b138c
Fixed proc change circuit bug and added tests
Gustavo2622 6056a16
Circuit documentation
Gustavo2622 724ec4c
Circuit documentation
Gustavo2622 b94be7b
circuit: render the SMT counter-model per input; rename circ_taut -> …
strub eab6eb0
Merge remote-tracking branch 'origin/bdep_ecCircuitsRefactor' into bd…
strub b3e02ec
Merge remote-tracking branch 'origin/main' into bdep_ecCircuitsRefactor
strub c637cb5
examples: add circuit.ec demonstrating the circuit tactic family
strub 9673b69
examples: add circuit examples over arrays and multiple word sizes
strub bea610c
examples: add extens.ec demonstrating the extens tactical
strub d15a6bf
circuit: read the SMT counter-model from the solved circuit's variables
strub 0357c26
circuit: fix proc change circuit unsoundness (collapsed inputs)
strub ab3159f
circuit: open hoare-triple program variables up front; uninit read is…
strub 080d9af
circuit: model an arbitrary (witness) value as a fresh input, not sha…
strub cce5804
tests: regression tests for circuit-tactic soundness fixes
strub b69aadf
circuit: remove the dead uninitialized-marker machinery
strub a289c63
ecTypesafeFol: add a .mli
strub 492bbc6
ecTypesafeFol: remove dead code exposed by the .mli
strub 7726dcf
ecTypesafeFol: simplify fapply_safe to build-and-reduce (no case anal…
strub c1c94a1
ecTypesafeFol: drop f_app_safe's `full` flag and InsufficientArguments
strub b4f259c
ecTypesafeFol: a unification failure in f_app_safe is an internal error
strub 37d2fc6
ecTypesafeFol: look the operator up by path in f_app_safe
strub cd19ff2
ecTypesafeFol: open the operator type with UE.openty
strub 1a4feeb
ecTypesafeFol: f_app_safe gains ?typarams/?rty; sync .mli
strub c1d480d
ecTypesafeFol: head-reduce in fapply_safe instead of full CBV
strub c78c00b
ecTypesafeFol: over-application in fapply_safe is a hard error
strub 7c22ebc
ecTypesafeFol: rename f_app_safe -> f_op_app, fapply_safe -> f_app
strub 2028a41
circuit: translate opaque circuit-typed leaves as fresh inputs
strub c7b662d
circuit: label counter-model inputs with their source names
strub e759dec
lospecs/aig: add an interface exposing only the used surface
strub 33a5188
lospecs/aig: remove dead code
strub 6d3401d
lospecs: drop the dead AIGER-file-writing chain
strub 1206f61
lospecs/aig: make the node type private
strub 5da59d6
lospecs/deps: add an interface exposing only the used surface
strub 32e4ca5
lospecs/deps: remove dead code
strub c4cfb00
lospecs/deps: remove the no-op global cache
strub 73d48d9
lospecs/deps: document merge_deps; cosmetic cleanup
strub 60173f6
lospecs/typing: add an interface exposing only the used surface
strub 1d3020f
lospecs/typing: tt_program builds the empty env itself
strub dfe21bf
lospecs/typing: remove dead code
strub fe2239a
lospecs: drop unused yojson derivation and ppx dependencies
strub 31fcef6
lospecs/smt: add an interface exposing only the used surface
strub 474a754
lospecs: rename circuit_spec to specifications
strub dd62640
lospecs/io: add an interface; drop dead print_source_for_range
strub b61da52
lospecs/ast: add an interface; drop dead Ident.name/id and IdentMap
strub 830028a
lospecs/ptree: add an interface; drop dead Lc helpers
strub 0aa3052
lospecs/circuit: drop dead conversions/printers; export ult/ule/slt/sle
strub acca891
lospecs: remove the unused Word module
strub f5712be
lospecs/aig: restore eval and get_bit (public API)
strub fa75712
Revert "circuit: translate opaque circuit-typed leaves as fresh inputs"
strub File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| src/ecCircuits.ml |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.