Skip to content

Conversation

@PieterCuijpers
Copy link

Separating the series of tau steps from the saturation relation to benefit the definition of branching bisimulation later.

Not sure if this counts as a feat: or refactor:, since it is a relatively small change and should not touch anything outside the scope of the file at the moment.

fmontesi added a commit that referenced this pull request Dec 19, 2025
github-merge-queue bot pushed a commit that referenced this pull request Dec 21, 2025
This PR defines Relation- and Trans-related defs about LTS earlier on,
so that they can be reused for other definitions in PRs like PR #220.
@PieterCuijpers
Copy link
Author

I've updated the file to use #231
Still in doubt a bit on how to use @[grind] correctly.
When do you use "scoped" and which modifier (=, =, ->, .) should I use when?

Also, the naming of theorems is a bit confusing wrt the STr relation.
Do I name a theorem foo_sTr or foo_STr?
I'm personally inclided towards the latter, and tried to use it consistently, but since theorems generally prefer small letters I'm not sure if that is correct.

@chenson2018
Copy link
Collaborator

When do you use "scoped"

In CSLib we typically use scoped for almost all grind rules. Note that if this would put something in too deep of a namespace with a regular annotation, you can add it afterwards like attribute [grind] foo. (Soon there will be "grind sets" that make this easier)

which modifier (=, =, ->, .) should I use when?

See this page for a full description of patterns.

Also, the naming of theorems is a bit confusing wrt the STr relation. Do I name a theorem foo_sTr or foo_STr? I'm personally inclided towards the latter, and tried to use it consistently, but since theorems generally prefer small letters I'm not sure if that is correct.

We try to follow the Mathlib naming conventions but I will readily admit these don't come naturally to me for these oddly cased names. I think the relevant rule is:

  1. When something named with UpperCamelCase is part of something named with snake_case, it is referenced in lowerCamelCase.

@PieterCuijpers
Copy link
Author

See this page for a full description of patterns.

Hm... maybe it is better if I leave out @[grind] altogether for the time being?
I have some incling of the choices I should make, but I also realize that the wrong choice might mess things up thoroughly.

What is better for this PR, just leaving it out, or making an educated guess and hoping you will catch it if its wrong?

@PieterCuijpers PieterCuijpers marked this pull request as draft January 5, 2026 15:10
@PieterCuijpers PieterCuijpers marked this pull request as ready for review January 5, 2026 16:16
@fmontesi
Copy link
Collaborator

fmontesi commented Jan 7, 2026

You can test what grind is doing by using the ? modifier, which will tell you the grind pattern being created. So you can try @[scoped grind? =>], @[scoped grind .], etc. and check what you prefer.

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.

3 participants