Skip to content

feat: precise close_var_not_fvar#585

Closed
lengyijun wants to merge 1 commit into
leanprover:mainfrom
lengyijun:close_rec_fv
Closed

feat: precise close_var_not_fvar#585
lengyijun wants to merge 1 commit into
leanprover:mainfrom
lengyijun:close_rec_fv

Conversation

@lengyijun
Copy link
Copy Markdown
Contributor

This PR:

  1. Rename close_preserve_not_fvar to close_rec_fv : shorter name, easier to remember
  2. Remove close_var_not_fvar_rec: close_rec_fv is stronger theorem
  3. Refactor close_var_not_fvar: make it precise
  4. Add close_rec_fv and close_var_not_fvar to grind

Following #580

This PR:
1. Rename `close_preserve_not_fvar` to `close_rec_fv` : shorter name,
   easier to remember
2. Remove `close_var_not_fvar_rec`: `close_rec_fv` is stronger theorem
3. Refactor `close_var_not_fvar`: make it precise
4. Add `close_rec_fv` and `close_var_not_fvar` to grind

Following leanprover#580
@lengyijun lengyijun requested a review from chenson2018 as a code owner May 20, 2026 22:45
@lengyijun
Copy link
Copy Markdown
Contributor Author

lengyijun commented May 20, 2026

We can even remove close_rec_fv from grind list:

diff --git a/Cslib/Languages/LambdaCalculus/LocallyNameless/Untyped/Properties.lean b/Cslib/Languages/LambdaCalculus/LocallyNameless/Untyped/Properties.lean
index fa839e4f9f67..304e7fb6810f 100644
--- a/Cslib/Languages/LambdaCalculus/LocallyNameless/Untyped/Properties.lean
+++ b/Cslib/Languages/LambdaCalculus/LocallyNameless/Untyped/Properties.lean
@@ -136,7 +136,7 @@ lemma open_close_to_subst (m : Term Var) (x y : Var) (k : ℕ) (m_lc : LC m) :
     grind [
       swap_open, =_ swap_open_fvar_close,
       open_close x' (t⟦k+1 ↜ x⟧⟦k+1 ↝ fvar y⟧) 0, open_close x' (t[x := fvar y]) 0,
-       open_preserve_not_fvar, close_rec_fv, subst_preserve_not_fvar]
+       open_preserve_not_fvar, subst_preserve_not_fvar]
   | _ => grind
 
 /-- Closing and opening are inverses. -/

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.

1 participant