generated from amazon-archives/__template_Apache-2.0
-
Notifications
You must be signed in to change notification settings - Fork 27
feat: Implement two-sided verification check with check modes #487
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
MikaelMayer
wants to merge
194
commits into
main
Choose a base branch
from
feat/two-sided-verification-check
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.
+1,066
−459
Open
Changes from all commits
Commits
Show all changes
194 commits
Select commit
Hold shift + click to select a range
7e4a8e9
feat(verifier): Implement two-sided verification check
MikaelMayer d3d5475
feat(cli): Add --check-mode flag and update emoji symbols
MikaelMayer 4c2809a
feat(verifier): Add per-statement check mode annotations
MikaelMayer 3b454e2
test: Add comprehensive VCOutcome tests and fix SMTEncoder tests
MikaelMayer 2b8a1a6
test: Add comprehensive VCOutcome tests and fix SMTEncoder tests
MikaelMayer 4aca450
test: Add comprehensive VCOutcome tests and fix SMTEncoder tests
MikaelMayer cdb515b
docs: Update implementation summary with completed features
MikaelMayer 7b567c1
fix: Update StrataVerify and StrataMain for VCOutcome API changes
MikaelMayer 74412fb
fix: Remove trailing whitespace in SMTUtils.lean
MikaelMayer 7c705b4
fix: Remove all trailing whitespace in SMTUtils.lean
MikaelMayer 67f42b4
fix: Map old reachCheck metadata to fullCheck for backward compatibility
MikaelMayer 4877fec
feat: Add isAlwaysFalseIfReachable alias for isRefuted
MikaelMayer 6ae4c72
refactor: Rename predicates for consistency and add cross-cutting fil…
MikaelMayer d35c35a
chore: Remove implementation tracking document
MikaelMayer 3cd66a1
refactor: Make isPass conservative (validity only) and add specific v…
MikaelMayer 3003f0f
refactor: Consistent naming with reachability at end, isSatisfiable c…
MikaelMayer 5081ebf
refactor: Separate base cases (no 'is' prefix) from derived predicates
MikaelMayer 47474da
feat: Add VerificationMode to outcomeToLevel for context-aware severity
MikaelMayer bd47c89
refactor: Simplify outcomeToLevel - no warnings in deductive mode, us…
MikaelMayer 983bef2
refactor: Rename refutedAndReachable to alwaysFalseAndReachable, unre…
MikaelMayer 149989c
refactor: Use only base case predicates in outcomeToLevel
MikaelMayer 2e33a24
refactor: Make outcome messages neutral and context-independent
MikaelMayer 5f93025
fix: Handle models correctly for alwaysFalseReachabilityUnknown and u…
MikaelMayer 8f8b52a
fix: Remove incorrect model handling for alwaysFalseReachabilityUnknown
MikaelMayer eaafeb4
refactor: Pattern match directly on satisfiability and validity prope…
MikaelMayer 8f2e3d0
fix: Remove trailing whitespace in SarifOutput.lean
MikaelMayer 75ab1b7
test: Add comprehensive SARIF output tests for all nine outcomes
MikaelMayer c6bbd37
fix: Update dischargeObligation call signature in test
MikaelMayer a7f1333
refactor: Consolidate VCOutcome tests to one eval per case
MikaelMayer d6ae21b
feat: Add --error-level CLI option for SARIF severity mapping
MikaelMayer 2381e59
fix: Update StrataMain for VCOutcome changes and clarify bugFinding c…
MikaelMayer 4d44f75
fix: Update bugFinding SARIF severity levels per review
MikaelMayer 21d5f30
fix: Remove trailing whitespace from Verifier.lean
MikaelMayer 5d2dc07
refactor: Add helper function and improve SARIF output labels in tests
MikaelMayer f14b6f0
refactor: Improve VCOutcome tests with comprehensive predicate checking
MikaelMayer a1bf916
feat: Add derived predicate testing to VCOutcome tests
MikaelMayer a4d7427
refactor: Remove unnecessary section comments from VCOutcome tests
MikaelMayer 77b4eaa
refactor: Redesign verification flags for orthogonal error mode and d…
MikaelMayer c8c0aa7
refactor: Rename flags to --check-mode and --check-amount, simplify a…
MikaelMayer 97bf7bd
Merge remote-tracking branch 'origin/main' into feat/two-sided-verifi…
MikaelMayer 38b5790
fix: use assert + check-sat for single checks to match pre-PR behavior
MikaelMayer be79034
test: update expectations for 'pass if reachable' result format
MikaelMayer c120f3d
feat: clarify reachability claims with 'from declaration entry'
MikaelMayer b9f05d7
Merge remote-tracking branch 'origin/main' into feat/two-sided-verifi…
MikaelMayer 6e28fed
fix: mask PE and SMT outcomes to respect requested checks
MikaelMayer d385ac7
fix: update label for validity-only failure to 'can be false if reach…
MikaelMayer 6b937c4
test: update VCOutcomeTests for new label
MikaelMayer 9ffeb7d
Merge branch 'main' into feat/two-sided-verification-check
MikaelMayer e26b317
fix: remove trailing whitespace
MikaelMayer 9811a66
test: update test expectations for new validity-only outcome labels
MikaelMayer cd67538
test: fix remaining test expectations for validity-only outcomes
MikaelMayer c8f69fb
test: update RemoveIrrelevantAxioms expectations
MikaelMayer ee3512e
test: add VCs section to Regex test with proper formatting
MikaelMayer b31dffc
test: fix Quantifiers blank line indentation
MikaelMayer 62f753c
test: fix blank line indentation in RemoveIrrelevantAxioms and SafeMap
MikaelMayer 8fd96b0
test: fix blank lines to be truly empty
MikaelMayer 26a2942
test: remove trailing separator causing syntax error
MikaelMayer 80cbee8
test: add single-space blank lines back
MikaelMayer 6db0b2f
test: remove spaces from blank lines in docstrings
MikaelMayer 1f725b9
test: fix Quantifiers test with correct blank line format and remove …
MikaelMayer 078aefd
test: fix Quantifiers first guard_msgs block with DEBUG section
MikaelMayer 9901b25
test: fix Regex trailing separator and RemoveIrrelevantAxioms missing…
MikaelMayer 5a067be
test: fix program name in RemoveIrrelevantAxioms
MikaelMayer bacb297
test: update outcome labels and replace reachCheck with checkAmount
MikaelMayer baade24
test: update cover outcomes for satisfiability checks
MikaelMayer f77eccf
test: add single-space blank lines to docstrings
MikaelMayer 585d8b0
test: remove spaces from blank lines in docstrings
MikaelMayer 4725072
test: disable SarifOutputTests until API is updated
MikaelMayer 25a3e18
test: update outcome labels and disable ExprEvalTest
MikaelMayer f62d019
test: remove Model output from RemoveIrrelevantAxioms (validity-only …
MikaelMayer a80af56
test: remove Model output from test files (validity-only checks)
MikaelMayer 579d82f
test: fix unterminated docstring in RemoveIrrelevantAxioms
MikaelMayer 4e23a64
Merge main into feat/two-sided-verification-check
MikaelMayer 0927752
fix: move copyright headers before #exit directives
MikaelMayer 2e060e2
fix: rename Options to VerifyOptions to match main
MikaelMayer 9b73d99
fix: use defaultSolver without namespace prefix
MikaelMayer 791958f
fix: adapt SMTUtils to use monadic encodeSMT API
MikaelMayer def9c15
fix: convert Term to String using termToSMTString
MikaelMayer eacbc43
fix: add Core namespace to Options.lean
MikaelMayer 17ae333
fix: use Core.defaultSolver after adding Core namespace
MikaelMayer e77e519
fix: use Core.defaultSolver in SMTUtils.lean
MikaelMayer 0ee00dc
fix: qualify VerifyOptions with Core in Strata namespace
MikaelMayer b0e76a7
fix: fix VerifyVerifyOptions double prefix and Regex.lean
MikaelMayer 46e6f5e
test: fix test expectations for Cover, RemoveIrrelevantAxioms, and ot…
MikaelMayer b5a71d8
fix: update diagnostic messages and remove Model output from tests
MikaelMayer 8e26650
fix: pass variable ids to checkSat to generate models, remove extra c…
MikaelMayer 2e1b510
fix: add Model output to tests, no get-value for two-sided checks
MikaelMayer 1a24e6a
fix: suppress unused variable warning for md parameter
MikaelMayer e52ad30
fix: restore checkSat in dischargeObligation, remove from encodeCore …
MikaelMayer 048b29b
test: update BoogieToStrata expected output for new outcome labels
MikaelMayer 1ad3044
test: update BoogieToStrata expected output for unknown emoji
MikaelMayer 75805e8
test: update Examples expected output for new outcome labels
MikaelMayer 3a70839
test: update Python expected output for new outcome labels
MikaelMayer fa0f5fe
test: fix Python expected output format for assertion failures
MikaelMayer 484db41
test: update SARIF validation to expect error level for unknown outcomes
MikaelMayer 467e7af
fix: enable models in full mode by passing ids to checkSatAssuming an…
MikaelMayer d4a64b0
Merge main into feat/two-sided-verification-check
MikaelMayer da742c1
test: update new datatype test expectations for new outcome labels
MikaelMayer 0feaf12
test: fix Assertion failed format in Python expected files after merge
MikaelMayer dd7f470
refactor: rename canBeFalseAndReachable to canBeFalseAndIsReachable
MikaelMayer c8412b3
docs: add VCOutcome outcome table as doc comment
MikaelMayer 8fea91b
fix: pass raw Q to encodeCore, handle negation for validity checks there
MikaelMayer 78c3ddc
fix: remove unused obligationStr variable
MikaelMayer eb547f5
test: update BoogieToStrata expected labels for canBeFalseAndIsReacha…
MikaelMayer 4424552
Merge main into feat/two-sided-verification-check
MikaelMayer d27beea
feat: distinguish unreachable cover (error) from unreachable assert (…
MikaelMayer feebcdf
docs: clarify check-sat-assuming comment per review
MikaelMayer dd75bdc
fix: simplify unreachable cover label to just emoji + unreachable
MikaelMayer 2842157
refactor: rename indecisive to canBeTrueOrFalse, cover with sat alway…
MikaelMayer 0dd3b37
refactor: independent PE shortcuts per check, solver fills in the rest
MikaelMayer 1062867
docs: separate assert and cover outcome tables in VCOutcome doc comment
MikaelMayer 3050058
docs: single outcome table with cover notes, rename refuted if reacha…
MikaelMayer eafaaff
fix: always continue after PE resolves both checks, fixing duplicate …
MikaelMayer 3f617cb
refactor: rename outcome labels for clarity
MikaelMayer 5ee7518
fix: update .expected files with new outcome labels
MikaelMayer af5bc5f
refactor: change 'if reachable' to 'if reached' for clarity
MikaelMayer e230874
feat: add minimal/full check amount display modes
MikaelMayer 8fe0902
fix: update remaining test expectations for minimal/full modes
MikaelMayer 34fe172
Merge main into feat/two-sided-verification-check
MikaelMayer 0bea884
fix: restore CounterEx as Map Ident SMT.Term and lexprModel field
MikaelMayer 726321e
feat: add bugFindingAssumingCompleteSpec check mode
MikaelMayer 72cf9a7
fix: update T3_ControlFlow test expectation for Test failed error
MikaelMayer b3783b1
Merge branch 'main' into feat/two-sided-verification-check
MikaelMayer 144470d
fix: force full check level for bugFindingAssumingCompleteSpec mode
MikaelMayer adb8ad9
fix: update Python expected files for minimal mode labels
MikaelMayer f0f1846
fix: rename checkAmount to checkLevel in StrataVerify CLI
MikaelMayer 1877b51
fix: update model format in test expectations
MikaelMayer 0ac0b55
fix: restore BoogieToStrata test expectations from main
MikaelMayer e9fd8c3
fix: add Test failed expectation to more Laurel tests
MikaelMayer 273b05f
Merge branch 'main' into feat/two-sided-verification-check
MikaelMayer 45e4d84
chore: trigger CI rebuild
MikaelMayer 1fd5dd0
Merge branch 'main' into feat/two-sided-verification-check
MikaelMayer 98fe907
chore: force rebuild by touching Verifier.lean
MikaelMayer e481f15
fix: restore minimal mode diagnostic messages
MikaelMayer 3743dab
Merge main into feat/two-sided-verification-check
MikaelMayer 66e5244
fix: remove CexParser from SMT.lean module imports
MikaelMayer 85670e1
fix: update StrataMain to use vcResult.outcome instead of vcResult.re…
MikaelMayer 04a9037
fix: add missing mode parameter to writeSarifOutput calls in StrataMain
MikaelMayer d5f7c26
fix: restore Python expected files and remove Test failed from Laurel…
MikaelMayer c0146e7
fix: update BoogieToStrata .expect files to match actual output
MikaelMayer a2b0585
fix: restore main's formatting for unreachable and model values
MikaelMayer c427e66
fix: restore BoogieToStrata .expect files from main with updated unkn…
MikaelMayer 23e2480
fix: disable SarifOutputTests with TODO for API update
MikaelMayer 7466449
fix: complete SarifOutputTests update and remove orphaned CexParser
MikaelMayer 58a386a
feat: add minimalVerbose check level
MikaelMayer 970a496
fix: update test expectations for emoji and unreachable format changes
MikaelMayer aa4bad5
temp: update BoogieToStrata .expect for CI cache issue
MikaelMayer 1d38baf
fix: revert BoogieToStrata .expect to minimal mode labels
MikaelMayer 89f1206
temp: update BoogieToStrata .expect to match CI output
MikaelMayer 3bb1188
fix: update BoogieToStrata .expect for minimalVerbose output
MikaelMayer 0a1f36b
fix: update Examples .expected files and remove trailing whitespace
MikaelMayer 03944a0
fix: update Python expected files for minimalVerbose output
MikaelMayer 1f734a4
fix: update Python expected files for failure label
MikaelMayer 5f07dd9
fix: explicit Inhabited instance for CheckLevel and revert to minimal…
MikaelMayer 624aebc
fix: change VCResult checkLevel default from .full to .minimal
MikaelMayer 67fc7f3
fix: update all .expected files to match CI minimalVerbose output
MikaelMayer bf7a0bc
Merge branch 'main' into feat/two-sided-verification-check
MikaelMayer df8d732
fix: restore all .expected files to main's minimal mode labels
MikaelMayer f907449
fix: change label/emoji default parameters to .minimal
MikaelMayer 03e0abb
fix: explicitly pass .full to VCOutcomeTests label/emoji calls
MikaelMayer 7b49af2
chore: trigger CI
MikaelMayer 5d98e1e
Merge main into feat/two-sided-verification-check
MikaelMayer 69057b3
fix: add divisionByZero cases to label, emoji, and check selection
MikaelMayer 2a94193
refactor: simplify validate_sarif.py by merging duplicate error checks
MikaelMayer e4febf2
fix: update SarifOutputTests JSON expectations for properties field
MikaelMayer 506262e
fix: update Python expected files to use ❓ emoji for unknown
MikaelMayer 96f6636
fix: update DiffTestCore to use new VCResult.outcome API
MikaelMayer adf9d51
fix: correct DiffTestCore error handling for new API
MikaelMayer 7658a56
fix: remove duplicate implementationError case in DiffTestCore
MikaelMayer f85f408
Merge branch 'main' into feat/two-sided-verification-check
MikaelMayer 322e33f
fix: address review comments
MikaelMayer 18ef9f5
chore: remove monitor_pr.sh (unrelated to PR)
MikaelMayer 7078f36
Merge branch 'main' into feat/two-sided-verification-check
MikaelMayer e75509e
docs: update toSMTTerms docstring to explain negation handling
MikaelMayer 2f5d548
chore: remove monitor_pr.py from PR
MikaelMayer 908522f
fix: inline isFail in second pyAnalyze block where helper is out of s…
MikaelMayer c078631
refactor: use VCResult.isFailure method instead of inline checks
MikaelMayer fee5dfa
Merge branch 'main' into feat/two-sided-verification-check
MikaelMayer 82f8ae1
fix: update VCOutcomeTests for 'Can be false and is reachable' message
MikaelMayer 0110ca9
Merge branch 'main' into feat/two-sided-verification-check
MikaelMayer c529f1a
Merge branch 'main' into feat/two-sided-verification-check
MikaelMayer 2f4636f
fix: address 9 review comments
MikaelMayer be58beb
Merge branch 'main' into feat/two-sided-verification-check
MikaelMayer be7378c
fix: check unreachable before isPass in diagnostics, fix Verify.lean …
MikaelMayer daef0db
fix: add checkSat to encodeArithToSMTTerms
MikaelMayer 553f1f3
fix: suppress unused variable warning for md in dischargeObligation
MikaelMayer ed4d238
Merge main: take main's Python expected files
MikaelMayer cf646a7
fix: update Python expected files 🟡→❓ for unknown emoji after merge
MikaelMayer 38c0d3e
fix: address 8 review comments (round 2)
MikaelMayer d7d5f96
Merge branch 'main' into feat/two-sided-verification-check
MikaelMayer 812b96c
test: add guard_msgs test to verify outcome table entries
MikaelMayer 56c39a3
test: add cover column and headers to outcome table test
MikaelMayer 006b945
Merge branch 'main' into feat/two-sided-verification-check
MikaelMayer a86e643
chore: add reviewer response for aqjune-aws
MikaelMayer 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
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
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
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
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
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
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.