Skip to content
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

Proof generation for CFG optimizations (Block coalescing and pruning of unreachable blocks) #10

Open
wants to merge 133 commits into
base: master
Choose a base branch
from

Conversation

lukashimmelreich
Copy link
Collaborator

No description provided.

ahubanov-eth2 and others added 30 commits August 10, 2022 17:28
copying of unoptimized blocks to be done
…anup, still need to run and check all examples
the previous versoin used explicit symbols, which cannot be parsed by Isabelle's command line tool
# Conflicts:
#	Source/ProofGeneration/BoogieIsaInterface/IsaBoogieTerm.cs
in particular need not be an Isabelle identifier
…y produce membership lemmas even if no phase correctness proofs are generated
gauravpartha and others added 30 commits April 29, 2024 11:57
…erge_cfg_opt_adjust_interface into cfg_optimizations

This change includes the changes from the adjust_interface branch and initial adjustments to incorporate support for unique constants. Unique constants are now generated as part of a procedure. Proofs work only if there are no unique constants, but the used procedure correctness already takes unique constants into account (i.e., previous proofs that worked now instantiate the unique constants with the empty list because those examples do not have unique constants).

# Conflicts:
#	Source/ProofGeneration/AstToCfg/AstToCfgEndToEnd.cs
#	Source/ProofGeneration/CFGOptimizations/CFGOptimizationsEndToEnd.cs
#	Source/ProofGeneration/ProofGenerationLayer.cs
…on of code

Note that since the code has changed, the filtering leads to slightly different results than earlier versions because different Boogie versions have different conditions for rejecting (or for outputting data about) a program.
…gnoreFile) annotation

Isabelle already defines the name xor. It would be good to change the proof generation to not use reserved Isabelle names in the first place so that such renamings are not required when generating proofs.
…sors

In such a case a new block is added between the predecessor and the loop head. This new block asserts the invariant.
… loop head set representation in a to-be-applied lemma differs from loop head set lemma in proof goal (even after applying the simplifier on the proof goal)
README minor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants