Skip to content

feat: recipe for logical fragments and multiplicative linear logic#504

Merged
fmontesi merged 11 commits intomainfrom
cll-fragments
Apr 20, 2026
Merged

feat: recipe for logical fragments and multiplicative linear logic#504
fmontesi merged 11 commits intomainfrom
cll-fragments

Conversation

@fmontesi
Copy link
Copy Markdown
Collaborator

This PR:

  • Adds multiplicative linear logic (MLL) as an example of how a fragment can be derived from a larger inference system (CLL), using Subtype and local recursive functions to eliminate irrelevant cases (see the example in the docstring).
  • Puts CLL under the right Cslib.Logic namespace.
  • Shortens a few simple definitions for CLL in the expected way.

@fmontesi fmontesi requested a review from chenson2018 as a code owner April 20, 2026 08:23
@fmontesi fmontesi added the logic label Apr 20, 2026
Copy link
Copy Markdown
Collaborator

@thomaskwaring thomaskwaring left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This all looks very reasonable to me, it would be nice of course to see some theorems stress-testing the definitions, but that can happen down the track.

One suggestion (for here or in a follow-up) would be to define a custom cases / induction principle for, say, MLL.Proposition — it would package up the process of unpacking the predicate and discharging unreachable cases, and might be a more idiomatic way to set up an API boundary.

@fmontesi fmontesi enabled auto-merge April 20, 2026 13:10
@fmontesi
Copy link
Copy Markdown
Collaborator Author

@thomaskwaring
I think that's a very good idea, I'll experiment with it when I find a moment.

Copy link
Copy Markdown
Collaborator

@chenson2018 chenson2018 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few small style questions. The removal of grind lints seems nice here too.

Comment thread Cslib/Logics/LinearLogic/CLL/Basic.lean
Comment thread Cslib/Logics/LinearLogic/CLL/MLL.lean Outdated
Comment thread Cslib/Logics/LinearLogic/CLL/MLL.lean Outdated
Comment thread Cslib/Logics/LinearLogic/CLL/MLL.lean Outdated
Comment thread Cslib/Logics/LinearLogic/CLL/MLL.lean Outdated
Comment thread Cslib/Logics/LinearLogic/CLL/MLL.lean Outdated
Comment thread Cslib/Logics/LinearLogic/CLL/MLL.lean Outdated
Comment thread Cslib/Logics/LinearLogic/CLL/MLL.lean Outdated
Comment thread Cslib/Logics/LinearLogic/CLL/MLL.lean Outdated
fmontesi and others added 7 commits April 20, 2026 15:56
Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
Co-authored-by: Chris Henson <46805207+chenson2018@users.noreply.github.com>
@chenson2018 chenson2018 disabled auto-merge April 20, 2026 14:10
Copy link
Copy Markdown
Collaborator

@chenson2018 chenson2018 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm approving but disabling auto-merge, as I think the open scoped I mentioned in my last comment can be removed.

@fmontesi fmontesi enabled auto-merge April 20, 2026 14:14
@fmontesi fmontesi added this pull request to the merge queue Apr 20, 2026
Merged via the queue into main with commit f2951fd Apr 20, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants