Add coinductive helper theorems for cyclic itree structures and bisimulation #1564
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.
Occasionally, when doing proofs on itrees, we want to specify cases where, after stepping through some nodes (
Ret
orTau
) of an itree, we meet another concrete tree, or a tree structure. This PR add coinductive definitions and helper theorems for:ret_or_reach
: After stepping through some nodes, we arrive at a concrete tree.ret_or_reach_abs
: After stepping through some nodes, we arrive at an initialised tree from theabs
structure.strong_bisim_upfrom
: Specifying two trees that are strongly bisimulating each other starting from some concrete point up to the whole tree.strong_bisim_upfrom_abs
: Similar to the above, but starting from some initialised tree from theabs
structure.weak_bisim_upfrom
,weak_bisim_upfrom_abs
: weakly bisimulation version of the above ones.Note: I think this can be considered as "bisimulation up to some context" where the context is the abstracted structure
abs
.Also added some additional theorems for doing proofs with itrees.