Skip to content

feat(Relation): add TransGenCommute, SemiDiamondCommute - #1073

Open
lengyijun wants to merge 1 commit into
leanprover:mainfrom
awesome-lambda-calculus:eta-postpone-1
Open

lengyijun wants to merge 1 commit into
leanprover:mainfrom
awesome-lambda-calculus:eta-postpone-1

Conversation

@lengyijun

@lengyijun lengyijun commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Introduce intermediate commutation notions between single-step and multi-step properties:

  • TransGenCommute: single r₁ + single r₂ join via TransGen r₂ and ReflTransGen r₁
  • SemiDiamondCommute: single r₁ + TransGen r₂ join via TransGen r₂ and ReflTransGen r₁

Prove the corresponding implications and equivalences mirroring the existing SemiCommute ↔ Commute development, including:

  • SemiDiamondCommute ↔ DiamondCommute (ReflTransGen r₁) (TransGen r₂)
  • Commute ∧ TransGenCommute ↔ SemiDiamondCommute

@lengyijun

lengyijun commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor Author

Part 1 of #965: postpone-related relations.

@thomaskwaring @SamuelSchlesinger could you please take a look and review this?

@lengyijun lengyijun changed the title feat(Relation): add TransGenCommute, SemiDiamondCommute and related e… feat(Relation): add TransGenCommute, SemiDiamondCommute Oct 5, 2026
@thomaskwaring

Copy link
Copy Markdown
Collaborator

Thanks! sorry I haven't had the chance to review your other PR yet.

I'll look properly this soon, but I would like if possible a bit of motivation — we now have a whole sea of different commutation & confluence properties so it would be nice to know what each of them is for. Am I right in thinking the important difference between these definitions and the ones we have is that it enforces a positive number of steps for one of the relations? (I vaguely remember that being important for some sort of standardisation argument.)

@lengyijun

lengyijun commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor Author

The main motivation is to prove

theorem sn_eta_steps_iff [DecidableEq Var] [HasFresh Var] (steps : t ↠ηᶠ t') :
    SN FullBeta t ↔ SN FullBeta t'

This requires the following postponement result:

diamondcommute_etaplus_betastar:
  if P ↠ηᶠ Q and Q ↠β+ R, then there exists a term S such that
  P ↠β+ S and S ↠ηᶠ R.

@lengyijun

lengyijun commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor Author

Am I right in thinking the important difference between these definitions and the ones we have is that it enforces a positive number of steps for one of the relations? (I vaguely remember that being important for some sort of standardisation argument.)

Exactly

SN (TransGen r) = SN r

@lengyijun
lengyijun force-pushed the eta-postpone-1 branch 3 times, most recently from 1fdb417 to 000a73f Compare October 14, 2026 04:56
…quivalences

Introduce intermediate commutation notions between single-step and multi-step
properties:

- TransGenCommute: single r₁ + single r₂ join via TransGen r₂ and ReflTransGen r₁
- SemiDiamondCommute: single r₁ + TransGen r₂ join via TransGen r₂ and ReflTransGen r₁

Prove the corresponding implications and equivalences mirroring the existing
SemiCommute ↔ Commute development, including:
- SemiDiamondCommute ↔ DiamondCommute (ReflTransGen r₁) (TransGen r₂)
- Commute ∧ TransGenCommute ↔ SemiDiamondCommute
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.

2 participants