leanprover / leanprover/cslib

notation for multiple substitution

Open
#374 3 comments 0 reactions 1 assignee View on GitHub

@chenson2018 is already working on this.

Since Feb 26, 2026.

Dominant language
Lean
Stars
709
Forks
200
Avg merge
3d 6h
Merged PRs (30d)
45

Description

We currently have HasSubstitution, providing the notation t [x := t'] for (named) substitutions. We will inevitably need notions of multiple substitution, such as in the upcoming PRs for STLC strong normalization. The natural extension is t [x := t', y := t'', z := t''']. In other proof assistants, sometimes what is done is having separate classes up to some fixed arity, but in Lean to do this generally is not so hard.

The main questions are making "multiple" general enough to not force an implementation style and being compatible with single substitution still.

(When we have a need for them, we should also make sure unnamed substitutions like t[ t' ] and t [ t', t'', t'''] also align with this)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.