Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
4f3045d
reduce combinator paper
cristianoc Nov 27, 2025
2bfd40c
Formalize reduce semantics and incremental correctness
cristianoc Nov 27, 2025
90da7fc
Clarify distributive aggregates and correctness semantics
cristianoc Nov 27, 2025
6cc4532
Improve exposition of partial reducers and algebraic aggregates
cristianoc Nov 27, 2025
a89264d
aggregates and more examples
cristianoc Nov 27, 2025
a72cc21
Add graph reachability example, e2e test, and clarify paper assumptions
cristianoc Nov 27, 2025
c04df9b
Revert "Add graph reachability example, e2e test, and clarify paper a…
cristianoc Nov 28, 2025
32f7eb1
remove dce example
cristianoc Nov 28, 2025
6755192
fix
cristianoc Nov 28, 2025
a20ddbb
Strengthen abstract/intro with key differentiators from related work
cristianoc Nov 28, 2025
2ee6318
Refine reduce semantics paper: aggregate classes, related work
cristianoc Nov 28, 2025
765f6eb
Refine reduce semantics paper: mini-examples, correctness proof, and …
cristianoc Nov 28, 2025
9478ed5
Remove unnecessary lemma and clarify soundness proof.
cristianoc Nov 28, 2025
4dd50f1
lemma proof layout
cristianoc Nov 28, 2025
3605830
example that illustrates the new lemma
cristianoc Nov 28, 2025
5e53e49
feat: add Lean formalisation of reduce correctness
cristianoc Nov 28, 2025
f1e0b2b
chore: rename Lean project to lean-formalisation
cristianoc Nov 28, 2025
66f91b7
refactor: move Reduce formalisation to top-level module
cristianoc Nov 28, 2025
0146c4d
revise positioning and related work
cristianoc Nov 29, 2025
9372045
tweak related work
cristianoc Nov 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@ lib/
*.cmj
*.cmi
*.rei
reduce.aux
reduce.log
22 changes: 22 additions & 0 deletions lean-formalisation/.github/workflows/create-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Create Release

on:
push:
branches:
- 'main'
- 'master'
paths:
- 'lean-toolchain'

jobs:
lean-release-tag:
name: Add Lean release tag
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: lean-release-tag action
uses: leanprover-community/lean-release-tag@v1
with:
do-release: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
21 changes: 21 additions & 0 deletions lean-formalisation/.github/workflows/lean_action_ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Lean Action CI

on:
push:
pull_request:
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read # Read access to repository contents
pages: write # Write access to GitHub Pages
id-token: write # Write access to ID tokens

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v5
- uses: leanprover/lean-action@v1
- uses: leanprover-community/docgen-action@v1
41 changes: 41 additions & 0 deletions lean-formalisation/.github/workflows/update.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Update Dependencies

on:
# schedule: # Sets a schedule to trigger the workflow
# - cron: "0 8 * * *" # Every day at 08:00 AM UTC (see https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#schedule)
workflow_dispatch: # Allows the workflow to be triggered manually via the GitHub interface

jobs:
check-for-updates: # Determines which updates to apply.
runs-on: ubuntu-latest
outputs:
is-update-available: ${{ steps.check-for-updates.outputs.is-update-available }}
new-tags: ${{ steps.check-for-updates.outputs.new-tags }}
steps:
- name: Run the action
id: check-for-updates
uses: leanprover-community/mathlib-update-action@v1
# START CONFIGURATION BLOCK 1
# END CONFIGURATION BLOCK 1
do-update: # Runs the upgrade, tests it, and makes a PR/issue/commit.
runs-on: ubuntu-latest
permissions:
contents: write # Grants permission to push changes to the repository
issues: write # Grants permission to create or update issues
pull-requests: write # Grants permission to create or update pull requests
needs: check-for-updates
if: ${{ needs.check-for-updates.outputs.is-update-available == 'true' }}
strategy: # Runs for each update discovered by the `check-for-updates` job.
max-parallel: 1 # Ensures that the PRs/issues are created in order.
matrix:
tag: ${{ fromJSON(needs.check-for-updates.outputs.new-tags) }}
steps:
- name: Run the action
id: update-the-repo
uses: leanprover-community/mathlib-update-action/do-update@v1
with:
tag: ${{ matrix.tag }}
# START CONFIGURATION BLOCK 2
on_update_succeeds: pr # Create a pull request if the update succeeds
on_update_fails: issue # Create an issue if the update fails
# END CONFIGURATION BLOCK 2
1 change: 1 addition & 0 deletions lean-formalisation/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/.lake
13 changes: 13 additions & 0 deletions lean-formalisation/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# lean-formalisation

## GitHub configuration

To set up your new GitHub repository, follow these steps:

* Under your repository name, click **Settings**.
* In the **Actions** section of the sidebar, click "General".
* Check the box **Allow GitHub Actions to create and approve pull requests**.
* Click the **Pages** section of the settings sidebar.
* In the **Source** dropdown menu, select "GitHub Actions".

After following the steps above, you can remove this section from the README file.
Loading