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.
Hi,
This PR finally completes the proof of "agree up to lemma" (Lemma 10.3.11 [1. p.251]). Recall that a set (or finite list) of λ-terms are "agree up to" a path
p
if the Böhm tree nodes of any two terms in it are the same (i.e. same binding variables, same number of children) along the path:The "agree up to" lemma says, for a (non-empty) list (or finite set) of λ-terms agree up to path
p
, under suitable condition (the path is valid, the excluded set is big enough, etc.) there exists a Böhm transformpi
such that, after applyingpi
the resulting terms still agree up top
. This proof is quite tedious, requiring a lot of new lemmas.NOTE: The above theorem only covers part (1) and (2) of the textbook theorem. There's still a part (3) whose proof should be similar with (2) and I'm still working on it.
Chun
[1] Barendregt, H.P.: The lambda calculus, its syntax and semantics. College Publications, London (1984).