Skip to content

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

Open
lkhml wants to merge 133 commits intomasterfrom
cfg_optimizations
Open

Proof generation for CFG optimizations (Block coalescing and pruning of unreachable blocks)#10
lkhml wants to merge 133 commits intomasterfrom
cfg_optimizations

Conversation

@lkhml
Copy link
Copy Markdown
Collaborator

@lkhml lkhml commented Jul 5, 2023

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